ab520025520025 发表于 2018-1-1 18:12:54

第2章Zabbix基础进阶

1.1自定义添加item
  Items可以存在于模板(Template)中,也可以存在于主机(Host)中,模板的作用是可以复用,对需要重复配置的监控项归类。
  下面演示如何在bjstack模板中添加一个Items,Key为memory.uasge以及memory.uasge
  1.配置zabbix-agent配置文件,添加自定义key,修改配置文件必须重启agent
  在/etc/zabbix/zabbix_agentd.conf中配置参数,写法如下:
  UserParameter=memory.uasge
[*],/bin/cat /proc/meminfo |grep "$1"|awk '{print $$2}'
  2.测试key是否能获取值
# yum install zabbix-get -y
# zabbix_get -s 192.168.90.12 -k memory.uasge
  494328
# zabbix_get -s 192.168.90.12 -k memory.uasge
  76584
  确保能获取到的值,就说明Key配置是正确的。提示:zabbix_get仅能测试获取Agent监控方式的Key值,不能获取其他类型的数据。
  3.bjstack模板中默认不存在统计总内存的大小的Items,故我们需要自己添加item,添加方法:单击Configuration→Templates→bjstack→items→Create item,如图1-10所示

图1-10
  4.自己定义的Key,手动添加即可

图1-11
  5.完整的key如图1-12 (自定义key基本上都是如下模式,更多请看Zabbix监控实践)

图1-12
1.2Items key小结
  用户自定义参数(UserParameter)仅支持Agent方式,对于其他方式,它是不支持的。
  1.Key自定义的语法格式
  在/etc/zabbix/zabbix_agentd.conf中配置参数,写法如下。
  UserParameter=key,command
  除了上面这种写法,还支持参数传递的写法,具体如下。
  UserParameter=key
[*],command $1 $2 $3 ….
  2.自定义Key中的特殊字符处理
  如果Userparameter包含\’”`*?[]{}~$!&;()<>|#@这些字符,默认情况下,Zabbix对这些参数是无法正常处理的,需要在Zabbix_agentd.conf中开启参数UnsafeUserParameters,并将其值设置为1,语句如下。
#vim /etc/zabbix/zabbix_agentd.conf
  UnsafeUserParameters=1
  3.自定义Key的例子
  UserParameter=login-user,uptime|awk-F ' ' '{print $4}'
  然后重启zabbix_agent 服务(注意:修改配置文件必须重启。)
# zabbix_get -s 192.168.90.12 -k login-user #运行测试命令,查看下Key
  2
  4.子配置文件的配置
  为了便于维护和分类管理,UserParameter的内容可以单独写一个配置文件。
#vim /etc/zabbix/zabbix_agentd.conf
  Include=/etc/zabbix/zabbix_agentd.d/
  Include是zabbix_agentd.conf中部分内容的子配置文件,注意:zabbix_agentd.conf.d/文件下所有的配置文件都会被当做子配置文件,如果有重复,会导致客户端Agent启动失败。
  5.用户自定义参数总结
  自定义Key的语法。
  特殊字符的处理。
  子配置文件的注意事项。
  注意:
  1.用户自定义参数一定要包含一个key和一个命令,也可以是一个脚本
  2.key在整个系统是唯一的,一个key可以定义多个items
  3.用户自定义参数返回值,最大返回512兆
  4.自定义完后,重启服务测试Key
1.3Zabbix常用Key
1.3.1CPU的Key
  system.cpu.intr #设备中断整数
  system.cpu.load[<cpu>,<mode>] #CPU负载
  system.cpu.num[<type>] #CPU数量处理器个数type
  system.cpu.switches #上下文交换交换次数
  system.cpu.util[<cpu>,<type>,<mode>] #CPU利用率百分比
  建议:
  CPU负载、上下文、使用率等在Template OS Linux这个模板中存在,需要调整触发器,因为默认触发器较低(通过百分比来触发报警。)
1.3.2内存的key
  vm.memory.size[<mode>] #内存大小字节或百分比
  system.swap.in[<device>,<type>] #磁盘交换到交换分期
  system.swap.out[<device>,<type>] #交换分期到磁盘
  system.swap.size[<device>,<type>] #交换分区大小或者百分比
  建议:
  内存在Template OS Linux这个模板中存在,调整下触发器即可(通过百分比来触发报警。)
1.3.3磁盘的key
  vfs.dev.read[<device>,<type>,<mode>]#磁盘读取状态整数
  vfs.dev.write[<device>,<type>,<mode>] #磁盘写入状态整数
  vfs.fs.inode #磁盘inode数量pfree (空闲百分比), pused (使用百分比)
  建议:
  默认Template OS Linux模板有自动发现磁盘,以及外接数据盘,只需要修改自动触发器即可。(如果需要监控inode,则可以通过自带key,也可以通过自定义方式)
1.3.4网卡流量Key
  net.if.in#网卡入口流量
  net.if.out #网卡出口流量
  net.if.total #网卡进/出流量的总和
  建议:
  默认Template OS Linux模板都有自动发现网卡功能,所以基本我们只需要根据业务的流量来调整不同的触发器。
1.3.5监控端口的Key
  net.tcp.listen #检测TCP端口是否开启
  net.udp.listen ##检测UDP端口是否开启
  net.tcp.port[<ip>,port] #连接到指定的TCP端口
  net.tcp.service #检测服务是否开启,并且端口可用
  建议:
  默认Template OS Linux没有端口检测,可以根据实际情况监控端口以及服务(也可以通过自定义脚本来实现)。
1.3.6监控文件的key
  vfs.file.cksum #计算文件校验
  vfs.file.contents #获取文本内容若为空,只返回 LF/CR characters.
  vfs.file.exists #检测文件是否存在1:存在 0:不存在
  vfs.file.md5sum #文件MD5校验码文件MD5哈希值
  vfs.file.size #文件大小字节fzabbix必须有可读此文件的权限
  vfs.file.time #文件时间信息Unix 时间戳. mode:modify (默认, 修改时间), access 最后访问时间, change 最后改变时间
  建议:
  默认Template OS Linux只有一个文件校验/etc/passwd,可根据不同的文件来做不同校验或者大小的控制。
1.3.7监控进程的key
  kernel.maxfiles #系统支持最大的open files整数
  kernel.maxproc #系统支持最大的进程数量整数
  建议:
  进程在Template OS Linux这个模板中存在,调整下触发器即可(低于多少即触发)。
页: [1]
查看完整版本: 第2章Zabbix基础进阶