zabbix企业应用之low level discovery监控mysql

之前介绍了使用zabbix监控固定3306端口的mysql(文章地址为http://dl528888.blog.51cto.com/2382721/1346590),有个不好的地方是只能监控固定的3306端口,如果是非3306端口的话,需要修改模板,如果主机有多个mysql实例的话,需要具有不同的mysql模板,然后在管理监控,很是麻烦,为了解决这个问题,我使用lld(low level discovery)方式监控mysql,只需要你在正则表达式里把需要监控的端口标上,就可以监控mysql多实例。

下面是监控效果图:

1、整体图

wKioL1L4LUmCW-ESAAHS4laY7l8200.jpg

可以看到我这里是监控了3306与3307这2个mysql的实例,在图形上,是根据端口来进行区分。

下面我只列举3307端口的监控效果图

2、Mysql Sort of 3307 Port

wKioL1L4PQyx72s9AAOGMOegRn4968.jpg

3、Mysql Bytes_sent Bytes_received of 3307 Port

wKioL1L4PXCTcVI4AAQkN8eslXU927.jpg

4、Mysql Com of 3307 Port

wKioL1L4PaXDM5gjAASHdVr_yo8936.jpg

5、Mysql Connectionsof 3307 Port

wKioL1L4PdnA9HBSAAPNpxNZBjQ866.jpg

6、Mysql Create tmp of 3307 Port

wKiom1L4Pj7AzZfaAAO7WH9_52I946.jpg

7、Mysql Innodb of 3307 Port

wKioL1L4PlGBcuf5AAQ3dJ9nqzI594.jpg

8、Mysql Key of 3307 Port

wKiom1L4PqKw7PlLAAPwSZyt8BE566.jpg

9、Mysql Qcache of 3307 Port

wKioL1L4PrqB_nV5AAREXk2gXFw856.jpg

10、Mysql Queries and Questions of 3307 Port

wKiom1L4Pw6S2mBpAANNWtZMYO4715.jpg

11、Mysql Slow of 3307 Port

wKioL1L4PxvDYB4-AANkCNrQFuw082.jpg

12、Mysql Sort of 3307 Port

wKiom1L4P2eiXVnBAAOeo53HqYE187.jpg

13、Mysql Uptime of 3307 Port

wKioL1L4P3vwNot9AAPThSeytBA933.jpg

如何实现:

一、客户端

1、监控内容的json化

在客户端里,需要把监控的内容json化展示,然后服务端可以通过正则来过滤出结果

下面在是我的json监控mysql的json展示

wKioL1L5dd6hILXmAAB_Ll1Q_6E480.jpg

脚本内容如下:

#!/bin/bash
#Fucation:mysql low-level discovery
#Script_name mysql_low_discovery.sh
mysql() {port=($(sudo netstat -tpln | awk -F "[ :]+" '/[m]ysql/ && /0.0.0.0/ {print $5}'))printf '{\n'printf '\t"data":[\n'for key in ${!port[@]}doif [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];thensocket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}'|cut -d ' ' -f 1`printf '\t {\n'printf "\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"},\n"else [[ "${key}" -eq "((${#port[@]}-1))" ]]socket=`ps aux|grep ${port[${key}]}|grep -v grep|awk -F '=' '{print $10}'|cut -d ' ' -f 1`printf '\t {\n'printf "\t\t\t\"{#MYSQLPORT}\":\"${port[${key}]}\"}\n"fidoneprintf '\t ]\n'printf '}\n'
}
$1

把此文件存放到/usr/local/zabbix/bin里,然后给与755权限,并修改用户与组为zabbix,同时允许zabbix用户无密码运行netstat

echo "zabbix ALL=(root) NOPASSWD:/bin/netstat">>/etc/sudoers

#Disable requiretty

sed -i 's/^Defaults.*.requiretty/#Defaults    requiretty/' /etc/sudoers

不关闭的话,会无法获取数据,并且zabbix日志里报

wKioL1L5lG7DIj1bAADTHBgUAt4491.jpg

2、修改zabbix_agentd.conf文件

在zabbix_agentd.conf最后添加以下内容

UserParameter=zabbix_low_discovery[*],/bin/bash /usr/local/zabbix/bin/mysql_low_discovery.sh $1
UserParameter=mysql_stats[*],mysql -h localhost -P $1 -uzabbix -pzabbix -e "show global status"|grep "\<$2\>"|cut  -f2

测试

如果你能通过/usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k zabbix_low_discovery[mysql]命令获取数据就代表没问题

[root@zabbix1 bin]# /usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k zabbix_low_discovery[mysql]
{"data":[{"{#MYSQLPORT}":"3306"}]
}

