5.22/5.23 zabbix监控nginx
- 修改客户机nginx虚拟主机配置文件default.conf
[root@rice02 ~]# vi /etc/nginx/conf.d/default.conf
// 在客户机nginx的默认虚拟主机配置文件里增加以下配置
location /nginx_status
{
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
[root@rice02 ~]# nginx -s reload
[root@rice02 ~]# curl 127.0.0.1/nginx_status
Active connections: 1
server accepts handled requests
1 1 1
Reading: 0 Writing: 1 Waiting: 0
说明:
字段 | 含义 |
---|---|
Active Connections | 当前活动连接数,其中也包括了等待状态的连接 |
accepts | 接收到的连接数 |
handled | 已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了 |
requests | 总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大 |
Reading | 正在读取请求头信息的连接数 |
Writing | 正在发送响应报文的连接数 |
Waiting | 处于闲置状态,等待客户端发送请求的连接数 |
- 编写监控脚本ngx_status.sh
[root@rice02 ~]# cd /usr/sbin/
[root@rice02 sbin]# vi ngx_status.sh
// 编写监控脚本
#!/bin/bash
url="http://127.0.0.1/nginx_status"
curl=/usr/bin/curl
# 检测nginx进程是否存在
function ping {
/sbin/pidof nginx | wc -l
}
# 检测nginx性能
function active {
$curl $url 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
$curl $url 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
$curl $url 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
$curl $url 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
$curl $url 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
$curl $url 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
$curl $url 2>/dev/null| awk NR==3 | awk '{print $3}'
}
$1
[root@rice02 sbin]# chmod 755 ngx_status.sh
- 修改客户机zabbix-agent的配置文件
[root@rice02 ~]# vi /etc/zabbix/zabbix_agentd.conf
// 编辑配置文件,找到“UserParameter=”,在下面增加以下内容
UserParameter=nginx.status[*],/usr/sbin/ngx_status.sh $1
[root@rice02 ~]# systemctl restart zabbix-agent
- 测试监控脚本是否正常
在zabbix服务端上执行zabbix_get -s 192.168.142.132 -k 'nginx.status[accepts]'
,看看是否有返回数值,accepts也可以替换为ping、writing、handled等字段。 - 在zabbix Web中监控nginx
在浏览器中打开zabbix Web界面,进入Configuration下的Templates,点击Import,导入准备好的Nginx监控模板(zbx_export_templates.xml 提取码:uw2x),点击Add完成添加。
进入Configuration下的Hosts,打开客户机riceyoung02的Templates,添加Nginx监控模板的链接。
5.24 zabbix监控tomcat
[root@rice01 ~]# yum install -y zabbix-java-gateway
[root@rice01 ~]# vi /etc/zabbix/zabbix_java_gateway.conf
// 定义LISTEN_IP="0.0.0.0"、LISTEN_PORT=10052、START_POLLERS=5
[root@rice01 ~]# vi /etc/zabbix/zabbix_server.conf
// 定义JavaGateway=127.0.0.1、JavaGatewayPort=10052、StartJavaPollers=5
[root@rice01 ~]# systemctl start zabbix-java-gateway
[root@rice01 ~]# systemctl restart zabbix-server
[root@rice01 ~]# vi /usr/local/tomcat/bin/catalina.sh
// 在#!/bin/sh下增加以下配置
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.142.131 // 定义java服务器的IP
-Dcom.sun.management.jmxremote.port=9999 // 定义Java服务器的端口
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
[root@rice01 ~]# alias tomcat-start='/usr/local/tomcat/bin/startup.sh'
[root@rice01 ~]# alias tomcat-stop='/usr/local/tomcat/bin/shutdown.sh'
[root@rice01 ~]# tomcat-stop
[root@rice01 ~]# tomcat-start
完成以上配置后,打开zabbix Web界面,进入配置主机界面,点击Create host,定义主机名为riceyoung01_tomcat、群组为Linux servers,然后移除Agent interfaces内的设置,添加JMX interfaces的设置,定义IP为127.0.0.1、端口为9999。进入主机的模板配置,链接Template App Apache Tomcat JMX和Template App Generic Java JMX两个模板,完成Tomcat的监控。
5.25 zabbix监控mysql
[root@rice01 ~]# mysql -uroot -p111111
// 授权一个监控用户mon,密码111111
MariaDB [(none)]> grant usage, process, replication client on *.* to 'mon'@'localhost' identified by '111111';
[root@rice01 ~]# mkdir /var/lib/zabbix/
[root@rice01 ~]# vi /var/lib/zabbix/.my.cnf
// 创建目录后,生成一个隐藏文件,并写入以下配置
[mysql]
host=localhost
user=mon
password='111111'
socket=/tmp/mysql.sock
[mysqladmin]
host=localhost
user=mon
password='111111'
socket=/tmp/mysql.sock
[root@rice01 ~]# ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/
// 让mysqladmin命令生效,然后执行以下命令测试是否能抓取到数据
[root@rice01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping
1
[root@rice01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.version
mysql Ver 15.1 Distrib 5.5.63-MariaDB, for Linux (x86_64) using readline 5.1
[root@rice01 ~]# zabbix_get -s 127.0.0.1 -p 10050 -k mysql.size
73728
完成以上配置后,打开zabbix Web界面,进入配置主机界面并创建新主机,定义主机名为riceyoung01_mysql,群组为Linux servers,定义Agent interfaces的IP和端口,进入模板项,链接Template DB MySQL模板,完成Mysql的监控。