文档章节

zabbix自动发现监控mysql数据库

just_do_itit
 just_do_itit
发布于 2016/11/10 23:15
字数 691
阅读 1136
收藏 38
点赞 2
评论 3

跟zabbix自动发现监控mongo数据库的思路差不多,如果公司的mysql都是使用3306端口或者同一端口的话,可直接创建模板,链接到各个服务器即可。如果公司的mysql的比较多或者端口不一致,还是得自动发现并监控比较方便点,先看下效果图(主要还是实现增删改查的监控):

同样的,上述图也是通过zabbix的筛选功能汇在一起的。

 

具体的自动发现规则配置如下:

探索规则配置完后,同样的在zabbix agent端添加如下配置然后重启zabbix agentd。

UserParameter=mysql.discover,python /usr/local/zabbix/discover_mysql.py

 

其中/usr/local/zabbix/discover_mysql.py是用来自动发现端口的脚本,脚本内容如下:

#coding:utf-8
import json
import commands

(status, output) = commands.getstatusoutput('''sudo netstat -tlnp|grep 'mysqld'|awk '{print $4}'|awk -F':' '{print $(NF)}'|sort -u''')
if output:
        outputs = output.split('\n')
        ports = []
        for port in  outputs:
            ports += [{'{#MYSQLPORT}': port}]
        print json.dumps({'data':ports},sort_keys=True,indent=4)
else:
        print 'discovery error'

使用netstat发现正在监控的端口。netstat一般zabbix无法执行,所以得在zabbix agentd端用visudo添加如下配置:

zabbix ALL= NOPASSWD: /bin/netstat
Defaults:zabbix   !requiretty

 

探索完端口后,zabbix server就需要以端口为参数向zabbix agent端获取数据,其中项目原型配置如下:

其中mysql.status又要重新写一份获取mysql数据的代码了,先把配置发一下吧,zabbix agentd端配置如下:

UserParameter=mysql.status[*],sh /usr/local/zabbix/check_mysql.sh -u xxxx -p xxxx -P $1 -k $2 2>/dev/null

获取mysql数据的/usr/local/zabbix/check_mysql.sh shell脚本如下,其中-u表示用户名,-p表示密码,-k表示获取mysql的状态值(这边举例获取的是Com_update等值),2>/dev/null是把mysql密码明文的提示给去除:

#!/bin/sh
while getopts "u:p:P:k:" opt
do
        case $opt in
                u ) user=$OPTARG;;
                p ) password=$OPTARG;;
                P ) port=$OPTARG;;
                k ) key=$OPTARG;;
                ? )
                echo 'parameter is wrong!'
                exit 1;;
        esac
done
if [ ! "${user}" ] || [ ! "${password}" ] || [ ! "${port}" ];then
        echo "parameter is null"        
        exit 1
fi

mysql -u ${user} -p${password} -h 127.0.0.1 -P${port} -e "show global status"|grep "${key}[[:space:]]"|awk '{print $2}'

 

通过上面的配置,基本上是可以自动发现mysql的端口并监控mysql了,一般监控mysql我们都会创建一个比较小权限的帐号,脚本里只用到show global status:

grant usage on *.* to ‘xxxx’@'127.0.0.1' identified by 'xxxx';

 

zabbix视频教程  附上一个视频教程链接。

模板见:https://git.oschina.net/zhuangweihong/ops

© 著作权归作者所有

共有 人打赏支持
just_do_itit
粉丝 65
博文 51
码字总数 33669
作品 0
杭州
运维
加载中

评论(3)

kokuma222
kokuma222
博主你好,最近在看一些zabbix方面的东西,方便加个QQ好友请教下么?QQ:一四七一三二一九九二
just_do_itit
just_do_itit

引用来自“fuckmeagain”的评论

监控加上了,但是采集不到值,不知道为何,我有多个mysql,每个mysql有一个mysql.sock
脚本是使用127.0.0.1的,不用sock的。使用-h和-p参数就不用mysql.sock了,mysql.sock是针对localhost的。
f
fuckmeagain
监控加上了,但是采集不到值,不知道为何,我有多个mysql,每个mysql有一个mysql.sock
Zabbix 3.0 从入门到精通(zabbix使用详解)

第1章 zabbix监控 1.1 为什么要监控   在需要的时刻,提前提醒我们服务器出问题了    当出问题之后,可以找到问题的根源    网站/服务器 的可用性 1.1.1 网站可用性   在软件系统的高...

侯召顺
2017/11/23
0
0
企业级大型监控系统zabbix

一、自动化及监控概述 自动化运维的三个层次 1、操作系统的自动化安装 虚拟化安装操作系统 kickstart 2、配置管理工具,用于安装应用程序,调试配置文件,常见的有puppet。 3、联动工具,fun...

blackstome
2017/09/26
0
0
Zabbix监控部署

Zabbix监控实验报告 实验要求:模拟四台服务器,搭建Zabbix服务监控平台,能自动发现另外三台客户端,并且能自动监控 实验目的:熟练掌握Zabbix监控服务的搭建及配置,实现对服务器的自动监控...

