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数据库及主从数据库相关推荐

  1. Zabbix监控Mysql数据库性能

    来源:http://os.51cto.com/art/201404/435139.htm 本文通过Zabbix Graphs实时查看的SQL语句操作情况和mysql发送接收的字节数,Zabbix还可以 ...

  2. zabbix监控mysql主从与主从延迟

    zabbix监控mysql主从与主从延迟 文章目录 zabbix监控mysql主从与主从延迟 一.Zabbix监控mysql主从 1.部署mysql主从,使用mariadb进行操作 2.将server ...

  3. mysql 表空间监控shell_一种通过zabbix监控mysql表空间的方法

    一种通过zabbix监控mysql表空间的方法[ 技术领域: ][0001]本发明涉及计算机自动化运维与监控领域,具体地说是一种通过ZABBIX监控MYSQL表空间的方法.[ 背景技术: ][0002 ...

  4. 《Centos7——zabbix监控mysql的常规操作》

    <Centos7--zabbix监控mysql的常规操作> 逻辑思维菜鸟 2020-09-22 21:21:01 40 收藏 1 分类专栏: zabbix 数据库 文章标签: mysql ...

  5. zabbix监控mysql的实例方法

    文章来源: 学习通http://www.bdgxy.com/ 普学网http://www.boxinghulanban.cn/ 智学网http://www.jaxp.net/ 1.监控规划 在创建监控 ...

  6. 配置 zabbix 监控 MySQL

    目录 zabbix 监控 MySQL 1.数据库用户授权 2.cp 模板到/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 3.建立数据库和zabbix的连接信息 ...

  7. zabbix监控mysql最简单的方法

    该实验基于我的上一篇文章监控第一台主机的基础上 首先,因为水平有限,我选择直接关闭了防火墙和SELinux. 环境: 两台centos7,服务器端IP是192.168.200.128(以下简称主机), ...

  8. zabbix监控mysql死锁

    percona MySQL Server Template算是比较常用的zabbix监控mysql的模板了,监控项也比较齐全,但是没有监控mysql死锁的监控项,如果有需求,就需要另外创建模板或者监控 ...

  9. Zabbix 监控 MySQL

    配置Zabbix 监控 MySQL 客户端配置 服务器: ubuntu14.04 之前装过 zabbix-agent 但是看了一下版本是2.2的,已经很落后了,于是升级了一下.(配置文件不用备份,升级 ...

最新文章

  1. CPM-2细节发布!10大技术打通大模型「任督二脉」,单卡单机跑「千亿模型」不再是梦...
  2. 当前环境下 物联网的四大关键点
  3. The prefix “mvc“ for element “mvc:annotation-driven“ is not bound 异常
  4. acm算法模板(1)
  5. 干货 | 一文带你搞定Python 数据可视化
  6. LeetCode Algorithm LCP 44. 开幕式焰火
  7. jQuery Mobile教程:jQuery Mobile基本事件
  8. iOS开发之结构体底层探索
  9. HDU ACM 2647 Reward (topology----拓扑排序)
  10. 读取doc文件c语言程序,c语言程序中关于文件的操作.doc
  11. Linux目录结构及其英文全称
  12. 删除WIN10桌面右键菜单多余项的方法
  13. Android开发者的Ane简单入门
  14. 普通素人做知识付费项目或者副业,会不会特别容易“凉凉”?
  15. 康耐视InSight中电子表格模式下图案匹配工具FindPatterns的使用分享
  16. Python 爬虫系列:爬取全球机场信息
  17. 探索式测试:通宵测试法
  18. css添加过渡色,CSS过渡与转换
  19. 低功耗技术在智能硬件上的应用
  20. office提示错误1902该怎么解决

热门文章

  1. MySQL组内排序取最大值
  2. JAVA 连接MYSQL数据库操作
  3. 算法笔记_204:第四届蓝桥杯软件类决赛真题(Java语言C组)
  4. Docker + gunicron + supervisord 部署python应用
  5. IDC_ Pro_Env _CentOS 5.4_Open×××
  6. MIS开发中C/S模式与B/S模式的结合策略
  7. python的raw_ input是什么意思-对python中raw_input()和input()的用法详解
  8. Tungsten Fabric SDN — VNC API — API Client 的 Python SDK
  9. SSM 实现支付宝支付功能(图文详解+完整代码)
  10. Consul + Nginx实现自动扩容平台