zabbix-监控应用程序(Mysql、Nginx)

  • 基础环境:zabbix服务端、两台zabbix被监控端、分别安装Mysql和Nginx

  • 环境拓扑图:

  • 实验目标:可以通过zabbix监控到被监控端上安装的mysql与nginx,通过zabbix实时检测mysql和nginx的数据。

  • 实验步骤:

  • 1.在8.7服务器上安装Mysql和zabbix-agent:

    • 将文件夹拖拽至8.7服务器上(需要软件可以私信博主)
    • 进入文件夹:cd mysql5.6-rpm/
    • yum -y localinstall *.rpm(开始安装)
    • 启动mysql:systemctl start mysqld
    • 修改密码:mysqladmin -uroot -p password
    • 安装agent修改配置文件:

      • vim /etc/zabbix/zabbix_agentd.conf
      • 启动anentd
  • 2.安装php动态程序识别mysql

    • yum install php php-mysql -y
  • 3.下载使用percona的模版(里面提供mysql的监控项)

    • rpm -ivh percona-zabbix-templates-1.1.8-1.noarch.rpm
    • 安装之后会提供两个目录,一个是脚本目录,一个是模板目录
    • 其中脚本目录里有2个脚本,用来获取数据库信息
  • 4.进入到脚本目录中修改数据库登录信息:

    • cd /var/lib/zabbix/percona/scripts/
    • vim get_mysql_stats_wrapper.sh

      • 修改第19行,添加mysql账号和密码
    • 修改第二个脚本:

      • vim ss_get_mysql_stats.php
      • 修改第30,31行
    • 5.复制自定义监控项配置文件到zabbix目录

      • cd /var/lib/zabbix/percona/templates/
      • cp userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
    • 6.重启agent:systemctl restart zabbix-agent
    • 7.查看mysql所有的监控项(导入的190个监控项):zabbix-agent -p
    • 8.测试监控项是否有数据:

      • 在监控端上测试(8.5):zabbix_get -s 192.168.8.7 -k MySQL.table-cache
      • 存在数据代表,被监控端上的Mysql可以被监控
    • 9.在zabbix的web界面上将模版导入(通过web界面来监控关于mysql的190个监控项)

      • 将提前准备好的模版导入进入(需要模版文件的可以私信小编)
      • 将聚合图形勾选上之后点击导入,模版就导入完毕了
    • 10.主机连接模版
      • 添加主机:

        • 最后将主机添加上去即可。
        • 查看190个监控项的数据:
        • 至此zabbix监控Mysql就完成了
    • 11.接下来配置8.6主机,安装nginx,监控nginx

      • 首先安装zabbix-agent

        • 修改配置文件,将Server指向192.168.8.5
        • vim /etc/zabbix/zabbix_agentd.conf
      • 安装nginx,可以使用yum安装也可以拖包本地安装:

        • yum -y install nginx
        • 修改nginx默认配置文件,将状态检测模块配置加入
        • vim /etc/nginx/conf.d/default.conf

          • 定位到11行下,添加:
          • location /nginx_status {
          • stub_status on;
          • access_log off;
          • }
      • 重启nginx:systemctl restart nginx
      • 本机上测试是否可以看到检测出的数据(也可以通过浏览器查看)
    • 12.编辑nginx状态检测的脚本:

      • cd /etc/zabbix/zabbix_agentd.d(存放监控项的目录)
      • vim nginx_monitor.sh

        • #!/bin/bash
        • NGINX_COMMAND=$1
        • CACHEFILE="/tmp/nginx_status.txt"
        • if [ ! -f $CACHEFILE ];then
        • CMD \>CACHEFILE 2>/dev/null
        • fi
        • Check and run the script

        • TIMEFLM=`stat -c %Y $CACHEFILE`
        • TIMENOW=`date +%s`
        • if [ `expr TIMENOW - TIMEFLM` -gt 60 ]; then
        • rm -f $CACHEFILE
        • fi
        • if [ ! -f $CACHEFILE ];then
        • CMD \>CACHEFILE 2>/dev/null
        • fi
        • nginx_active(){
        • grep 'Active' CACHEFILE\| awk '{print NF}'
        • exit 0;
        • }
        • nginx_reading(){
        • grep 'Reading' CACHEFILE\| awk '{print 2}'
        • exit 0;
        • }
        • nginx_writing(){
        • grep 'Writing' CACHEFILE \| awk '{print 4}'
        • exit 0;
        • }
        • nginx_waiting(){
        • grep 'Waiting' CACHEFILE\| awk '{print 6}'
        • exit 0;
        • }
        • nginx_accepts(){
        • awk NR==3 CACHEFILE\| awk '{print 1}'
        • exit 0;
        • }
        • nginx_handled(){
        • awk NR==3 CACHEFILE\| awk '{print 2}'
        • exit 0;
        • }
        • nginx_requests(){
        • awk NR==3 CACHEFILE\| awk '{print 3}'
        • exit 0;
        • }
        • case $NGINX_COMMAND in
        • active)
        • nginx_active;
        • ;;
        • reading)
        • nginx_reading;
        • ;;
        • writing)
        • nginx_writing;
        • ;;
        • waiting)
        • nginx_waiting;
        • ;;
        • accepts)
        • nginx_accepts;
        • ;;
        • handled)
        • nginx_handled;
        • ;;
        • requests)
        • nginx_requests;
        • ;;
        • *)
        • echo 'Invalid credentials';
        • exit 2;
        • esac
      • 赋予执行权:chmod +x nginx_monitor.sh
    • 13.编写zabbix监控配置文件(编写监控项,在监控项中引用脚本):

      • vim /etc/zabbix/zabbix_agentd.d/nginx_status.conf
        • UserParameter=nginx_status[*],/bin/bash /etc/zabbix/zabbix_agentd.d/nginx_monitor.sh $1
      • 重启zabbix-agent:systemctl restart zabbix-agent.service
    • 14.测试是否可以取到nginx监控项的值:
      • 在监控端上使用zabbix_get取值:zabbix_get -s 192.168.8.6 -k nginx_status [accepts]
    • 15.通过web界面可以监控zabbix:

      • 导入模版(与上方检测mysql导入模版步骤一致,只不过模版文件不一致)
      • 需要模版文件可以私信小编
      • 链接模板:

        • 添加主机、在主机模版中选择nginx模版
    • 16.查看数据:
    • 至此使用zabbix监控应用程序MYsql和Nginx就完成了,感谢观看!!!
