Zabbix监控Nginx
- 首先在一台主机安装Nginx
[root@server3 nginx-1.15.8]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module #编译nginx的可监控模块
[root@server3 nginx-1.15.8]# make && make install
- 编辑配置文件:nginx.conf
location /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
- 我们可以通过curl命令来获取相关参数
[root@server3 nginx]# curl -s http://localhost/status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
accepts:允许多少次请求数
handled:多少次TCP握手
requests:可以处理请求
得到这些数据后我们就可以通过shell命令去获取指定的参数,从而去创建监控项。例如:
[root@server3 nginx]# curl -s http://localhost/status | grep Active | awk '{print $3}'
1 actice
[root@server3 nginx]# curl -s http://localhost/status |awk NR==3 | awk '{print $1}'
4 accept
[root@server3 nginx]# curl -s http://localhost/status | awk NR==3 | awk '{print $3}'
5 requests
-
在zabbix-server端安装zabbix-get
[root@server1 include]# yum install zabbix-get -y
-
agent端编写相关配置:
[root@server1 zabbix]# cd zabbix_agentd.d/
[root@server1 zabbix_agentd.d]# ls
userparameter_mysql.conf
[root@server1 zabbix_agentd.d]# cp userparameter_mysql.conf userparameter_nginx.conf
##编辑一个nginx
[root@server1 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}'
UserParameter=nginx.request,curl -s http://localhost/status | awk NR==3 | awk '{print $3}'
zabbix-server将会采集配置文件处理的信息,并通过web页面来展示出来
- server可以获取到nginx数据,表明采集成功,下面就是web页面配置
[root@server1 zabbix_agentd.d]# zabbix_get -s 172.25.254.3 -p 10050 -k "nginx.active" 1
- 选择nginx主机,创建监控项,这里的键值一定要与配置文件中的一致
点击图形,创建图形,添加新监控项
测试:通过ab压测工具去多次测试
[root@foundation55 sbin]# ab -c1 -n2000 http://172.25.254.3/status
zabbix-server已经采集到数据,并且我们可以发现,当连接10个并发,20000次请求时,nginx依然没有出现失败请求,nginx性能还是相当好的
Zabbix监控java应用,以tomcat为例
- zabbix-agent主机安装jdk,tomcat
[root@server2 ~]# tar zxf apache-tomcat-8.5.24.tar.gz -C /usr/local/
[root@server2 ~]# rpm -ivh jdk-8u121-linux-x64.rpm
- 编辑tomcat的配置脚本
[root@server2 bin]# vim catalina.sh
CATALINA_OPTS='-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8888
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false'
- 启动toncat
[root@server2 bin]# ./startup.sh
- zabbix-server安装java-gateway
[root@server1 zabbix_agentd.d]# yum install zabbix-java-gateway -y
[root@server1 zabbix]# systemctl start zabbix-java-gateway
- 修改zabbix-server.conf
JavaGateway=172.25.254.1
JavaGatewayPort=10052
StrtJavaPollers=5
- 重启服务,在server2添加JMX接口
添加模板:
主机server2已经打开JMX
Zabbix监控MySQL
Zabbix自带的监控模板中其实是带有监控项的,但是可以监控的内容是在过于太少,只有14个,所以接下来,我们通过percona模板实现对mysql数据库的监控
- 需要自己去下载percona-zabbix-templates-1.1.8-1.noarch.rpm安装包
[root@server1 ~]# rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
warning: percona-zabbix-templates-1.1.8-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:percona-zabbix-templates-1.1.8-1 ################################# [100%]
Scripts are installed to /var/lib/zabbix/percona/scripts
Templates are installed to /var/lib/zabbix/percona/templates
- 将模板放到zabbix配置文件目录下
[root@server1 templates]# ls
userparameter_percona_mysql.conf
zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
[root@server1 templates]# cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
- 添加数据库配置文件
[root@server1 zabbix]# pwd
/var/lib/zabbix
[root@server1 zabbix]# vim .my.cnf
[mysql]
user = zabbix
password = ql202897..
socket = /var/lib/mysql/mysql.sock
[mysqladmin]
user = zabbix
password = ql20897..
socket = /var/lib/mysql/mysql.sock
- 修改php脚本
[root@server1 scripts]# vim ss_get_mysql_stats.php.cnf
<?php
$mysql_user = 'root';
$mysql_pass = 'ql202897..';
~
测试:没有报错
[root@server1 scripts]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg
19
-
导入模板,选择聚合图形
-
server主机添加导入的模板
此时发现监控项已经279个,比以前多了177个