gdx 发表于 2019-1-19 09:16:25

(5)Zabbix用户参数配置

用户参数介绍:
  有时候当我们运行的监控项目在zabbix预定义的key中没有定义时,就需要我们手动编写zabbix用户参数的方法来监控我们要定义的项目。需要在zabbix agent端把相关获取参数的命令写入到配置文件中的UserParameter中,然后zabbix Server读取配置文件中的返回值通过处理前端的方式返回给用户。
  定义方法如下:
  在被监控端/etc/zabbix/zabbix_agentd.d/目录下,创建*.conf结尾的文件,在文件内写入获取命令即可。

  定义的语法如下:
  UserParameter=key
[*],command
  参数描述:
      Key:唯一.
[*]表示里面可以传递多个参数
      Command:需要执行的脚本,key的[]里面的参数一一对应$1到$9,一共9个参数。$0表示脚本命令。
  注意事项:
  如果需要使用命令行里面出现$2这种变量,那么你要使用两个$$2,例如awk '{print $$2}',否则会获取不到数据。
监控内存参数
  示例:在被监控服务器node2的/etc/zabbix/zabbix_agentd.d/目录下,创建一个os.conf文件,定义获取内存的值
# vim /etc/zabbix/zabbix_agentd.d/os.conf
UserParameter=os.memory.used,free -m | awk '/^mem/ {print $3}'
# service zabbix-agent restart  Zabbix服务器应用新定义的用户参数,这里使用刚刚定义的建值
http://s3.运维网.com/wyfs02/M01/6F/4E/wKioL1WYu5GCXh-PAAIOUjCp5Rs533.jpg
  定义一个图形:
http://s3.运维网.com/wyfs02/M01/6F/50/wKiom1WYucfQSwFcAAGBQGXTt94020.jpg
  可以从图形看到收集的相关数据了
http://s3.运维网.com/wyfs02/M02/6F/4E/wKioL1WYu5vx71GzAAM0SeFE-q4089.jpg
  客户端还可以监控其他参数,如获取第二段就是总空间,获取第四段就是剩余空间
# vim /etc/zabbix/zabbix_agentd.d/os.conf
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}'         #内存总空间
# service zabbix-agent restart  在定义一个监控项监控内存剩余空间
http://s3.运维网.com/wyfs02/M02/6F/50/wKiom1WYudaj-XYwAAIUK09Ql1s204.jpg
  定义饼状图一起显示内存已用空间和剩余空间
http://s3.运维网.com/wyfs02/M00/6F/50/wKiom1WYudnjhzWFAAJsQzheD_k594.jpg
  图形预览如下所示:
http://s3.运维网.com/wyfs02/M00/6F/4E/wKioL1WYu6jTYXE4AAHJ52ZTM24930.jpg
监控nginx状态参数
  安装nginx
# yum -y install nginx  配置nginx
# vim /etc/nginx/conf.d/default.conf
location /status {
      stub_status on;
      allow 172.16.0.0/16;
      deny all;
}  设置完成访问验证:
http://s3.运维网.com/wyfs02/M00/6F/50/wKiom1WYuePTPMzgAACNi6ERNRI201.jpg
  显示说明:
  Active connections: 2   # 当前所有处于打开状态的连接数;
  server accepts handled requests
  9 9 33
  (1) 已经接受过的连接数
  (2) 已经处理过的连接数
  (3) 已经处理过的请求数;在"保持连接"模式下,请求数量可能会多于连接数量;
  Reading: 1 Writing: 1 Waiting: 0
  Reading:正处于接收请求状态的连接数;
  Writing: 请求已经接收完成,正处于处理请求或发送响应的过程中的连接数;
  Waiting:保持连接模式,且处于活动状态的连接数;
  

  定义UserParameter用来获取指定参数的值:
# vim /etc/zabbix/zabbix_agentd.d/nginx.conf
UserParameter=Nginx.active
[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^Active/ {print $NF}'         #监控active
UserParameter=Nginx.reading
[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Reading' | cut -d" " -f2    #监控reading
UserParameter=Nginx.writing
[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Writing' | cut -d" " -f4    #监控writing
UserParameter=Nginx.waiting
[*], /usr/bin/curl -s "http://$1:$2/status" | grep 'Waiting' | cut -d" " -f6    #监控waiting
UserParameter=Nginx.accepted
[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]++[ \t]++[ \t]++/ {print $$1}'#监控已接受连接
UserParameter=Nginx.handled
[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]++[ \t]++[ \t]++/ {print $$2}'   #监控处理过的连接
UserParameter=Nginx.requests
[*], /usr/bin/curl -s "http://$1:$2/status" | awk '/^[ \t]++[ \t]++[ \t]++/ {print $$3}'#监控已经处理过的请求数
# service zabbix-agent restart  定义一个监控项,监控已经处理过的请求数
http://s3.运维网.com/wyfs02/M01/6F/4E/wKioL1WYu6-yhrspAAJX_pTU3GY685.jpg
  

  定义图形
http://s3.运维网.com/wyfs02/M02/6F/4E/wKioL1WYu7WzP34fAAGU8GsCJfI053.jpg
  

  这个时候就可以看到监控的参数了
http://s3.运维网.com/wyfs02/M02/6F/50/wKiom1WYueuyAkEYAAHfDxVaKb0618.jpg
  

  如果需要获取其他的参数,只需要在创建项目时设置相对应的key和对应的值即可。
  

  相关内容:
  (1)Zabbix2.4.5安装配置:http://ximenfeibing.blog.运维网.com/8809812/1670988
  (2)Zabbix客户端监控+报警:http://ximenfeibing.blog.运维网.com/8809812/1670999
  (3)Zabbix宏设置:http://ximenfeibing.blog.运维网.com/8809812/1671024
  (4)使用zabbix监控web:http://ximenfeibing.blog.运维网.com/8809812/1671032
  (4)Zabbix用户参数配置:http://ximenfeibing.blog.运维网.com/8809812/1671039
  (6)Zabbix模版+网络发现:http://ximenfeibing.blog.运维网.com/8809812/1671041
  (7)Zabbix分布式监控proxy实现:http://ximenfeibing.blog.运维网.com/8809812/1671048



页: [1]
查看完整版本: (5)Zabbix用户参数配置