3、mysql授权

GRANT PROCESS ON *.* TO 'zabbix'@'localhost' identified BY 'zabbix';
Flush privileges;

4、重启zabbix服务

ps -ef|grep zabbix|grep -v grep|awk '{print $2}'|xargs kill -9
/usr/local/zabbix/sbin/zabbix_agentd -c /usr/local/zabbix/conf/zabbix_agentd.conf

二、服务端

1、模板导入

把Template Mysql Auto Discovery导入到zabbix里(模板在附件),具体操作不介绍。

2、设置正则

在“管理”=》“一般”=》“正则表达式”里,选择“新的正则表达式”

然后设置类似如下

wKioL1L4Q6HhYgzHAAG68C970XY733.jpg

我这是运行3301到3309这9个mysql实例

3、主机关联模板

把需要监控mysql实例的主机管理模板即可监控,默认是3600秒后自动更新,如下图

wKioL1L4RA-i4NphAAJjI4nsqj4159.jpg

为什么设置3600秒?原因是如果设置时间过短,比如你设置60s,一个是服务器的压力大,一个是如果你检测的端口突然当掉了,还没有来的急报警,主机通过json来获取不到这个信息,就认为没有这个端口,模板里会自动关闭这个监控项的内容(默认保留30天,然后自动删除),这样报警功能就基本没有了,所以还是发现的间隔时间长一些比较好。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/546961.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图片人脸检测——Dlib版(四)

上几篇给大家讲了OpenCV的图片人脸检测&#xff0c;而本文给大家带来的是比OpenCV更加精准的图片人脸检测Dlib库。 往期目录 视频人脸检测——Dlib版&#xff08;六&#xff09;OpenCV添加中文&#xff08;五&#xff09;图片人脸检测——Dlib版&#xff08;四&#xff09;视频…

配置设备作为DHCP 服务器(基于全局地址池)

DHCP 服务器简介: 通常用户希望网络中的每台终端能够动态获取IP地址、DNS服务器的IP地址、路由信 息、网关信息等网络参数,不需要手动配置终端的IP地址等网络参数;另外,针对一 些移动终端(手机、ipad、办公笔记本等)希望能够即插即用,不需要每次修改终端 的IP等网络参数…

kubernetes 实战 使用 nfs 作为动态 storageClass 存储

kubernetes 实战 使用 nfs 作为动态 storageClass 存储 概述 之前有介绍过 Kubernetes 实战 pv and pvc&#xff0c; 相信使用过的pv和pvc的同学或者有过虚拟化经验的人来说肯定会想到很多问题&#xff0c;比如每次申请 pvc 都需要手动添加pv&#xff0c;这岂不是太不方便了。那…

OpenCV环境搭建(一)

OpenCV环境搭建 环境搭建为OpenCV的python&#xff08;一下简称py&#xff09;开发环境搭建&#xff0c;建立在py3的环境和语法上实现的。 windows系统搭建 系统环境&#xff1a;windows 10 python 3.6 OpenCV 3.4.1 一、安装python python的安装之前在python自学笔记的项…

判断一组数字中