蜡笔xiao馨
2017/11/09
0
0
自动化监控(一)之zabbix安装与配置

1.1 Zabbix简介    Zabbix是一个企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利。官方网 站:http://www.zabb...

Andy-xu
2014/08/30
0
7
京东MySQL监控之Zabbix优化、自动化

随着京东业务的飞速发展, MySQL数据库的使用更加普及、服务器量级飞速增长,这对京东MySQL DBA团队的要求也越来越高。监控系统为数据库管理和维护提供了精确的数据依据,是数据库运维人员的...

lover007
2016/08/02
0
0
zabbix源码安装流程及报错解决方法

zabbix源码安装流程及报错解决方法 一. zabbix的介绍 1) zabbix是什么 zabbix是一款基于web页面的、开源的、企业级的,支持分布式部署的监控软件。 2)2.zabbix的作用 监控windows和Linux主机...

JAYZ_HAO
2017/08/22
0
0
CentOS7安装Zabbix3.0版本应用

一、Zabbix介绍 zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费...

秦时明月路
2016/09/30
0
0
详解zabbix安装部署(Server端篇)

Linux下常用的系统监控软件有Nagios、Cacti、Zabbix、Monit等,这些开源的软件,可以帮助我们更好的管理机器,在第一时间内发现,并警告系统维护人员。 今天开始研究下Zabbix,使用Zabbix的目...

zhuifeng19
2017/04/19
0
0
监控 cacti zabbix(2)

监控(1):(cactizabbix) 前提:cacti配置完成 cacti 监控其他主机(采集数据:crontab定时调用(poller.php)snmp采集存储数据:rrdtool -->rra下的rrd数据库(大小时固定,循环记录数据,不会增...

当当要加油
2017/04/08
0
0
zabbix自动发现监控redis数据库

zabbix自动发现监控redis数据库与自动发现mongo,mysql的思路差不多。这次汇总完就把模板,脚本上传到git上。如果公司使用的redis都是6379端口的话,那么还是建议创建一套模板,然后链接到各...

just_do_it_
2016/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

看看 LinkedList Java 9

终于迎来了 LinkedList 类,实现的接口就有点多了 Serializable, Cloneable, Iterable<E>, Collection<E>, Deque<E>, List<E>, Queue<E>。LinkedList是一个实现了List接口和Deque接口的双端链......

woshixin
6分钟前
0
0
算法 - 冒泡排序 C++

大家好,我是ChungZH。今天我给大家讲一下最基础的排序算法:冒泡排序(BubbleSort)。 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大(可以相反),就交换他们两个。 对每...

ChungZH
8分钟前
0
0
jquery ajax request payload和fromData请求方式

请求头的不同 fromData var data = { name : 'yiifaa'};// 提交数据$.ajax('app/', { method:'POST', // 将数据编码为表单模式 contentType:'application/x-ww...

lsy999
11分钟前
0
0
阿里P7架构师,带你点亮程序员蜕变之路

前言: Java是现阶段中国互联网公司中,覆盖度最广的研发语言。 掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。 有不少朋友问,成为Java架...

Java大蜗牛
12分钟前
0
0
Ecstore 在没有后台管理界面(维护)的情况如何更新表的字段

window 系统: 切换到:app\base 目录下: C:\Users\qimh>d: D:\>cd D:\WWW\huaqh\app\base 执行:D:\WWW\huaqh\app\base>cmd update linux 系统: 1># cd /alidata/www.novoeshop.com/app/......

qimh
17分钟前
0
0
设计模式-策略模式

策略模式 解释 对工厂模式的再次封装,使用参数控制上下文信息(将工厂返回的实例赋值给context field) 不会返回bean实例,只是设置对应的条件 调用context的方法(调用field的方法) 用户只...

郭里奥
20分钟前
0
0
python使用有序字典

python自带的collections包中有很多有用的数据结构可供使用,其中有个叫OrderedDict类,它可以在使用的时候记录元素插入顺序,在遍历使用的时候就可以按照原顺序遍历。 a = {"a":1,"b"...

芝麻糖人
49分钟前
0
0
RestTemplate HttpMessageConverter

RestTemplate 微信接口 text/plain HttpMessageConverter

微小宝
50分钟前
0
0
mysql视图/存储过程/函数/事件/触发器

--语法参考:https://dev.mysql.com/doc/ (当前用的是5.6) https://dev.mysql.com/doc/refman/5.6/en/sql-syntax-data-manipulation.html --视图 CREATE VIEW test.v AS SELECT * FROM t;......

坦途abc
51分钟前
0
0
MySQL参数优化案例

环境介绍 硬件配置 cpu核心数 内存大小 磁盘空间 16核 256G 3T 软件环境 操作系统版本 mysql版本 表数目 单表行数 centos-7.4 mysql-5.7.22 128张表 2kw行 优化层级与指导思想 优化层级 MySQ...

小致dad
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部