使用ZABBIX监控web
服务器
实验拓扑图:
实验思路:
nginx添加状态统计模块,编写nginx对应的状态统计脚本。
zabbix-server
导入nginx模板,并对主机实现监控。
实验环境
角色
IP地址
操作系统版本
软件包
Zabbix_server
192.168.0.158/24
Centos
6.5_X86_64
Zabbix3.0.4
Zabbix_agentd(nginx)
192.168.0.125/24
Centos
6.5_X86_64
Zabbix3.0.4
nginx1.11
实验效果:
实验步骤如下
一.安装部署zabbix_server
(参考lamp+zabbix3.0.4 脚本一键安装即可)
二.zabbix-agentd端的配置
1.创建运行账号
[root@centos6 ~]# useradd zabbix -s
/sbin/nologin
2.安装依赖
[root@centos6 ~]# yum -y install gcc curl
上传软件包
3.编译安装agent
[root@centos6 ~]# tar zxf zabbix-3.0.4.tar.gz -C
/usr/src/
[root@centos6 ~]# cd
/usr/src/zabbix-3.0.4/
[root@centos6
zabbix-3.0.4]# ./configure --prefix=/usr/local/zabbix
--enable-agent
[root@centos6
zabbix-3.0.4]# make -j 4
[root@centos6
zabbix-3.0.4]# make install
4.配置客户端
[root@centos6 ~]# vim
/usr/local/zabbix/etc/zabbix_agentd.conf
Server=192.168.0.158 #被动模式,允许哪台zabbix服务器连接,如有DNS解析可填主机名
ServerActive=192.168.0.158 #主动模式,允许向哪台zabbix服务器上报,如有DNS解析可填主机名
Hostname=192.168.0.125 #客户端本机IP,如有DNS解析可填主机名
UnsafeUserParameters=1 #允许用户自定义参数
EnableRemoteCommands=1 #允许执行远程命令
5.创建init服务
[root@centos6
~]#
cp
/usr/src/zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd
/etc/init.d/
[root@centos6 ~]# ll
/etc/init.d/zabbix_agentd
-rwxr-xr-x.
1 root root 2170 Oct 7 22:10
/etc/init.d/zabbix_agentd
[root@centos6 ~]#
chkconfig zabbix_agentd on
[root@centos6 ~]# service
zabbix_agentd start
Starting
zabbix_agentd: /etc/init.d/functions: line 546:
/usr/local/sbin/zabbix_agentd: No such file or
directory
[FAILED]
[root@centos6 ~]# vim
/etc/init.d/zabbix_agentd
[root@centos6 ~]# service
zabbix_agentd start
关闭selinux
和iptables
如果遇到没有数据的问题可能是mysql数据库的问题
可以尝试重新启动服务
三.客户端安装nginx服务器
在zabbix
agentd客户端上,查看nginx是否加载了--with-http_stub_status_module。因为zabbix监控nginx是根据nginx的Stub
Status模块,抓取Status模块所提供的数据。假如以前没开启,现在想启用StubStatus 模块,在编译nginx
的时候要加上参数 --with-http_stub_status_module,执行./configure &&
make就可以了,不用make install。不过,一般情况下都是安装了的。
[root@centos6 ~]# yum -y
install pcre-devel zlib-devel lrzsz
[root@centos6 ~]# useradd
-s /sbin/nologin nginx -M
[root@centos6 ~]# tail -1
/etc/passwd
[root@centos6 ~]# tar zxf
nginx-1.11.2.tar.gz -C /usr/src/
[root@centos6 ~]# cd
/usr/src/nginx-1.11.2/
[root@centos6
nginx-1.11.2]# ./configure --prefix=/usr/local/nginx --user=nginx
--group=nginx --with-http_stub_status_module
--with-http_ssl_module
[root@centos6
nginx-1.11.2]# make -j 4 && make
install
nginx服务器的配置
[root@centos6 ~]# ln -s
/usr/local/nginx/sbin/nginx /usr/sbin/
[root@centos6 ~]# 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@centos6 ~]#
nginx
配置nginx状态统计功能
在nginx的配置文件中,添加status配置。
location/nginx-status
{
stub_status on;
access_log off;
}
[root@centos6 ~]# nginx
-t
[root@centos6 ~]# nginx
-s reload
验证
参数解释:
Activeconnections:对后端发起的活动连接数;
server
accepts 4:nginx 总共处理了4个连接;
handled:成功创建了4次握手;
requests:总共处理了4请求。
Reading:nginx读取客户端的header数;
Writing:
nginx 返回给客户端的header数;
Waiting:
nginx 请求处理完成,正在等待下一请求指令的连接。
在agentd上编写监控nginx的脚本(参考nginx.txt文档)
并且设置属主和属组为zabbix,赋予执行权限。
[root@centos6 ~]# mkdir
-p /data/log/zabbix/
[root@centos6 ~]# touch
/data/log/zabbix/webstatus.log
[root@centos6 ~]# vim
/usr/local/zabbix/nginx-status.sh
[root@centos6 ~]# chmod
o+x /usr/local/zabbix/nginx-status.sh
[root@centos6 ~]# chown
zabbix:zabbix /usr/local/zabbix/nginx-status.sh
修改nginx服务器上zabbix客户端的zabbix_agentd.conf配置文件,然后重启zabbix
agentd客户端
[root@centos6
~]# vim
/usr/local/zabbix/etc/zabbix_agentd.conf
添加以下内容
UserParameter=nginx.accepts,/usr/local/zabbix/nginx_status.sh
accepts
UserParameter=nginx.handled,/usr/local/zabbix/nginx_status.sh
handled
UserParameter=nginx.requests,/usr/local/zabbix/nginx_status.sh
requests
UserParameter=nginx.connections.active,/usr/local/zabbix/nginx_status.sh
active
UserParameter=nginx.connections.reading,/usr/local/zabbix/nginx_status.sh
reading
UserParameter=nginx.connections.writing,/usr/local/zabbix/nginx_status.sh
writing
UserParameter=nginx.connections.waiting,/usr/local/zabbix/nginx_status.sh
waiting
[root@centos6 ~]# service
zabbix_agentd restart
在zabbix
server 端进行zabbix_get测试,取到数据了,说明没问题。
/usr/local/zabbix/bin/zabbix_get
-s 192.168.0.125 -p 10050 -k
"nginx.connections.active"
/usr/local/zabbix/bin/zabbix_get
-s 192.168.0.125 -p 10050 -k
"nginx.connections.waiting"
/usr/local/zabbix/bin/zabbix_get
-s 192.168.0.125 -p 10050 -k
"nginx.connections.writing"
/usr/local/zabbix/bin/zabbix_get
-s 192.168.0.125 -p 10050 -k "nginx.accepts"
/usr/local/zabbix/bin/zabbix_get
-s 192.168.0.125 -p 10050 -k "nginx.requests"
使用浏览器访问zabbix
导入模版(我的是xml文件)
(参考nginx-status.xml)
步骤:
configurationàTemplates
选择导入模版
上传nginx-status.xml文件(文件中的IP地址是这个环境中的没错,若切换IP则必须修改)
并导入
导入成功
选择模版
选择nginxstatus模版
添加关联主机 nginx
只是我的主机名
MonitoringàLatest data à选择nginx主机—》filter过滤
查看监控项的图形
以上就是关于监控nginx的实验
完成