Zabbix 监控Mysql数据库及主从数据库
Zabbix监控mysql主从数据库在脚步出现用户名和密码是会出现如下报错“Warning: Using a password on the command line interface can be insecure”,报错原因是mysql 5.6版本增加了密码安全策略,之前版本可以使用的命令行里加上密码就会强制报错,所以使用zabbix监控mysql的时候,就会由于收到zabbix客户端日志报错信息。结合了网友的解决方案,现将整理出来供大家参考。
一,zabbix被监控端的设置:
1,首先配置mysql数据库,配置mysql的--login-pathde 安全登录:
设置--login-path:
[root@mysql conf]# mysql_config_editor set --login-path=local --host=localhost --user=zabbix -p Enter password: [root@mysql conf]# mysql_config_editor print --all [local] user = zabbix password = ***** host = localhost
命令解释:
--login-path是设置访问的名字,我设置的local;
--host是指定允许访问的host地址,这个地址是你grant的时候配置的;
--user是用户名,也是grant时候配置的;
-p是指定密码,同样是grant配置
2,进入mysql,修改zabbix账号的权限和密码:
mysql> create user 'zabbix' identified by 'zabbix'; #(已创建会显示为0) Query OK, 0 rows affected (0.00 sec)mysql> select user,host from mysql.user; +------------+--------------+ | user | host | +------------+--------------+ | databak | % | | ppt | % | | root | % | | slave_user | % | | zabbix | % | | slave_user | 192.168.1.49 | +------------+--------------+ 6 rows in set (0.00 sec) mysql> GRANT ALL PRIVILEGES ON `zabbix`.* TO 'zabbix'@'%'; Query OK, 0 rows affected (0.00 sec) mysql> update user set password=password('zabbix') where user='zabbix'; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> commit-> ; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
3,测试:mysql --login-path=local
[root@mysql conf]# mysql --login-path=local Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 542 Server version: 5.6.25-log Source distributionCopyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> quit
以上就配置好了安全访问模式。
二,在客户端里,需要把监控的内容json化展示,然后服务端可以通过正则表达式过滤出结果,脚步的内容如下,然后放到/usr/local/zabbix/bin 文件夹里。
#!/bin/bash #Fucation:mysql low-level discovery #Script_name mysql_low_discovery.sh mysql() {port=($(sudo /bin/netstat -tpln | awk -F "[ :]+" '/[m]ysql/ {print $4}'))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
结果如下图:
2,给脚本low_level_discovery赋可执行权限
[root@mysql conf]# chmod +x /usr/local/zabbix/bin/low_level_discovery [root@mysql conf]# ll /usr/local/zabbix/bin/low_level_discovery -rwxr-xr-x 1 root root 1055 Nov 11 15:45 /usr/local/zabbix/bin/low_level_discovery
3,允许zabbix用户无密码运行mysql,netstat,/usr/local/mysql/bin是mysql程序地址,可根据情况自由修改。
[root@mysql bin]# echo "zabbix ALL=(root) NOPASSWD:/usr/local/mysql/bin/mysql,/bin/netstat" >> /etc/sudoers
下图所示:
4,禁用 requiretty不关闭的话会无法获取数据,zabbix日志还会报错.
[root@mysql bin]# sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/' /etc/sudoers
5,修改zabbix_agentd.conf文件的最后添加一下内容:
UserParameter=zabbix_low_discovery[*],/bin/bash /usr/local/zabbix/bin/low_level_discovery $1 UserParameter=mysql_stats_5.6[*],sudo /usr/local/mysql/bin/mysql --login-path=local -P $1 -e "show global status"|grep "\<$2\>"|cut -f2 UserParameter=mysql_stats_slave_5.6[*],sudo /usr/local/mysql/bin/mysql --login-path=local -P $1 -e "show slave status\G"|grep "\<$2\>"|awk '{if($NF=="Yes") {print 1} else {print 0}}'
6,在服务端进行测试,语句为
[root@zabbix bin]# zabbix_get -s192.168.1.244 -p10050 -k zabbix_low_discovery[mysql] {"data":[{"{#MYSQLPORT}":"3306"}] }
三,zabbix服务端web设置:
1,模板导入
把template mysql auto discovery导入到zabbix里,具体:配置-----模板------载入-------选择文件。
2,设置正则表达式:管理-----一般------正则表达式--------新的正则表达式-------输入名称和测试字符串--------测试--------保存。
3,设置模板的更新间隔并把主机关联到模板(如果设置太小的话,一是服务器压力大,另一个就是你检测的端口突然宕掉了,还没有来的急报警,主机通过jsonlai 来获取不到这个信息,就会认为没有这个端口,模板里就会自动关闭这个监控项的内容)
4,最后监控的内容如下:
最后非常感谢51cto的dl528888(http://dl528888.blog.51cto.com/2382721/1677545)博主,本文大部分都是参考他的文章,再次表示感谢,刚开始出现了问题,博主非常热情的替我远程解决,再次表示非常的非常的感谢。
转载于:https://blog.51cto.com/liqingbiao/1712080
Zabbix 监控Mysql数据库及主从数据库相关推荐
- Zabbix监控Mysql数据库性能
来源:http://os.51cto.com/art/201404/435139.htm 本文通过Zabbix Graphs实时查看的SQL语句操作情况和mysql发送接收的字节数,Zabbix还可以 ...
- zabbix监控mysql主从与主从延迟
zabbix监控mysql主从与主从延迟 文章目录 zabbix监控mysql主从与主从延迟 一.Zabbix监控mysql主从 1.部署mysql主从,使用mariadb进行操作 2.将server ...
- mysql 表空间监控shell_一种通过zabbix监控mysql表空间的方法
一种通过zabbix监控mysql表空间的方法[ 技术领域: ][0001]本发明涉及计算机自动化运维与监控领域,具体地说是一种通过ZABBIX监控MYSQL表空间的方法.[ 背景技术: ][0002 ...
- 《Centos7——zabbix监控mysql的常规操作》
<Centos7--zabbix监控mysql的常规操作> 逻辑思维菜鸟 2020-09-22 21:21:01 40 收藏 1 分类专栏: zabbix 数据库 文章标签: mysql ...
- zabbix监控mysql的实例方法
文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 1.监控规划 在创建监控 ...
- 配置 zabbix 监控 MySQL
目录 zabbix 监控 MySQL 1.数据库用户授权 2.cp 模板到/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 3.建立数据库和zabbix的连接信息 ...
- zabbix监控mysql最简单的方法
该实验基于我的上一篇文章监控第一台主机的基础上 首先,因为水平有限,我选择直接关闭了防火墙和SELinux. 环境: 两台centos7,服务器端IP是192.168.200.128(以下简称主机), ...
- zabbix监控mysql死锁
percona MySQL Server Template算是比较常用的zabbix监控mysql的模板了,监控项也比较齐全,但是没有监控mysql死锁的监控项,如果有需求,就需要另外创建模板或者监控 ...
- Zabbix 监控 MySQL
配置Zabbix 监控 MySQL 客户端配置 服务器: ubuntu14.04 之前装过 zabbix-agent 但是看了一下版本是2.2的,已经很落后了,于是升级了一下.(配置文件不用备份,升级 ...
最新文章
- CPM-2细节发布!10大技术打通大模型「任督二脉」,单卡单机跑「千亿模型」不再是梦...
- 当前环境下 物联网的四大关键点
- The prefix “mvc“ for element “mvc:annotation-driven“ is not bound 异常
- acm算法模板(1)
- 干货 | 一文带你搞定Python 数据可视化
- LeetCode Algorithm LCP 44. 开幕式焰火
- jQuery Mobile教程:jQuery Mobile基本事件
- iOS开发之结构体底层探索
- HDU ACM 2647 Reward (topology----拓扑排序)
- 读取doc文件c语言程序,c语言程序中关于文件的操作.doc
- Linux目录结构及其英文全称
- 删除WIN10桌面右键菜单多余项的方法
- Android开发者的Ane简单入门
- 普通素人做知识付费项目或者副业,会不会特别容易“凉凉”?
- 康耐视InSight中电子表格模式下图案匹配工具FindPatterns的使用分享
- Python 爬虫系列:爬取全球机场信息
- 探索式测试:通宵测试法
- css添加过渡色,CSS过渡与转换
- 低功耗技术在智能硬件上的应用
- office提示错误1902该怎么解决
热门文章
- MySQL组内排序取最大值
- JAVA 连接MYSQL数据库操作
- 算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)
- Docker + gunicron + supervisord 部署python应用
- IDC_ Pro_Env _CentOS 5.4_Open×××
- MIS开发中C/S模式与B/S模式的结合策略
- python的raw_ input是什么意思-对python中raw_input()和input()的用法详解
- Tungsten Fabric SDN — VNC API — API Client 的 Python SDK
- SSM 实现支付宝支付功能(图文详解+完整代码)
- Consul + Nginx实现自动扩容平台