一、zabbix监控httpd服务
httpd是zabbix自带的监控模块
1、 在server2上安装apache,开启服务
[root@server2 zabbix]# yum install httpd -y
[root@server2 zabbix]# systemctl start httpd
[root@server2 zabbix]# systemctl enable httpd
- 1
- 2
- 3
2、然后在web界面上进行设置:
配置
—>主机
—> server2
—> 模板
—>选择
—> Template App HTTP Service
—> 添加
—>更新
点击server2的监控项可以看到http服务正在运行
可以看到server2主机的触发器多了一个httpd服务的触发器,是端口的触发器,zabbix是通过端口来检测httpd服务的
二、zabbix监控nginx
1、在监控主机server3上部署nginx服务,下载安装包并解压,安装依赖性软件并编译安装,注释掉debug日志。
root@server3 ~]# yum install gcc pcre-devel zlib-devel -y
[root@server3 ~]# tar zxf nginx-1.17.4.tar.gz
[root@server3 ~]# cd nginx-1.17.4
[root@server3 nginx-1.17.4]# ./configure --help | grep stub
--with-http_stub_status_module enable ngx_http_stub_status_module
[root@server3 nginx-1.17.4]# vim auto/cc/gcc
[root@server3 nginx-1.17.4]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module
[root@server3 nginx-1.17.4]# make && make install
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2、修改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 }
- 1
- 2
- 3
- 4
- 5
- 6
- 7
[root@server3 nginx-1.17.4]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
[root@server3 nginx-1.17.4]# nginx -t
[root@server3 nginx-1.17.4]# nginx
- 1
- 2
- 3
- 4
3、在server3本机curl 127.0.0.1/status
来测试nginx服务是否部署成功
Active connections | 活跃的连接数 |
---|---|
accepts | 接收到的请求数(不一定回复) |
handled | 确定建立三次握手的请求数 |
requests | 处理的请求数 |
curl -s http://localhost/status | grep Active | awk '{print $3}'
- 1
4、修改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服务复制一份
[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值
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent #修改完成重启服务。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
5、在web界面,server3添加nginx的监控
【选择server3主机】——>【创建监控项】
监控项名称可自定义,健值必须和server3配置文件中的一致
此时,在监控项可以看到所添加的。
创建图形,将已经添加的监控项导入
此时,我们查看监控图形
此时,我们会发现乱码情况。
web界面字体的调整
[root@server1 ~]# cd /usr/share/zabbix/fonts/
[root@server1 fonts]# ls
graphfont.ttf simkai.ttf
[root@server1 fonts]# cd ..
[root@server1 zabbix]# cd include/
[root@server1 include]# vim defines.inc.php
:%s/graphfont/simkai/g #将graphfont替换为simkai
- 1
- 2
- 3
- 4
- 5
- 6
- 7
此时,刷新web页面,就发现没有乱码了。
zabbix_get 是 zabbix 服务端的一个命令,用于检测 agent 端的配置是否正确,可以很方便地知道 key 是否能正常获取到数据,在测试自定义监控的时候特别有用
在server1下载软件zabbix-get,来获取server3的活跃连接数
[root@server1 include]# yum install zabbix-get -y
[root@server1 include]# zabbix_get -s 172.25.2.3 -p 10050 -k "nginx.active"
- 1
- 2
添加新的监控项nginx.accept
编辑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 NR==3 |awk '{print $1}'
[root@server3 zabbix_agentd.d]# systemctl restart zabbix-agent
- 1
- 2
- 3
- 4
创建监控项
将新建的监控项添加到原来的nginx_active的图形中,将三个监控项放在同一个坐标图形里面可以对比
添加成功,点击更新之后查看图形
为了图形界面的效果显示的更加明显,我们通过server3自己进行压力测试,自己访问自己
我们同样过程,再添加一项: