文档章节

zabbix自动发现监控mysql数据库

实践哥
 实践哥
发布于 2016/11/10 23:15
字数 699
阅读 1218
收藏 38

跟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';

 

最后附上本人的网络课堂地址,如有兴趣请点击: 实践哥

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

© 著作权归作者所有

共有 人打赏支持
实践哥
粉丝 66
博文 51
码字总数 35897
作品 0
杭州
运维
私信 提问
加载中

评论(3)

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

引用来自“fuckmeagain”的评论

监控加上了,但是采集不到值,不知道为何,我有多个mysql,每个mysql有一个mysql.sock
脚本是使用127.0.0.1的,不用sock的。使用-h和-p参数就不用mysql.sock了,mysql.sock是针对localhost的。
f
fuckmeagain
监控加上了,但是采集不到值,不知道为何,我有多个mysql,每个mysql有一个mysql.sock
结合Zabbix与Ansible打造自动化数据库监控体系

本文根据dbaplus社群第162期线上分享整理而成。 随着业务的飞速发展,数据库服务器量级飞速增长,比如Oracle、MySQL、Redis、MongoDB的使用更加普及,对数据库运维人员的要求也越来越高,构建...

刘宇
2018/10/10
0
0
自动化监控(一)之zabbix安装与配置

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

Andy-xu
2014/08/30
0
7
详解zabbix安装部署(Server端篇)

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

zhuifeng19
2017/04/19
0
0
CentOS7.3 64位,搭建Zabbix3.4

CentOS7.3 64位,搭建Zabbix3.4 置顶 2018年01月27日 12:57:23 友人a笔记 阅读数:380 标签: zabbix 更多 个人分类: 监控 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://...

linjin200
2018/10/19
0
0
企业级大型监控系统zabbix

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

blackstome
2017/09/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MySQL的分表与分区

MySQL分表分区是解决大数据量导致MySQL性能低下的两种方法。 什么是MySQL分表 从表面意思上看,MySQL分表就是将一个表分成多个表,数据和数据结构都有可能会变。MySQL分表分为垂直分表和水平...

吴伟祥
24分钟前
1
0
MySQL查询执行

当我们希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的。一旦理解了这一点,很多查询优化工作实际上就是遵循一些原则让优化器能够按照预想的合理方式...

问题终结者
今天
1
0
CDH5动静态资源池配置与回滚

关于动态 静态资源池的配置以前都有提过,可以从以下几篇了解: YARN动态资源池配置案例 https://yq.aliyun.com/ziliao/346856# Hadoop YARN配置参数剖析(4)—Fair Scheduler相关参数 Hadoop...

hblt-j
今天
3
0
WordPress仿站实战教程

有一个月没有写blog了,一直在学习wordpress的知识,现在能够进行简单的政府企业门户网站的仿制,wordpress的主题订制,一般是对前端要求比较高,wordpress学会了,建站还是非常的快的。下面...

临江仙卜算子
今天
4
0
图像库stb_image

https://github.com/nothings/stb 目前一般主流的图像格式也就是bmp,jpg,png,tga,dds,除了DDS一般是给DX用的,虽然一堆OpenGL程序也有用的,但是我一般只用png和tga, png不用说了,带a...

robslove
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部