相关推荐
慕木兮人可7 小时前
Docker部署MySQL镜像
spring boot·后端·mysql·docker·ecs服务器
{⌐■_■}7 小时前
【Kafka】登录日志处理的三次阶梯式优化实践:从同步写入到Kafka多分区批处理
数据库·分布式·mysql·kafka·go
kfepiza9 小时前
Debian10安装Mysql5.7.44 笔记250707
笔记·mysql·debian
armcsdn10 小时前
基于Docker Compose部署Traccar容器与主机MySQL的完整指南
mysql·docker·容器
袋鼠云数栈11 小时前
使用自然语言体验对话式MySQL数据库运维
大数据·运维·数据库·后端·mysql·ai·数据治理·数栈·data+ai
渣渣盟12 小时前
掌握MySQL函数:高效数据处理指南
sql·mysql·adb·dba
铅笔侠_小龙虾12 小时前
Docker 实战 -- Mysql
mysql·docker·容器
Britz_Kevin13 小时前
从零开始的云计算生活——番外2,MySQL组复制
数据库·mysql·云计算·生活·#组复制
工藤学编程13 小时前
分库分表之实战-sharding-JDBC绑定表配置实战
数据库·分布式·后端·sql·mysql
一只fish14 小时前
MySQL 8.0 OCP 1Z0-908 题目解析(23)
数据库·mysql