首先web页面上给server2主机添加http模块
httpd是zabbix自带的监控模块
server2主机的触发器多了一个httpd服务的触发器,是端口的触发器,zabbix是通过端口来检测httpd服务的(也就是每格1s去ping80端口,只要80端口是好的就不会报错,但是有时候也可能是页面问题)
接下来在server3上配置nginx服务
[root@server3 ~]# ls获取软件包
nginx-1.18.0.tar.gz
[root@server3 ~]# tar zxf nginx-1.18.0.tar.gz 解压
[root@server3 ~]# ls
nginx-1.18.0 nginx-1.18.0.tar.gz
[root@server3 ~]# cd nginx-1.18.0/
[root@server3 nginx-1.18.0]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
[root@server3 nginx-1.18.0]# yum install -y gcc pcre-devel zlib-devel安装所需插件
[root@server3 nginx-1.18.0]# vim auto/cc/gcc
[root@server3 nginx-1.18.0]# ./configure --help | grep status
--with-http_stub_status_module enable ngx_http_stub_status_module
[root@server3 nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
修改nginx配置文件,向nginx配置文件中添加用于网页状态的查看检测的模块,以及开启nginx服务。
[root@server3 nginx]# vim /usr/local/nginx/conf/nginx.conf
location /status {
stub_status on; 开启该模块
access_log off; 关闭日志记录
allow 127.0.0.1; 白名单 只允许本机访问
deny all;
}
[root@server3 nginx]# sbin/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@server3 nginx]# sbin/nginx 启动
本机(server3)测试nginx服务是否部署成功
[root@server3 nginx]# curl http://127.0.0.1/status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
Active connections 活跃的连接数
accepts 接收到的请求数(不一定回复)
handled 确定建立三次握手的请求数
requests 处理的请求数
自定义配置监控项
获取活跃的连接数
修改server3的配置文件/etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
,创建nginx的监控项
获取活跃的连接数的数值
[root@server3 ~]# curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
1
[root@server3 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@server3 zabbix_agentd.d]# ls
userparameter_mysql.conf
将mysql服务的监控模版给nginx服务复制一份
[root@server3 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# ls
userparameter_mysql.conf userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# cat userparameter_nginx.conf
获取活跃连接数,nginx.active为健值,获得的连接数为value值
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent.service 重启服务
server1上
[root@server1 4.4]# yum install -y zabbix-get-4.4.1-1.el7.x86_64.rpm
[root@server1 4.4]# zabbix_get -s 172.25.254.3 -p 10050 -k "nginx.active"
1
zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key 是否能正常获取到数据
在测试自定义监控的时候特别有用
在server1下载软件zabbix-get,来获取server3的活跃连接数
在web界面添加nginx的监控
创建图形,将已经添加的监控项导入
修改字体(上图可以看出字体有错误)
【此处未成功末尾有详细说明】
主要原因在于上传文件的权限
一定要修改文件权限否则图形界面会没有显示
[root@server1 zabbix]# find / -name fonts
/boot/grub2/fonts
/etc/fonts
/usr/share/fonts
/usr/share/zabbix/assets/fonts
[root@server1 zabbix]# cd /usr/share/zabbix/assets/
上传下载好的楷体字体
[root@client Desktop]# scp simkai.ttf server1:/usr/share/zabbix/assets/fonts
root@server1's password:
simkai.ttf 100% 4039KB 19.5MB/s 00:00
将graphfont替换为simkai
[root@server1 fonts]# pwd
/usr/share/zabbix/assets/fonts
[root@server1 fonts]# ls
graphfont.ttf simkai.ttf
[root@server1 fonts]# cd ..
[root@server1 assets]# cd ..
[root@server1 zabbix]# cd include/
[root@server1 include]# vim defines.inc.php 编辑文件
%s/graphfont/simkai/g #将graphfont替换为simkai(全文有两处)
新添加监控项
在server3编辑nginx的监控文件userparameter_nginx.conf,将要获取的健值对加入
[root@server3 ~]# cd /etc/zabbix/zabbix_agentd.d/
[root@server3 zabbix_agentd.d]# ls
userparameter_mysql.conf userparameter_nginx.conf
[root@server3 zabbix_agentd.d]# curl -s http://127.0.0.1/status
Active connections: 1
server accepts handled requests
573 573 573
Reading: 0 Writing: 1 Waiting: 0
[root@server3 zabbix_agentd.d]# curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}' 获取接收到的请求数(accept)
581
[root@server3 zabbix_agentd.d]# vim userparameter_nginx.conf 编辑配置文件
[root@server3 zabbix_agentd.d]# cat userparameter_nginx.conf
UserParameter=nginx.active,curl -s http://127.0.0.1/status | grep Active | awk '{print $3}'
UserParameter=nginx.accept,curl -s http://127.0.0.1/status | awk NR==3 | awk '{print $1}'
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent.service
在server1执行命令获取接受的请求数
[root@server1 ~]# zabbix_get -s 172.25.254.3 -p 10050 -k "nginx.accept"
599
web界面添加新的监控项
与之前操作一致
创建图形,将已经添加的监控项导入
【选择同一个图形】
给server3做一个压力测试
在客户端访问
[root@client ~]# ab -c 1 -n 1000 http://172.25.254.3/index.html 主机测试
[root@server3 zabbix_agentd.d]# curl -s http://127.0.0.1/status 在server3上看
Active connections: 1
server accepts handled requests
1740 1740 1740
Reading: 0 Writing: 1 Waiting: 0
字体乱码已经解决
注意文件权限