使用centos7搭建appache服务器和nginx服务器
一、配置psa加密
在受监控的服务器上,安装zabbix-agent,配置之前注意关闭selinux和防火墙
yum install openssl #安装openssl模块,配置加密 rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #下载zabbix-agent rpm包 yum install zabbix-agent #安装zabbix-agent
使用openssl生成psk文件
openssl rand -hex 32
然后新建/etc/zabbix/zabbix-agentd.conf.d/zabbix_agentd.psk
将生成的psk保存,如下所示:
修改/etc/zabbix/zabbix-agentd.conf,取消注释编辑
333行:TLSConnect=psk
345行,TLSAccept=psk
396行,TLSPSKIdentity=PSK 001
404行, TLSPSKFile=/etc/zabbix/zabbix_agentd.d/zabbix_agentd.psk
完成配置后,再去配置server等信息,配置为zabbix主机的地址,我这里使用域名方式
完成后重启,zabbix-agent
systemctl enable zabbix-agent systemctl restart zabbix-agent
然后再zabbix服务器上进行加密的进行配置
配置完成后可以看到加密图标亮起
检查zabbix-agent日志,标明加密配置正常
tail /var/log/zabbix/zabbix_agentd.log
二、监控apache服务器
开启apache状态页
要监控apache的状态,首先开启状态页面,然后调用合适的脚本来监控状态页
再apache的主配置文件,httpd.conf中加入如下代码
ExtendedStatus ONSetHandler server-status Deny from all Allow from all Allow from 127.0.0.1 172.31.208.0/24 #标明可以访问的地址段和主机
配置完成后,重启httpd服务,然后在浏览器中输入http://ip/server-status 即可
下载监控模板
监控模板下载地址为:
https://www.ixdba.net/zabbix/zabbix-apache.zip
里面包含两个文件,一个是监控脚本zapache,另外一个是模板文件zapache-template
将模板文件zapache-template导入到zabbix中
将脚本文件zapache放在apache服务器的/etc/zabbix/shell目录下(目录位置可以随意设定)
赋予执行权限
chmond 775 /etc/zabbix/shell/zapache
然后再/etc/zabbix/zabbix_agentd.d目录下新建userparameter_zapache.conf文件,文件内容如下:
UserParameter=zapache[*],/etc/zabbix/shell/zapache $1
保存后即可
然后修改zabbix-agent.conf的配置文件
vim /etc/zabbix/zabbix_agentd.conf
修改276-287行,添加 UnsafeUserParameters=1即可
保存配置文件,然后重启zabbix-agent服务
最后再zabbix服务器上,套用模板即可
完成监控后图形如下所示:
三、监控nginx
监控基本思路和监控apache一致,即开启状态页,然后配置模板脚本
在nginx主配置文件nginx.conf中添加如下(监控哪个虚拟主机就哪里配置)
location /nginx-status { stub_status on; access_log off; allow 127.0.0.1; allow 172.31.208.0/24; deny all; }
检查nginx语法后,重启nginxi服务器。
然后输入网页http://www.servername/nginx-status/
下载模板和脚本
https://www.ixdba.net/search/zabbix-nginx.zip
导入模板
脚本内容如下
#!/bin/bash # Set Variables HOST=127.0.0.1 PORT="80" if [ $# -eq "0" ];then echo "Usage:$0(active|reading|writing|waiting|accepts|handled|requests|ping)" fi # Functions to return nginx stats function active { /usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Active' | awk '{print $NF}' } function reading { /usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Reading' | awk '{print $2}' } function writing { /usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Writing' | awk '{print $4}' } function waiting { /usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Waiting' | awk '{print $6}' } function accepts { /usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $1}' } function handled { /usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $2}' } function requests { /usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $3}' } function ping { /sbin/pidof nginx | wc -l } # Run the requested function $1
如果监控其他主机和端口,修改HOST和PORT变量即可
将脚本保存在/etc/zabbix/zabbix-agentd.d/shell/目录下,同时授予执行权限
chmod +x /etc/zabbix/zabbix_agentd.d/shell/nginx_status.sh chown zabbix:zabbix /etc/zabbix/zabbix_agentd.d/shell/nginx_status.sh
然后 在/etc/zabbix/zabbix-agentd.d/下新建userparameter_nginx.conf文件,内容如下
UserParameter=nginx.status[*],/etc/zabbix/zabbix-agentd.d/shell/nginx_status.sh $1
然后编辑zabbix-agent.conf,修改UnsafeUserParameters=1
重启zabbix-agent
最后套用模板,查看zabbix服务上对nginx的监控
此时,可以发现获取到了监控图形