在进行这个实验之前确保server2,server3已经被加入监控主机

nginx配主备_配置文件


1.实现zabbix监控httpd服务

httpd是zabbix自带的监控模块

首先在server2上安装apache,开启服务

[root@server2 zabbix]# yum install httpd -y
 [root@server2 zabbix]# systemctl start httpd
 [root@server2 zabbix]# systemctl enable httpd

nginx配主备_配置文件_02


然后在web界面上进行设置
点击配置–>主机(选择server2)–>模板–>选择模板

nginx配主备_nginx配主备_03


nginx配主备_vim_04


nginx配主备_nginx_05


nginx配主备_nginx配主备_06


server2上已经有了hhtp服务

nginx配主备_vim_07


可以看到server2主机的触发器多了一个httpd服务的触发器,是端口的触发器,zabbix是通过端口来检测httpd服务的

nginx配主备_nginx配主备_08

2.实现zabbix监控nginx服务

在监控主机server3上部署nginx服务。

下载安装包并解压,安装依赖性软件并编译安装,注释掉debug日志。

[root@server3 ~]# yum install gcc pcre-devel zlib-devel -y
 [root@server3 ~]# tar zxf nginx-1.15.8.tar.gz
 [root@server3 ~]# cd nginx-1.15.8/
 [root@server3 nginx-1.15.8]# ./configure --help | grep stub
 –with-http_stub_status_module enable ngx_http_stub_status_module

nginx配主备_vim_09

[root@server3 nginx-1.15.8]# vim auto/cc/gcc #注释debug行

nginx配主备_nginx配主备_10


