目录
一、理论
1.Zabbix监控Nginx
二、实验
1.Zabbix监控Nginx部署
三、问题
1.重启zabbix客户端失败
2.zabbix服务端测试客户端nginx状态失败
3.nginx启动失败
4.权限不够
一、理论
1.Zabbix监控Nginx
(1)环境
zabbix服务端:192.168.204.214
zabbix客户端:192.168.204.215
(2)客户端安装nginx(yum方式)
#安装epel扩展源,然后安装nginx并启动
yum install epel-release -y
yum install nginx -y
systemctl start nginx
systemctl start nginx
#修改nginx主页内容,nginx01修改为nginx01 test,nginx02修改nginx02 test
echo nginx01 test >/usr/share/nginx/html/index.html
(3)编辑nginx子配置文件
#直接在nginx子配置文件夹中创建一个新的子配置文件,因为是yum安装无须在主配置文件中指定子配置文件
vim /etc/nginx/conf.d/upstream.conf
文件内容:
upstream nginxtest{
server 192.168.204.215:8080;
}
#反向代理模块,将2个tomcat的ip和端口号写入其中,反代模块名称为nginxtest
#server模块中的第一个location模块,指定了根为html,支持主页文件类型三个,注意分号结尾
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css)$ {
root /usr/share/nginx/html;
}
#server模块中第二个location模块,配置不区分大小写的任意开头只要以.()括号内的任意一个内容结尾则为静态资源访问/usr/share/nginx/html下的页面
location ~ .*\.jsp$ {
proxy_pass http://nginxtest;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
#server模块中第三个location模块,配置不区分大小写的任意开头只要.jsp结尾就由nginx反向代理模块nginxtest进行处理
在server{}中添加以下内容
ocation /nginx_status
{
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
(3)重载nginx配置
nginx -s reload
(4)测试
curl http://127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
nginx状态信息已显示
(5) 添加监控脚本
vim /usr/local/sbin/ngx_status.sh
添加权限
chmod 777 /usr/local/sbin/ngx_status.sh
(6)编辑zabbix_agent配置文件
vim zabbix_agent2.conf
在Option:UserParameter处添加:UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1
(7)选择模板
第一种方法:选择官方模板
配置-主机-模板-Template App NGINX
第二种方法:导入模板
在zabbix前端页面点击配置→模板→导入
导入刚才创建的xml文件即可 导入成功后在主机列表页面选择被监控的机器(客户端)链接该模板即可开始监控nginx
二、实验
1.Zabbix监控Nginx部署
(1)安装、编辑nginx子配置文件夹创建文件
依赖包
安装
直接在nginx子配置文件夹中创建一个新的子配置文件,因为是yum安装无须在主配置文件中指定子配置文件
在server{}中添加以下内容
(2)脚本
授权(应授权777)
(3)客户端测试nginx状态
(3)修改配置文件
(4)服务器端测试
(5)导入模板
选择官方模板
导入自定义模板
(3)访问网页
观察变化
三、问题
1.重启zabbix客户端失败
(1)报错
(2)原因分析
命令错误
(3)解决方法
用正确命令
[root@zbx-agent01 zabbix]# systemctl restart zabbix-agent2
[root@zbx-agent01 zabbix]# netstat -natp | grep zabbix
tcp6 0 0 :::10050 :::* LISTEN 4715/zabbix_agent2
2.zabbix服务端测试客户端nginx状态失败
(1)报错
(2)原因分析
zabbix server监听全网地址,agent监听内网地址
把zabbix_agentd.conf中 的server把zabbix_server的公网和内网地址都加行。然后agent就可以正常获取到值了;
修改客户端配置文件监听的主服务器地址,并取消反向代理
vim /etc/zabbix/zabbix_agent2.conf
zabbix服务器网页重新配置
3.nginx启动失败
(1)报错
(2)原因分析
检查
location模块放错位置
(3)解决方法
locaton块放在server块中
4.权限不够
(1)报错
(2)原因分析
未有效授权
(3)解决方法
增加权限
[root@zbx-agent01 tmp]# chmod 777 /usr/local/sbin/ngx_status.sh