zabbix默认自带了不少有用的监控模板,一般对主机运行状态使用默认的模板就能够了,有时候咱们须要根据实际状况自定义一些监控信息。本文记录一下zabbix监控nginx服务的配置过程。捋一捋思路,整个配置过程大体以下:nginx
思考一下nginx有哪些信息能够监控,nginx内置了一个status状态的功能,经过配置能够看到nginx的运行状况,status显示的内容包括当前链接数,处于活动状态的链接数,已经处理的请求数等等,关于status状态页的配置在nginx启用status状态页文章有介绍,这里再也不多说。web
经过脚本获取status页面信息的关键值,zabbix server经过这些关键值才能生成数据图像,获取status的关键值脚本以下:shell
#! /bin/bash #date: 2018-05-04 # Description:zabbix监控nginx性能以及进程状态 # Note:此脚本须要配置在被监控端,不然ping检测将会获得不符合预期的结果 HOST="gudaoyufu.com" PORT="80" # 检测nginx进程是否存在 function ping { /sbin/pidof nginx | wc -l } # 检测nginx性能 function active { /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Active' | awk '{print $NF}' } function reading { /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Reading' | awk '{print $2}' } function writing { /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Writing' | awk '{print $4}' } function waiting { /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| grep 'Waiting' | awk '{print $6}' } function accepts { /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $1}' } function handled { /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $2}' } function requests { /usr/bin/curl "http://$HOST:$PORT/status/" 2>/dev/null| awk NR==3 | awk '{print $3}' } # 执行function $1
脚本写完先在本地测试一下
[root@web ~]# sh /home/scripts/ngx_status.sh active 2
要使用脚本监控须要将zabbixd.conf文件中的
UnsafeUserParameters=1
开启
在脚本中添加定义如下各项的键值centos
UserParameter=nginx.status[*],/home/scripts/ngx_status.sh $1
配置好后重启zabbix-agentbash
service zabbix-agent restart
[root@centos ~]# zabbix_get -s 45.76.195.97 -k nginx.status[active] 3
服务端测试正常后就能够在web界面配置监控了,zabbix配置都是经过界面配置,要熟练配置监控,要了解zabbix的每一个组件的功能及各个组件之间的关系,不然看着一堆菜单选项会无从下手。
zabbix的配置流程大体以下:curl
建立主机组 -》添加主机 -》 建立监控模板 -》 建立应用集 -》建立监控项 -》 建立图像—》建立触发器 -》 建立事件 -》建立处理动做 -》 建立用户组与用户 -》建立告警方式
因为前面已经建立了主机组和主机,这里从配置模板开始,咱们能够经过配置监控模板的方式,让全部相同的监控需求的主机都统一调用这个监控模板,这样就不用一个一个地添加监控项了。
这篇文章只作 建立监控模板 -》 建立应用集 -》建立监控项 -》 建立图像 这三项的步奏,监控告警的内容之后再作。性能
定义模板信息,在建立模板的过程中,就能够把该模板添加到指定的主机组或者主机中
返回模板页已经看到建立的模板已经生成,这时建立的模板是空模板,要在这个模板中建立应用集,监控项等,点击下图中的应用集就能够直接建立。
测试
建立应用集我理解为只是给整个模板组中的一部分监控项模板分类,一个模板组中能够建立不一样类别的监控项,建立应用集只是起一个名字,从上图中的应用集进入后建立好应用集而后就能够在应用集中建立监控项了,见下图
url
建立监控项要注意命名方式,可以见名知意,最关键的是 键值 ,这里的键值一点要和agent端的配置文件中定义的键值一致rest
在监控脚本中,一共定义了7个监控项,因此这里的监控项页要建立7个,重复上面的步奏,建立脚本中相应的监控项
监控项建立好后就能够建立图像了
建立图像在选择要显示的图像的监控项时能够选择多个监控项,这样就能够在一个图像中显示多个数据的线图
图像建立完成之后就能够在看到建立的监控模板已经在工做了,在 最新数据 中能够看到建立的模板信息
进入主机查看,建立的应用集已经在主机的应用集中,由于在刚开始建立模板时已经把模板加到该主机中了
最后看看效果图吧
看到建立的图像模板已经出图像了,建立图像模板时定义了4个监控项,因此这里有4个线图。