[root@server3 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module编译
 [root@server3 nginx-1.15.8]# make && make install安装

nginx配主备_vim_11


修改nginx配置文件,向nginx配置文件中添加用于网页状态的查看检测的模块,以及开启nginx服务。

[root@server3 nginx]# vim /usr/local/nginx/conf/nginx.conf
 48 location /status {
 49 stub_status on; #开启该模块
 50 access_log off; #关闭日志记录
 51 allow 127.0.0.1; #白名单 只允许本机访问
 52 deny all;
 53 }

nginx配主备_nginx_12


做一个软链接方便更新,同时查看nginx的路径,检查配置文件是否正确。

ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
 [root@server3 nginx]# which nginx
 /usr/sbin/nginx
 [root@server3 nginx]# nginx -t监测配置文件的语法
 [root@server3 nginx]# nginx 开启nginx服务

nginx配主备_nginx_13


在server3本机curl 127.0.0.1/status来测试nginx服务是否部署成功

nginx配主备_nginx_14


通过命令来获取活跃连接数的值

nginx配主备_配置文件_15


Active connections 活跃的连接数

accepts 接收到的请求数(不一定回复)

handled 确定建立三次握手的请求数

requests 处理的请求数修改server3的配置文件/etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf,创建nginx的监控项

[root@server3 ~]# cd /etc/zabbix/zabbix_agentd.d/
 [root@server3 zabbix_agentd.d]# ls
 userparameter_mysql.conf
 [root@server3 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf #将mysql服务的监控模版给nginx服务复制一份

nginx配主备_nginx_16


[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf #编辑配置文件UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk ‘{print $3}’ #获取活跃连接数,nginx.active为健值,获得的连接数为value值

nginx配主备_nginx_17


[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent #修改完成重启服务在web界面添加nginx的监控

nginx配主备_vim_18


监控项名称自定义,健值必须和server3配置文件中的一致

nginx配主备_vim_19


nginx配主备_nginx配主备_20

点击添加

nginx配主备_vim_21


nginx配主备_vim_22


创建图形,将已经添加的监控项导入

nginx配主备_nginx_23


nginx配主备_配置文件_24


查看监控图形

nginx配主备_vim_25


发现图形上的文字乱码了

web界面字体的调整

[root@server1 ~]# cd /usr/share/zabbix/fonts/
 [root@server1 fonts]# ll
 lrwxrwxrwx 1 root root 33 Aug 1 04:54 graphfont.ttf -> /etc/alternatives/zabbix-web-font
 [root@server1 fonts]# ls
 graphfont.ttf simkai.ttf
 [root@server1 fonts]# cd …
 [root@server1 zabbix]# cd include/
 [root@server1 include]# vim defines.inc.php

nginx配主备_vim_26


:%s/graphfont/simkai/g #将graphfont替换为simkai

nginx配主备_vim_27


从真机把字体发给server1

nginx配主备_vim_28


nginx配主备_nginx_29


刷新后没有乱码了

nginx配主备_vim_30


zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key 是否能正常获取到数据
在测试自定义监控的时候特别有用
在server1下载软件zabbix-get,来获取server3的活跃连接数

[root@server1 include]# yum install zabbix-get -y

nginx配主备_vim_31


[root@server1 include]# zabbix_get -s 172.25.15.3 -p 10050 -k “nginx.active”

1

nginx配主备_nginx_32


在server3继续使用三剑客 获取接收到的请求数(accept)和处理的请求数(request)

[root@server3 zabbix_agentd.d]# curl -s http://localhost/status | grep Active | awk ‘{print $3}’
 [root@server3 zabbix_agentd.d]# curl -s http://localhost/status
 [root@server3 zabbix_agentd.d]# curl -s http://localhost/status | awk NR3
 [root@server3 zabbix_agentd.d]# curl -s http://localhost/status | awk NR3 |awk ‘{print $1}’
 [root@server3 zabbix_agentd.d]# curl -s http://localhost/status | awk NR3 |awk ‘{print $2}’
 [root@server3 zabbix_agentd.d]# curl -s http://localhost/status | awk NR3 |awk ‘{print $3}’

nginx配主备_nginx_33


编辑nginx的监控文件userparameter_nginx.conf,将要获取的健值对加入

[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf
 UserParameter=nginx.active,curl -s http://localhost/status | grep Active | awk ‘{print $3}’
 UserParameter=nginx.accept, curl -s http://localhost/status | awk NR3 |awk ‘{print $1}’
 UserParameter=nginx.request, curl -s http://localhost/status | awk NR3 |awk ‘{print $3}’
 [root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent

nginx配主备_nginx_34


nginx配主备_nginx_35


在server1执行命令获取接受的请求数以及回复的请求数

[root@server1 include]# zabbix_get -s 172.25.15.3 -p 10050 -k “nginx.active”
 [root@server1 include]# zabbix_get -s 172.25.15.3 -p 10050 -k “nginx.accept”
 [root@server1 include]# zabbix_get -s 172.25.15.3 -p 10050 -k “nginx.request”

nginx配主备_配置文件_36

web界面添加新的监控项

选择主机server3,监控项,创建监控项

nginx配主备_配置文件_37


之前已经创建了nginx_active,再创建两个监控项nginx_accept和nginx_request

nginx配主备_nginx_38


nginx配主备_nginx_39


nginx配主备_配置文件_40


将新建的监控项添加到原来的nginx_active的图形中,将三个监控项放在同一个坐标图形里面可以对比

nginx配主备_vim_41


点击更新之后查看图形

nginx配主备_nginx_42


为了图形界面的效果显示的更加明显,我们通过server3自己进行压力测试,自己访问自己

yum install httpd -y

nginx配主备_配置文件_43


nginx配主备_nginx_44


在server3重启服务

在server1查看我们三个监控项的数值变化

[root@server1 include]# zabbix_get -s 172.25.15.3 -p 10050 -k “nginx.active”
 [root@server1 include]# zabbix_get -s 172.25.15.3 -p 10050 -k “nginx.accept”
 [root@server1 include]# zabbix_get -s 172.25.15.3 -p 10050 -k “nginx.request”

nginx配主备_配置文件_45

不同图形的切换方法

默认为线形图,最直观,直接点击就可预览

nginx配主备_nginx配主备_46

>层积图


nginx配主备_配置文件_47


nginx配主备_nginx配主备_48


pie


nginx配主备_nginx_49


nginx配主备_vim_50


爆发图


nginx配主备_配置文件_51


nginx配主备_vim_52