先安装yum源

rpm -i https://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm

 

zabbix组件:
zabbix-server
zabbix-database
zabbix-web
zabbix-agent
zabbix-proxy
zabbix逻辑组件:
主机组、主机
item(监控项)、appliction(应用)
graph(图形)
trigger(触发器)
event(事件)
action
notice
command
media
users(meida)
监控系统:
数据采集、数据存储、报警、数据可视化
zabbix:
database --> zabbix-server (zabbix_server.conf) --> zabbix-web(LAMP) --> http://zabbix-web-server/zabbix
zabbix-agent (zabbix-agent)

添加主机

agent: 161
nms: 162 (trap)

被监控端安装 snmp
# yum install net-snmp
# vim /etc/snmp/snmpd.conf
# service snmpd start

[root@VM_8_32_centos etc]# zabbix_get -s 10.135.8.32 -k "system.uname"
Linux VM_8_32_centos 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64


历史数据:采样生成的数据
历史趋势数据:每小时的最大值、最小值、平均值、统计

As is: 不做任何处理
Delta(speed per second): (value - prev_value)/(time - prev_time)
10: 12000, 20: 13000
Delta(simple change):(value - prev_value)

Trigger:
名称中可以使用宏:
{HOST.HOST}, {HOST.NAME}, {HOST.IP}, {HOST.CONN}, {HOST.DNS}

Action有两类:
send message
command

添加host group, host, item, graph, trigger, action

总结:
一次监控的配置过程:host groups --> host --> appliction --> item --> trigger (一个item可以多个trigger) --> action (send message, command)

send message:
media type
zabbix user: 使用可用media type接收消息

由zabbix监控某关注的指标:
host group --> host --> item(存储于MySQL)--> graph(zabbix-web)--> trigger(触发器)--> action(condition+operation)
application:把功能相近的一组item归类再一起统一进行管理组件;

Zabbix完整的监控配置流程大体上由如下步骤组成:
Host group --> Hosts --> Applications --> Items --> Triggers --> Events --> Actions --> User groups --> Users --> Medias

graph,screen

依赖关系:
Host --> Item --> Trigger --> Action --> Notice,Command

添加主机到zabbix server:
discovery,auto_registrion
low level discovery
模板:
template:
item,application,trigger,graph,action

主机组:
机器用途、系统版本、应用程序、地理位置 、业务单元

Item:
默认的Items有多种类型:
Zabbix-agent:
工作模式:passive,active
网卡流量相关:
net.if.in[if,<mode>]
if:接口,如eth0
mode:bytes,packets,errors,dropped
net.if.out[if,<mode>]
net.if.total[if,<mode>]
端口相关:
net.tcp.listen[port]
net.tcp.port[<ip>,port]
net.tcp.service[service,<ip>,<port>]
net.udp.listen[port]
进程相关:
kernel.maxfiles
kernel.maxproc

CPU相关:
system.cpu.intr
system.cpu.load[<cpu>,<mode>]
system.cpu.num[<type>]
system.cpu.switches
system.cpu.util[<cpu>,<type>,<mode>]
磁盘IO或文件系统相关:
vfs.dev.read[<device>,<type>,<mode>]
vfs.dev.write[<device>,<type>,<mode>]
vfs.fs.inode[fs.<mode>]

用户可自定义item:
关键:选取一个惟一的key:
命令:收集数据的命令或脚本

Trigger:
状态:
OK
PROBLEM:有事件发生;

zabbix server每次接收到items的新数据时,就会对Item的当前值进行判断,即与trigger的表达式进行比较

一个trigger只能属于一个item,但一个item可以有多个trigger;

Serverity:
Not classified:未知级别 ,灰色;
Information:一般信息,亮绿
Warning:警告信息,黄色
Average:一般古装,橙色
High:高级别故障,红色
Disater:致命故障,亮红;

Action:
触发条件一般为时间:
Trigger events: OK --> PROBLEM
Discovery events:zabbix的network discovery工作时发现主机
Auto registration events: 主动模式的agent注册时产生的事件;
Ineternal events: Item变成不再被支持,或Trigger变成未知状态;