public class sushu{public static void main (String args []){//定义i数字范围为100-200&#xff1b;for (int i 100 ; i < 200; i){//定义一个变量bboolean b false;//定义j大于等于2&#xff0c;循环取余数&#xff0c;判断如果K等于0则除尽&#xff0c;此数不为素数f…

git+pylint实现python提交代码格式校验

环境&#xff1a;win10(64)&#xff0c;python3.7.1&#xff0c;git2.7.2&#xff0c;pylint-2.3.1&#xff0c;git_pylint_commit_hook-2.5.1 以上为当期搭建所用到的版本&#xff0c;有异常时方便查找问题。 安装pylint&#xff0c;pylint是一个单独可以对python文件进行格…

OpenCV添加中文(五)

OpenCV添加文字的方法putText(…)&#xff0c;添加英文是没有问题的&#xff0c;但如果你要添加中文就会出现“&#xff1f;&#xff1f;&#xff1f;”的乱码&#xff0c;需要特殊处理一下。 下文提供封装好的&#xff08;代码&#xff09;方法&#xff0c;供OpenCV添加中文使…

UpdatePanel的内容中出现自定义多语言运行异常

2019独角兽企业重金招聘Python工程师标准>>> 我们项目有双语要求&#xff0c;采用的是自定义符号控制。在页面加载时进行翻译。 在xml文件中有如下格式的配置 <items> <resource page"~/SalesAppeal/SalesAppealCO.aspx"> <item key"…

ELK开机自启动脚本

elasticsearch服务配置文件 cd /etc/init.dtouch elasticsearchchmod x elasticsearchvi elasticsearch并输入以下内容: #!bin/bash# chkconfig: 2345 21 89 # description: elasticsearch# JAVA_HOME/usr/lib/jvm/jdk1.8.0_91 ES_HOME/usr/local/elasticsearch-6.7.2 case…

QT5获取QPlainTextEdit 某行内容

#include <QTextBlock> #include <QMessageBox>QString str;//获取总行数 str QString::number(ui->plainTextEdit->document()->lineCount()); QMessageBox::information(this, "information", str);//输出某行内容 str ui->plainTextEdi…

pip/pip3更换国内源

pip/pip3更换国内源 用途&#xff1a;pip更换为国内源&#xff0c;可以大大的提高安装成功率和速度。 Windows更换pip/pip3源 打开目录&#xff1a;%appdata%新增pip文件夹&#xff0c;新建pip.ini文件给pip.ini添加内容 [global] timeout 6000 index-url https://pypi.t…

使用Bazel编译报错ERROR: Unrecognized option: --experimental_repo_remote_exec解决方法

ERROR: Unrecognized option: --experimental_repo_remote_exec 一、问题&#xff1a; INFO: Options provided by the client:Inherited common options: --isatty1 --terminal_columns80 INFO: Reading rc options for version from /home/emadboctor/tensorflow/.bazelrc:I…

QT5获取CPU编号和硬盘序列号

windows下执行命令除了用cmd之外&#xff0c;还有个东西叫WMIC&#xff0c;非常强大&#xff0c;可以通过他获取很多信息&#xff0c;包括硬件信息。 #include <QProcess>QString frmMain::getWMIC(const QString &cmd) {//获取cpu名称&#xff1a;wmic cpu get Nam…

视频人脸检测——Dlib版(六)

往期目录 视频人脸检测——Dlib版&#xff08;六&#xff09; OpenCV添加中文&#xff08;五&#xff09; 图片人脸检测——Dlib版&#xff08;四&#xff09; 视频人脸检测——OpenCV版&#xff08;三&#xff09; 图片人脸检测——OpenCV版&#xff08;二&#xff09; …

解决 wamp网站访问慢的问题

最近使用wamp进行调试。 一个简单页面发现wamp的响应达10s。 经过研究发现&#xff0c;是wamp的sql部分拖慢了访问速度&#xff0c;追深后发现是&#xff0c;mysql进行了dns解析而导致反问速度超慢的情况&#xff1b; 所以给mysql 减减压吧&#xff1a; my.ini(Linux下为 my.co…

Ubuntu apt-get和pip源更换

Ubuntu apt-get和pip源更换 更新数据源为国内&#xff0c;是为了加速安装包的增加速度。 更换apt-get数据源 输入&#xff1a;sudo -s切换为root超级管理员&#xff1b;执行命令&#xff1a;vim /etc/apt/sources.list&#xff1b;使用命令&#xff1a;%d 清空所有内容&…

OpenPose+win10安装

openpose在win10上的环境配置和安装&#xff0c;主要参考&#xff1a;OpenPose_1.3.0 vs2017 cuda_9.2.148_win10 cudnn9.2-windows10-x64-v7.2.1.38 windows 配置教程_无情时尚的博客-CSDN博客_openpose vs 另一篇博客后半部分有讲如何使用代码实现相应的功能&#xff1a;…

QT5获取运行程序的工作目录与程序所在的目录

在qt-creator中debug的时候&#xff0c;发现程序不能读写所在目录的配置文件&#xff0c;资源文件。 Google了一下&#xff0c;原来 运行程序的 工作目录 与 程序所在的目录是不同的概念。 跑跑这段代码就知道了&#xff1a; #include <QDebug> #include <QDir>Q…

超简单的视频对象提取程序

视频对象提取 与其说是视频对象提取&#xff0c;不如说是视频颜色提取&#xff0c;因为其本质还是使用了OpenCV的HSV颜色物体检测。 HSV介绍 HSV分别代表&#xff0c;色调&#xff08;H&#xff1a;hue&#xff09;&#xff0c;饱和度&#xff08;S&#xff1a;saturation&a…

python2.7 与 go1.2简单性能比较

过完年刚上班&#xff0c;项目还没有开始&#xff0c;对于即将到来的项目&#xff0c;想尝试是否可以找到一个开发效率接近python&#xff0c;运行效率接近静态语言的编程语言&#xff0c;选择基本就是scala和go&#xff0c;公司的技术组成基本都是c派的&#xff0c;scala暂不考…