1.配置一台主机 Hosts
Configuration->Hosts
1.1这台主机标签页如上:
Host name: 输入唯一主机名,允许字母,数字,空格,点,破折号和下划线.需要注意的是,agent 配置文件中hostname的参数必须和该主机名一致.
Visible name:如果设置了,它将显示在list和map中,支持utf-8
Groups: 选择host属于的host groups,一台主机至少要在一个主机组里.
New group:新建一个Host group,并且这个host属于这个新建的Host group. 如果为空就不创建.
Agent interfaces: host接口类型支持agent,SNMP,JMX和IPMI.注意在items中使用的interface是不能被移除的,remove连接是灰色的.
Agent Interface:Zabbix Agent的监控接口
SNMP Interface: SNMP协议的监控,使用它可以获取一些硬件设备的信息.
JMX Interface:JMX是监控Java时使用的
IPMI Interface:一种协议,一般用来获取服务器上的硬件信息和远程管理.
对每一个Interface,都有如下设置:
IP address: Host IP 地址(可选)
DNS name: Host DNS 名字(可选)
Connect to: 这里可以选择IP或者DNS来获取agent数据给Zabbix server. 选择IP会跟根据输入的IP地址去寻找Host;选择DNS的话会根据输入的Host name和DNS地址去解析IP
Port : TCP 端口号,默认使用10050
Default: 默认使用这个interface和zabbix agent通信
Monitored by proxy:Host 可以被Zabbix Server 监控(选择no proxy)和被Zabbix Proxy监控.
Status: 主机状态.monitored就是需要监控,not monitored表示不需要监控
1.2 Templates 标签页
templates允许你连接一个templates 到主机上,所有实体(items,triggers,graphs 和 applications)将被继承.取消关联把包括2种情况.
Unlink:移除template和host的关系.但会保存它的items和trigger和graphs
Unlink and clear:除了"Unlink"之外,在Template上的Item等也取消与Host关联.
1.3 IPMI
包含认证算法,特权级别,用户名,密码
1.4 Macros(宏)
用于定义Host级别的Macro,监控用到的参数
1.5 Host inventory
表单可以让你手动的输入一些host的信息,类似于资产信息
2 Host group
Configuration->Hosts groups
group name: 输入唯一主机组名.
hosts: 从组里选择主机,主机组可以包括0个,1个或更多的主机.
3. Items
Configuration->Hosts->Items
Name: Item的名字.名字中可以使用$1,$2等参数.$1指的是下面Key里面,括号中的参数.比如vfs.fs.size[/,free],如果标题是用"$1空余空间",则标题显示的就是"/空余空间"
Type: 监控客户端的方式
Key: zabbix监控内容的属性.对于一个Host,它所有的Item的Key都是独一无二的,如果试图设置两个相同的Key,会失败.
Host interface: 修改直接关联在Host上的Item时有效.
Type of information: Item取值的类型:
Numeric(unsigned):64bit 无符号整形.
Numeric(float):浮点型.
Character:字符串,大小不超过255bytes
Log:log文件,当使用log或者logrt作为item的key的时候需要选择的选项.
Text:文本,没有长度限制.
Data type: 用在整型的items中,用来指定确切的数据类型
boolean 0/1
octal 八进制
decimal 十进制
hexadecimal 十六进制
Units: 如果这个选项被设置了,那么zabbix会针对返回值进行单位转换的处理.对于超过1000的数值,zabbix会将它除以1000,并以多少k的方式显示.比如18000,显示的时候就是18k.比较特殊的是针对B(byte)和Bps(bytes per second),如果设置了B或Bps,那么1会显示为1B/Bps,1024会显示为1KB/1KBps.
Use custom multiplier: 如果开启这个属性,所有收到的整型或浮点数都会乘以这里设置的数字.这里主要为了单位的转换,比如把KB,MBps转化成B,Bps.注意不能在前面加前缀.
Update interval(in sec):每N秒获取Item的数值.如果设置为0,那么不会刷新数据.
Flexible intervals:弹性intervals,可以根据不同时间来设置不同的Update interval.但是这个对Active类型的Item是不生效的,因为Active是agent发出的数据.
History storage period (in days):在数据库中保存多少天的数据,过期的数据会被清除.
Trend storage period (in days):zabbix的历史数据有History和Trends,Trends保存了每小时的min,max,avg,count的值.会保存N天的Trends的数据在数据库.更好的数据会被Housekeeper清除.
Store value:这个是数据在获取后的一些操作.
As is:不做任何处理
Delta(speed per second):这是计算一个差值(value-prev_value)/(time-prev_time).主要针对那种需要抓取的每分钟变化的item
Delta(simple change):就是value-prev_value
Show value:
New application:新建一个application
Populated host inventory field: 在这里可以选择一个在Host中设置的Invertory属性,这样的话,该项Item的值会自动推送给选择的inventory field.
Description:对该项item的描述
Enabled:是否启用该项Item.
3.1 Item key 详解:
3.1.1 灵活的参数
参数位置可以接受参数是灵活的.例如 vfs.fs.size[*], 星号象征表面着任意参数. 如:
vfs.fs.size[/opt]
3.1.2 key的格式
item key 格式包括key变量,必须遵循下列语法规则,根据以下箭头指向,首先验证key名是否合法,如果存在参数那么验证参数是否合法,如果没有参数那直接跳过。
key name这key名字允许以下字符范围: 0-9a-zA-Z_-.
也就是所有数字,大小写字母,下划线,破折号,逗号
Key parameters
item key 允许有多个参数,需要用逗号","分开
key参数可以是带引号的字符串,不带引号的字符串以及数组.
参数左边是空,那么就使用的是默认值.如item key为 icmpping[,,200,,500] ,那么200毫秒会ping一次,超时为500毫秒,其他参数是默认值.
参数 - 带引号
如果这个key参数是带引号的,任何Unicode 字符都被允许.如果参数里面包含双引号必须使用反斜杠转义
参数 - 不带引号
如果这个Key参数是一个不带引号的字符串,除了逗号和右中括号其他Unicode字符都合法
参数- 数组
如果这个key 参数是一个数组,那么它要多加一对中括号. 其中里面参数也要遵循参数规范.
3.2 Item types
items types 有很多种 如 Zabbix agent, Simple checks, SNMP, Zabbix internal, IPMI, JMX monitoring等等。
从zabbix 2.0开始一台主机可以定义多个接口,什么是接口?agent、jmx、impi、snmp这些都是接口。假如你需要检查他的硬件那你需要配置impi,如果你还需要检测他的mysql、nginx之类的,你需要agent,监控什么类型的item,你需要配置什么类型的接口。如果你配置来多个接口,当需要检查一个tiem,zabbix会依次(Agent→SNMP→JMX→IPMI)调用接口,直到找到合适的接口为止。有些监控项完全由服务器端来完全,根本不需要agent.
下面主要介绍常用的items types:
zabbix agent:
zabbix服务器端通过与zabbix agent通信来获取客户端服务器的数据,agent分为两个版本,其中一个是主动一个是被动,在配置主机我们可以看到一个是agent,另一个是agent(active)。前者为被动检测,后者为主动检测。那么主动和被动区别在哪里呢?
被动:zabbix server向zabbix agent讨要数据。
主动:zabbix agent提交数据给zabbix server。
item key是需要分不同平台的,可以通过下面连接查看大部分平台所支持的item key:
https://www.zabbix.com/documentation/2.2/manual/appendix/items/supported_by_platform
https://www.zabbix.com/documentation/2.2/manual/config/items/itemtypes/zabbix_agent/win_keys
zabbix simple check
simple checks 通常用来远程未安装客户端的服务,zabbix server 直接使用simple checks来收集数据,一般用来检查远程服务的端口是否在监听
如:
net.tcp.service[ftp,,155]
net.tcp.service[http]
net.tcp.service.perf[http,,8080]
使用基本检测去监控vmare服务器,需要填写user,password,其他服务器可以忽略
支持基本检测
Key | ||||
描述 | 返回值 | 参数 | Comments | |
icmpping[<target>,<packets>,<interval>,<size>,<timeout>] | ||||
检测是否支持icmpping | 0 – ICMP ping失败1 – ICMP ping 成功 | target – 主机IP或者域名packets – 包数量interval – 连续的数据包之间的时间间隔,以毫秒为单位 size – 包大小,以字节为单位 timeout – 超时时间,以毫秒为单位 | 例如: icmpping[,4] – 4个包只要一个有返回,那么将会返回1 See also details of processing ICMP pings. | |
icmppingloss[<target>,<packets>,<interval>,<size>,<timeout>] | ||||
返回百分比 | 丢包率 | target – 目标IP或者域名packets – 包个数 interval – 连续包之间的时间间隔,以毫秒为单位 size – 包大小,字节为单位timeout – 超市时间,毫秒为单位 | 请参考 details of processing ICMP pings. | |
icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>] | ||||
返回ICMP响应时间 | 秒 | target – 主机IP或者域名packets – 包个数 interval – 包得响应时间,毫秒为单位 size – 包大小,字节为单位 timeout – 超时时间,毫秒为单位 mode – min, max, avg (默认值) | .如果主机不可用,比如挂掉了,那么会返回0 | |
net.tcp.service[service,<ip>,<port>] | ||||
检测服务是否运行并且接受tcp连接 | 0 – 服务未开启1 – 服务运行中 | service – ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet中的一个 ip – zabbix中定义好的ip port – 端口(标准服务端口). | 范例: net.tcp.service[ftp,,45] 检测运行在端口号45的FTP服务是否可用.加密协议imap993端口和pop995端口目前不支持zabbix 2.0开始支持https和telnet | |
net.tcp.service.perf[service,<ip>,<port>] | ||||
检测服务器性能. | 0 – 服务停止sec – 连接到服务器的时间(秒) | service – ssh, ntp, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet之一 ip – zabbix中定义的IP port – 端口(标准端口号) | 例如: net.tcp.service.perf[ssh] 可以检测连接到ssh所消耗的时间. Note that with tcp service indicating the port is mandatory.加密协议服务不支持,例如IMAPzabbix 2.0开始支持https和telnet |
ICMP pings
zabbix 使用外部命令fping 来处理ICMP pings
默认fping 不在zabbix 发行版里面,必须额外安装. 如果没有安装或者错误权限或路径不匹配,ICMP pings(icmpping,icmppingloss,icmppingsec) 将不会处理
fping 要使用时需要设置setuid root,设置权限如下:
shell> chown root:zabbix /usr/sbin/fping
shell> chmod 4710 /usr/sbin/fping
检测icmp默认参数:
Parameter | Value | Description | fping flag | Min | Max |
---|---|---|---|---|---|
packets | 3 | pings to the target | -C | 1 | 10000 |
interval | 1000 | 毫秒,fping 默认 | -p | 20 | |
size | 56 or 68 | 字节, “fping” default; 56 bytes on x86, 68 bytes on x86_64 | -b | 24 | 65507 |
timeout | 500 | 毫秒,fping默认 | -t | 50 |
3.3 Histroy and trends
histroy 和 trends 是zabbix 收集数据的两种方法,history存储的是每一个Item的数据,Trends是每小时监控的数据聚合后的结果,它会保存一小时内某个Item的平均值,最大值和最小值.
对于 history,有3个方法可以设置某个item保存的history时间
(1)在item设置中
(2)在mass-updating中设置
(3)在Housekeeper任务设置中
所有超过期限的数据都会被housekeeper删除.建议尽可能少地保存history,trends则可以保存比较长的时间.
注意:如果把history设置为0,则zabbix只会根据检测最近的数据去检查trigger,数据库也不会存在相应数据.
trends是zabbix聚合history数据的一种机制,存储了每小时的最小值,最大值和平均值.和histroy一样,同样是上述3个方法设置item中的trends数据
一般trends要比history保存时间长很多.当trend为0时,zabbix将不会计算或者存储.
3.4 用户自定义key参数
有时我们想让客户端执行一个zabbix没有预先定义好的检测,这就需要自定义用户参数了.可以写一条命令收集你所需要的数据并在客户端配置文件里面配置定义UserParameter.
语法如下:
UserParameter=<key>,<command>可以看到,用户参数包括一个key,这个key必须配置item,而且key必须系统唯一.然后重启客户端.在key的位置填上自定义的key即可,用户自定义参数里指定的脚步由zabbix agent来执行.最大可以返回512KB的数据.
实例如下:
1.简单命令:
UserParameter=ping,echo 1调用ping这个key,返回值是1
2.复杂一点的例子:
UserParameter=mysql.ping,mysqladmin -uroot ping|grep -c alive返回1说明mysql运行中,如果是0 表示mysql 挂了
3.灵活自定义key:
UserParameter=key[*],command
参数 | 描述 |
---|---|
Key | 唯一,[*]定义了这个Keyk可以接受传递多个参数 |
Command | 需要执行的脚本,key的[]里面的参数一一对应$1到$9,一共九个参数,$0表示脚本命令 |
1)如果遇到需要使用命令行里出现$2类似的变量,那么你需要使用两个$$2,如:awk '{print $$2}'.
2)除非UnsafeUserParameters 配置选项打开.不允许使用下列参数符号 \ ' ” ` * ? [ ] { } ~ $ ! & ; ( ) < > | # @,此外换行符也不允许.
3)从zabbix 2.0开始,zabbix返回文本数据可以是空格,如果返回无效数据,agent 将发送ZBX_NOTSUPPORTED
实例:
1.简单的例子:
UserParameter=ping[*],echo $1ping[0],将返回 0
ping[aaa],将返回'aaa'
2.
UserParameter=mysql.ping[*],mysqladmin -u$1 -p$2 ping | grep -c alive如下参数用于监控mysql,并且可以传递用户名和密码
mysql.ping[zabbix,our_password]
3 统计一个文件中有多少行匹配
UserParameter=wc[*],grep -c "$2" $1如下参数会计算该文件出现指定字符的行数
wc[/etc/passwd,root] wc[/etc/services,zabbix]
附录:
https://www.zabbix.com/documentation/2.2/manual/config/items