1. 在[/usr/local/zabbix327/bin] 目录下新建python文件,并增加执行权限,如下:

    #!/usr/bin/env /usr/bin/python
    
    # _*_ coding:utf-8 _*_
    
    import subprocess
    import json
    import re
    import ConfigParser def main():
    # mysqld is started with mysqld_safe ,and with the configfile,or use 3306 port
    command = "ps -eo command |grep mysqld_safe|grep -v grep"
    process = subprocess.Popen(command, shell=True, stdin=subprocess.PIPE,
    stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    out, err = process.communicate() return_code = process.wait()
    if return_code != 0:
    print("error found!" + err)
    return all_mysqld = list(str(out).splitlines()) mysql_config_arg = "--defaults-file="
    mysql_socket_arg = "--socket="
    mysql_bin_reg = "\\s(.+)mysqld_safe\\s" list_mysql = [] for mysqld in all_mysqld:
    socket_file = None
    socket_port = None
    if mysql_config_arg in mysqld:
    for arg in list(mysqld.split()):
    if mysql_config_arg in arg:
    mysql_config_file = arg.replace(mysql_config_arg, "")
    cf = ConfigParser.ConfigParser(allow_no_value=True)
    cf.read(mysql_config_file)
    socket_file = cf.get("mysqld", "socket")
    socket_port = int(cf.get("mysqld", "port")) elif mysql_socket_arg in mysqld:
    for arg in list(mysqld.split()):
    if mysql_socket_arg in arg:
    socket_file = arg.replace(mysql_socket_arg, "").strip()
    # netstat -tulpn | grep `cat /var/run/mysqld/mysqld.pid` |grep -P ':(\d{3,6})(?=\s)' -o | awk 'BEGIN {FS=":"}; {print $2}'
    socket_port = 3306 bin_path = str(re.compile(mysql_bin_reg).findall(mysqld)[0]).strip() list_mysql.append({'{#BIN_PATH}': bin_path, '{#SOCKET_PATH}': socket_file, '{#PORT}': socket_port}) print json.dumps({'data': list_mysql}) if __name__ == '__main__':
    main()
  2. copy get_mysql_stats_wrapper.sh mysql_innodb_trx_status.sh ss_get_mysql_stats.php 到 /usr/local/zabbix327/bin 目录下,增加可执行权限.

    # chmod +x get_mysql_stats_wrapper.sh

  3. 安装php 环境

    # yum install php php-mysql

  4. 确定php 解释引擎的位置,一般在/usr/bin/php ,如果未能发现,可通过 which php 或 find 命令来查找。

  5. 如果php解释引擎未在 /usr/bin/php,则需要修改 get_mysql_stats_wrapper.sh 文件中的php解释引擎的位置

    CMD="/usr/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg"

  6. copy userparameter_percona_mysql.conf、userparameter_mysql.conf 到 zabbix_agentd.conf.d,并在zabbix_aentd.conf 中include文件(注意userparameter_percona_mysql.conf文件中脚本路径,需要根据实际情况修改)

  7. 导入模板

  8. host link template 模板,测试。

备注

  1. 本例对 原percona MySQL Server Template 中监控的指标进行了删减(根据DBA的需求),如果需要其他指标,请参考userparameter_percona_mysql.conf文件中的监控项以及模板中现有的监控项,在模板中新增 Item prototypes .

  2. 增加了slave的 Last_Errno 的监控(修改了php文件)

Mysql 监控 支持 mysql 多实例自动发现以及主从监控的更多相关文章

  1. zabbix 添加自动发现端口并监控

    最近在部署zabbix监控  有些服务器上开启的服务端口非常多  如果一个个添加监控会很繁琐,于是想到了自动发现规则  自动发现服务器上的服务端口并进行监控. 在zabbix客户端服务器上进行操作 1 ...

  2. zabbix—自动发现端口并监控

    自动批量检查agent开放的端口 PS:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控:  如果服务器会随机出现端口且每次启动程序都会改变,可以采用第二种方法,来监控指定的端 ...

  3. zabbix 自动发现端口服务监控教程

    目录 创建数据表(收集haproxy服务的信息) 针对生成的数据表做监控 在haproxy服务机器上配置 在zabbix上添加监控 前言: 1.线上业务使用了几十上百台haproxy服务,需要针对这些 ...

  4. 分布式监控系统Zabbix3.2添加自动发现磁盘IO并注册监控

     zabbix并没有给我们提供这么一个模板来完成在Linux中磁盘IO的监控,所以我们需要自己来创建一个,在此还是在Linux OS中添加. 由于一台服务器中磁盘众多,如果只一两台可以手动添加,但服务 ...

  5. Zabbix实现自动发现端口并监控

    1.新建客户端需要的脚本 # vim discovertcpport.sh #!/bin/bash portarray=(`sudo netstat -tnlp|egrep -i "$1&q ...

  6. zabbix3.0自动发现磁盘并监控磁盘IO

    Zabbix 版本:3.0 操作系统:Ubuntu16.04 操作环境,在被监控的主机上安装zabbix agent.安装方式为源码包安装. 简要安装步骤: 参考:https://www.zabbix ...

  7. zabbix3.4.8配置自动发现主机并监控

    一.       自动发现功能简介 Zabbix服务器端通过网络或者主机名等方式进行客户端的扫描发现,从进行加入到监控的主机队列中,适用于批量加入多主机监控的场景. 二.       自动发现功能实施 ...

  8. 基于zabbix的Redis、Sentinel、Slave多实例自动发现监控

    约定 保证whereis redis-cli 能够正确返回redis-cli程序的路径 保证 redis的配置文件在模板宏{$REDIS_SERVER_CONFIG_PATH}的路径,并且后缀名 为. ...

  9. 分布式监控系统Zabbix--完整安装记录-批量添加主机和自动发现端口

    一.Zabbix-3.0.3批量添加主机的配置如下: 0)被监控机上要安装zabbix_agent,并配置好zabbix_agentd.conf (如下172.29.8.50是zabbix_serve ...

随机推荐

  1. IP、TCP和DNS与HTTP的密切关系

    看了上一篇博文的发表时间,是7月22日,现在是10月22日,已经有三个月没写博客了.这三个月里各种忙各种瞎折腾,发生了很多事情,也思考了很多问题.现在这段时间开始闲下来了,同时该思考的事情也思考清楚了 ...

  2. web到service简单原理例子

    这是目前的理解 附上服务端源码 package com.lsw.server; import java.io.*; import java.net.*; import java.util.HashMa ...

  3. NetworkX 使用(二)

    官方教程 博客:NetworkX %pylab inline import networkx as nx Populating the interactive namespace from numpy ...

  4. 【原创】MHA二次检测功能测试

    MHA提供了很多扩展的功能,其中有一个参数是secondary_check_script,这个参数可以使我们自定义扩展多路由,多链路的二次检测功能.减少网络故障切换,降低脑裂的发生. 在虚拟机上做了如 ...

  5. 批量ssh登录,获取操作系统、CPU、内存、硬盘信息<shell>

    说明:该脚本读取machine.txt文件中的机器名,然后批量ssh登录,获取每台机器的操作系统,CPU,内存,硬盘等信息. 使用方法:将文件保存为sh,chmod +x filename 为该sh文 ...

  6. awk 提取列

    awk '{OFS="";print(substr($0,1,6),substr($0,74,18),substr($0,15,3),substr($0,18,8))}' inpu ...

  7. Python下读取转换unicode的json格式

    转自: https://blog.csdn.net/felcon/article/details/38524317 JSON(JavaScript Object Notation) 是一种轻量级的数据 ...

  8. python中的递归问题,求圆周率

    以上面一个公式为例: import numpy as np def getPi(n): if n == 0: return np.power(-1,n)*(1.0/(2*n+1)) else: ret ...

  9. android manifest.xml 文件

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 清单文件 包括 包名 应用 各个组件  四大组件 使用到的权限 应用程序所需要的最低安卓 ...

  10. loj#2721. 「NOI2018」屠龙勇士

    题目链接 loj#2721. 「NOI2018」屠龙勇士 题解 首先可以列出线性方程组 方程组转化为在模p意义下的同余方程 因为不保证pp 互素,考虑扩展中国剩余定理合并 方程组是带系数的,我们要做的 ...