zabbix监控Nginx
- 在ady02上安装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 #增加 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 处于闲置状态,等待客户端发送请求的连接数 - 编写监控脚本
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
- 重启服务
systemctl restart zabbix-agent
- zabbix_get 测试
在服务端执行 zabbix_get -s 192.168.139.129 -k 'nginx.status[accepts]'
- 导入nginx模板(web)
下载模板 https://github.com/aminglinux/linux2019/blob/master/zabbix_nginx_template/zbx_export_templates.xml Configuration -> Templates -> 右上角Import
- 链接模板(web)
Configuration -> Hosts -> aminglinux02 -> Templates -> Select -> Add -> Update
zabbix监控tomcat
- 监控流程:
1)安装zabbix_java_gateway 2)配置zabbix_java_gateway配置文件和zabbix_server配置文件,指定监听端口,启动进程数 3)编辑Tomcat配置文件,开启JMX 4)添加host,指定JMX interface 5)链接TOMCAT模板
- 安装zabbix_java_gateway
yum install -y zabbix-java-gateway
- 修改配置文件
vi /etc/zabbix/zabbix_java_gateway.conf 定义 LISTEN_PORT 和 START_POLLERS vi /etc/zabbix/zabbix_server.conf 定义 JavaGateway(127.0.0.1) 和 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.222.128 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false" 重启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
zabbix监控mysql
- 授权一个监控用户
> grant usage, process, replication client on *.* to 'mon'@'localhost' identified by 'x2ay9xodTvyM';
- 编辑配置文件
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='x2ay9xodTvyM' socket=/tmp/mysql.sock [mysqladmin] host=localhost user=mon password='x2ay9xodTvyM' 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