Operations的功能:
动作:
send message
Remote command

配置send message:
(1)定义好Media;
(2)定义好用户;
(3)配置要发送的信息;


回顾:zabbix
host group--> host--> appliction-->item-->trigger(OK-->PROBLEM,trigger event)-->Action(Condition+Operation(Send Message,Remote Commadn)

Send Message:
Media:
Email、SMS、Jabber、Script、EZ Texting
给出具体 实现;
User groups --> User(Media)

示例中:node2.magedu.com --> Traffic --> Inbound traffic,Outbound traffic-->trigger(inbound)


Zabbix常用术语:
item key
Escalation 报警升级
Template
web Scennario

Zabbix服务器进程:
housekeeper,alter,discoverer,httppoller,Poller,pinger,db_config_syncer,timer,escaltor

Item key:
命名要求:只能使用 字母、数字、"_"、"-"、"."
接受参数:system.cpu.load[<cpu>,<mode>],net.if.inbound[if,<mode>]

注意:每个key背后都应该有一个命令或脚本来负责实现数据收集,此命令或脚本可调用传递给key的参数,
调用方式为$1,$2,...
再zabbix中定义item时调用某key,还需额外定义数据采集频率,历史数据的保存时长等

Trigger:
触发器表达式:{<Server>:<key>.<function>(<parameter>)}<operator><constant>
示例:{VM_8_32_centos:net.if.in[eth0,bytes].last(#1)}>5K

<function>:评估采集到的数据是否在合理范围内时所使用的函数,其评估过程可以根据采集到的数据、当前时间或者其他因素;
avg,count,change,date,dayofweek,dayofmonth,delta,diff,iregexp,regexp,last,max,nodata,now,prev,str,strlen,sum

regexp:检查最后一次采样的数据是否能够被 指定的模式所匹配;1表示匹配,0表示不匹配
last(0)相当于last(#1)
now:返回自Unix元年至此刻经历的秒数
prev:倒数第二个采样值;
str:从最后一次的采样中查找此处指定的子串;
strlen:

<operator>:
>,<=,#(不等于)
/,*,-,+
&,|

触发器间有依赖关系

Action:
message
condition
event:
trigger
discovery:
Service Up,Service Down,Host up,Host down,Service Discovered,Service Lost,Host Discovered,Host Lost
auto_registration
lld

operation
send message
Media Type
Email,SMS,Jabber,Script,EZ Texting
User
remote command
(1)给zabbix定义sudo规则 :
zabbix ALL=(ALL) ALL
(2) 不支持active(主动模式)的agent;
(3)不支持代理模式;
(4)命令 长度不得超过255个字符;
(5)可以使用宏;
(6)zabbix-server仅执行命令,而不关心命令是否执行成功;
前提:zabbix-agent要配置为支持执行远程命令
/etc/zabbix/zabbix_agentd.conf文件中 EnableRemoteCommands=0改为1
EnableRemoteCommands=1
注意:
(1)如果用到以其它用户身份执行命令的话,那么命令本身要以sudo方式运行;
sudo /etc/rc.d/init.d/httpd restart
(2)在各agent上的sudoers文件,要注释如下行
~]# visudo
#Defaults requiretty 表示不需要控制终端(不需要从终端登录就可以执行命令)


Script:Alert Script
放置于特定目录中:AlertScriptsPath=/usr/lib/zabbix/alertscripts
/etc/zabbix/zabbix_server.conf 配置文件中的参数;
脚本中可使用$1,$2,$3来调用action中的 邮件的收件人,Default Subject,Default Message;

注意:新放入此目录中的脚本,只有重启zabbix-server方能被使用;

可视化:
graph,screen,slide shows,map
宏:
两类:
内建:{MACRO_NAME}
自定义:{$MACRO_NAME}
可以在三个级别使用:
Global,Template,Host
优先级别:Host--> Template --> Global
在某级别找到后将直接使用
自定义宏:
全局宏:"Administration --> General --> Macros"
主机或模板级别的宏:编辑相应主机或模板的属性

模板:一系列配置的集合,此些配置可通过“连接”的方式应用于指定的主机
application,item,trigger,graph,screen,discovery,web

维护时间:
Configuration --> Maintenance

User Parameters:
zabbix 内置了许多item key:
用户自定义item key,实现特有数据指标监控

语法:
UserParameter=<key>,<command>
在zabbix agent端配置文件中定义之后,需要重启agent生效;

示例:
UserParameter=os.memory.used,free -m | awk '/^Mem/ {print $3}'
UserParameter=os.memory.free,free -m | awk '/^Mem/ {print $4}'
UserParameter=os.memory.total,free -m | awk '/^Mem/ {print $2}'

UserParameter=Mysql.dml[*], mysql -h$1 -u$2 -p$3 -e 'SHOW GLOBAL STATUS' | awk '/\<Com_$4\>/ {print $$2}'

zabbix提供网络发现功能:network discovery
HTTP ICMP SSH LDAP TCP SNMP Telent Zabbix_agent扫描指定网络内的主机

一旦主机被发现,如果对其进行操作,将由action来决定

LLD:low level Discovery

此二者的功能:
自动添加主机、链接至模板或删除链接、添加监控项、将主机添加至分组、定义触发器、执行远程脚本;

网络发现有两个步骤:
discovery --> action

发现中的事件:
Service Discoverd,Service Lost,Service Up,Service Down
Host Discoverd,Host Lost,Host Up,Host Down
actions
Sending notification
Adding/removing hosts
Enabling/disabling hosts
Adding hosts to a group
Removing hosts from a group
Linking hosts to/unlinking from a template
Executing remote scripts

auto_registation:
Activ Agent Auto-Registration

HostMetadata

支持使用agent(active)类型的item key;

配置过程:
(1)定义agent端:
ServerActive=
Server=
Hostname=
ListenIP= 设置为本机的特定IP:
ListenPort=
HostMetadata=

HostMetadataItem=item key, 一般使用system.uname 最长不能超过355

(2)配置action,要求其事件来源为auto-registation

LLD:Low Level Discovery
自动发现特定变量的名称:
#IFNAME,#FSNAME,
添加针对变量的Items;

返回值为JSON格式

zabbix的监控方式:
zabbix-web所能够显示的且可指定为监控接口类型的监控方式;
Agent
passive
active
SNMP:Simple Network Management Protocol
MIB,SMI,SNMP(v1,v2c,v3)
IPMI
智慧平台管理接口(Intelligent Platform Management Interface)原本是一种Intel架构的企业系统的周边设备所采用的一种工业标准。IPMI亦是一个开放的免费标准,使用者无需支付额外的费用即可使用此标准
JMX:Java Management Extensions,用于通过Java自己的接口对java程序进行监控;
zabbix-java-gateway用于获取监控数据;

SNMP监控方式:
操作:Get,GetNext,Set,Response,Trap
MIB:是被管理对象的集合,而且还额外定义了被管理对象的名称、访问权限、数据类型等属性
MIB视图:MIB的子集
授权:将某MIB视图与某COmmunity绑定来实现;
OID:Object ID,1.3.6.1.2.1
1:system
2:interface
4:ip
6:tcp
7:udp

JMX监控方式:
(1)安装zabbix-java-gateway;
配置文件:/etc/zabbix/zabbix_java_gateway.conf
Listen_IP=
Listen_PORT=10052
zabbix server的配置文件/etc/zabbix/zabbix_server.conf
JavaGateWay=
JavaGateWayPort=10052
(2)Java应用程序开启JMX接口:
java -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10053 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

监控Tomcat
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10053 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"


zabbix database 需要用到的空间:
60000/60 = 1000条

历史数据=天数*每秒钟处理的数据量*3600*24*50Bytes
90*1000*86400*50Bytes

趋势数据:
每一个趋势128Bytes,
大小=天数*监控项*24*128Bytes

事件数据:
每个占据130Bytes
大小:天数*86400*130

posted on 2018-08-29 10:57  队长china  阅读(211)  评论(0编辑  收藏  举报