1、实现zabbix监控nginx
实验环境:
server1 172.25.1.1 server redhat7
test1 172.25.1.11 agent redhat7
在“手动添加”主机的基础上进行扩展
开启服务:
[root@server ~]# systemctl start zabbix-server
[root@server ~]# systemctl enable zabbix-server
[root@server ~]# systemctl start mariadb
[root@server ~]# systemctl enable mariadb
[root@test1 ~]# /etc/init.d/zabbix-agent start
在agent端提前下载好nginx的rpm包,nginx-1.8.0-1.el6.ngx.x86_64.rpm
[root@test1 ~]# rpm -ivh nginx-1.8.0-1.el6.ngx.x86_64.rpm //也可以下载nginx源码包,不过编译的时候必须添加status模块
注意:这里由于笔者的主机为企业6,所以安装包为6版本
[root@test1 ~]# cd /etc/nginx/conf.d/
[root@test1 conf.d]# vim default.conf //增加了一个status模块
server {
listen 80;
server_name localhost;#charset koi8-r;
location / {
root html;
index index.html index.htm;
}location /nginx-status {
stub_status on;
access_log off;
}
[root@test1 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@test1 ~]# nginx //启动nginx服务
网页进行nginx的状态查看
为了安全考虑,我们可以设置黑白名单
location /nginx-status {
stub_status on;
access_log off;
allow 172.25.1.11; //只允许本机使用,这里的ip也可以写成127.0.0.1
deny all; //除本机外所有访问拒绝
}
重起nginx服务,此时其他主机不可对其状态进行访问
例如物理机:
本机172.25.1.11主机进行访问:
[root@test1 ~]# curl 172.25.1.11/nginx-status
通过正则表达式取出状态值
[root@test1 ~]# curl -s http://172.25.1.11/nginx-status | grep Active | awk '{print $3}'
[root@test1 ~]# cd /etc/zabbix/
[root@test1 zabbix]# ls
zabbix_agentd.conf zabbix_agentd.d
[root@test1 zabbix]# cd zabbix_agentd.d/
[root@test1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@test1 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
[root@test1 zabbix_agentd.d]# ls
userparameter_mysql.conf userparameter_nginx.conf
[root@test1 zabbix_agentd.d]# vim userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://172.25.1.11/ngimx-status | grep Active | awk '{print $3}'
[root@test1 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart //重启服务
以相同的方式分别取出其他状态并进行绘图:
[root@test1 zabbix_agentd.d]# curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $1}'
27
[root@test1 zabbix_agentd.d]# curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $2}'
28
[root@test1 zabbix_agentd.d]# curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $3}'
32
[root@test1 zabbix_agentd.d]# vim userparameter_nginx.conf //其中的 nginx.active等都是键值
UserParameter=nginx.active,curl -s http://172.25.1.11/nginx-status | grep Active | awk '{print $3}'
UserParameter=nginx1.active,curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $1}'
UserParameter=nginx2.active,curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $2}'
UserParameter=nginx3.active,curl -s http://172.25.1.11/nginx-status | awk 'NR==3' | awk '{print $3}'
[root@test1 zabbix_agentd.d]# /etc/init.d/zabbix-agent restart
[root@server1 zabbix_agentd.d]# cd
[root@server1 ~]# ls //提前可下载好这个rpm工具包
zabbix-get-3.4.6-1.el7.x86_64.rpm
[root@server1 ~]# rpm -ivh zabbix-get-3.4.6-1.el7.x86_64.rpm
[root@server1 ~]# zabbix_get -s 172.25.1.11 -p 10050 -k 'nginx.active'
1
[root@server1 ~]# zabbix_get -s 172.25.1.11 -p 10050 -k 'nginx1.active'
46
[root@server1 ~]# zabbix_get -s 172.25.1.11 -p 10050 -k 'nginx2.active'
47
[root@server1 ~]# zabbix_get -s 172.25.1.11 -p 10050 -k 'nginx3.active'
此时我们到zabbix网页添加监控项
点击“配置”——>主机
点击test1的监控项,并点击有上角的“添加监控”选项:
点击右端的“创建监控项" ,填写键值
,键值必须与
userparameter_nginx.conf文件中的键值相同——>填写完点击“添加”
点击图形——>点击有上角的“创建图形” ,这里笔者写的绘图风格为“填满的区域”
点击“添加”添加nginx_status
点击图形右边的“预览”选项: 这里的绘图风格为“填满的区域”,读者可自行改变风格
以这样的添加监控的方式继续添加剩下的三项:
点击监控项进行添加:
最终添加完后的监控项共四项,结果如下:
继续点击图形——>点击下面的“添加”——>开始添加图形:
点击查看预览就可以看到图形啦。
我们可以绘出“填满的区域”风格的图:
也可以是“线”风格的:
实验到此就结束啦!!!
另外补充:如果搭建完没有看到线或者任何图案,则说明你的主机可能是不可用的,这时你查看test1是否处于可用状态,即“可用性“那一栏是否是绿色的,若不是,检查服务是否并未启动等。