目录
监控Nginx
监控Tomcat
监控MySQL/MariaDB
监控Nginx
在aminglinux02上安装Nginx
编辑yum仓库:
vi /etc/yum.repos.d/nginx.repo
粘贴:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
安装:
yum install -y nginx
配置Nginx状态信息
vi /etc/nginx/conf.d/default.conf #增加
listen 80 default_server;
location /nginx_status
{
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
测试
curl http://127.0.0.1/nginx_status
说明:
| 字段
|
含义
| |
Active Connections
|
当前活动连接数,其中也包括了等待状态的连接
| |
accepts
|
接收到的连接数
| |
handled
|
已经处理完的连接数,该数字一般和accepts一致,如果不一致那么说明Nginx出错了
| |
requests
|
总共处理的请求数,一个连接可以有多个请求,所以该值比accpets要大
| |
Reading
|
正在读取请求头信息的连接数
| |
Writing
|
正在发送响应报文的连接数
| |
Waiting
|
处于闲置状态,等待客户端发送请求的连接数
|
编写监控脚本
客户端上jerrylinux02
vi /usr/local/sbin/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
chmod 755 /usr/local/sbin/ngx_status.sh
编辑zabbix_agent.conf
vi /etc/zabbix/zabbix_agentd.conf # 增加
UserParameter=nginx.status[],/usr/local/sbin/ngx_status.sh $1 nginx.status 名字, [] 参数
重启服务
systemctl restart zabbix-agent
zabbix_get 测试 jerrylinux01
在服务端执行
zabbix_get -s 192.168.78.129 -k 'nginx.status[accepts]'
导入nginx模板
下载模板 https://github.com/aminglinux/linux2019/blob/master/zabbix_nginx_template/zbx_export_templates.xml
git clone https://github.com/aminglinux/linux2019.git
复制到桌面
Configuration -> Templates -> 右上角Import
choose file
链接模板
Configuration -> Hosts -> jerrylinux02 -> Templates -> Select -> Add -> Update
监控Tomcat
监控流程:
1)安装zabbix_java_gateway
2)配置zabbix_java_gateway配置文件和zabbix_server配置文件,指定监听端口,启动进程数
3)编辑Tomcat配置文件,开启JMX
4)添加host,指定JMX interface
5)链接TOMCAT模板
安装zabbix_java_gateway jerrylinux01
yum install -y zabbix-java-gateway
修改配置文件
vi /etc/zabbix/zabbix_java_gateway.conf
定义 LISTEN_PORT 和 START_POLLERS
0.0.0.0 全网
进程数
vi /etc/zabbix/zabbix_server.conf
定义 JavaGateway 和 JavaGatewayPort 和 StartJavaPollers
启动zabbix-java-gateway服务 systemctl start zabbix-java-gateway
重启zabbix-server服务 systemctl restart zabbix-server
开启JMX
vi /usr/local/tomcat/bin/catalina.sh #在#!/bin/sh下增加
export CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.78.128
-Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
为了开启JMX
重启tomcat
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
添加Host链接模板
Configuration -> Hosts -> Create host
Agent interfaces -> remove
JMX interfaces -> Add -> 192.168.222.128 9999
Templates -> Select -> Template App Apache Tomcat JMX -> select -> Add
Add
监控MySQL/MariaDB
授权一个监控用户
mysql -uroot -pjerry-linux
> grant usage, process, replication client on *.* to 'mon'@'localhost' identified by 'jerrylinux';
编辑配置文件
vi /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
mkdir /var/lib/zabbix
vi /var/lib/zabbix/.my.cnf #如下内容
[mysql]
host=localhost
user=mon
password='jerrylinux'
socket=/tmp/mysql.sock
[mysqladmin]
host=localhost
user=mon
password='jerrylinux'
socket=/tmp/mysql.sock
测试连接
重启zabbix-agent服务
systemctl restart zabbix-agent
测试
zabbix_get -s 127.0.0.1 -p 10050 -k mysql.ping
若提示:sh: mysqladmin: 未找到命令
需要: ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/
zabbix_get -s 127.0.0.1 -p 10050 -k mysql.version
zabbix_get -s 127.0.0.1 -p 10050 -k mysql.size
添加主机和模板
Configuration -> Hosts -> Create host
Agent interfaces -> 127.0.0.1 10050
Templates -> Select -> Template DB MySQL -> select -> Add
Add