zabbix3 0 2 使用percona mysql插件来监控mysql5 7的详细实现过程

news/2024/7/7 7:30:26
               

--前言

上次用了zabbix自带的mysql插件来监控mysql数据库,但是太过简陋了,对于我们dba来说,基本没有啥作用,所以需要做更详细的监控,而percona就有这个详细监控的模版以及脚本,正好拿过来用。

 

1,      需要安装php脚本运行环境

percona监控zabbix的脚本使用php写的,所以需要准备好php运行环境,这里直接用yum安装就可以满足要求了:

yum install -y php php-mysql                                                                                                                                                                         

 

2,      加载官方percona模版

去percona官网下载:

[root@zabbix_serv_121_12 percona]#

 

wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm

 

 

 

 

 

[root@zabbix_serv_121_12 percona]# rpm  -ivh percona-zabbix-templates-1.1.6-1.noarch.rpm

 

warning:  percona-zabbix-templates-1.1.6-1.noarch.rpm: Header V4 DSA/SHA1 Signature,  key ID cd2efd2a: NOKEY

 

Preparing...                 ########################################### [100%]

 

1:percona-zabbix-template###########################################  [100%]

 

 

 

Scripts are  installed to /var/lib/zabbix/percona/scripts

 

Templates are installed to  /var/lib/zabbix/percona/templates

 

[root@zabbix_serv_121_12 percona]#

 

 

 

 

看到会生成2个目录,/var/lib/zabbix/percona/scripts是监控脚本目录,/var/lib/zabbix/percona/templates是监控mysql的xml模版目录,然后把/var/lib/zabbix/percona/templates/目录下的模版文件zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6_1.xml复制出来,在zabbix的管理界面import导入进去,但是报如下错误:

Import failed

Details

Invalid XML tag "/zabbix_export/date":"YYYY-MM-DDThh:mm:ssZ" is expected.

 

经过核查,这个原因是模版错误,是因为percona官方上1.1.6还是zabbix2.0的版本模版,所以需要跟新上来匹配zabbix3.0的模版规范,而且这个zabbix模版还是直接copy的cacti模版,比较粗糙,用more查看就可以看到里面都是cacti的内容,可见percona官网对zabbix也不是很重视嘛,至少不如cacti那样重视的,如下所示:

[root@zabbix_serv_121_12 scripts]# more  get_mysql_stats_wrapper.sh |grep cacti

 

CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt"

 

     TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`

 

[root@zabbix_serv_121_12 scripts]#

 

[root@zabbix_serv_121_12 scripts]#

 

[root@zabbix_serv_121_12 scripts]# more  ss_get_mysql_stats.php |grep cacti

 

$mysql_user = 'cactiuser';

 

$mysql_pass = 'cactiuser';

 

if ( file_exists('/etc/cacti/' .  basename(__FILE__) . '.cnf' ) ) {

 

    require('/etc/cacti/' . basename(__FILE__) . '.cnf');

 

    debug('Found configuration file /etc/cacti/' . basename(__FILE__) .  '.cnf');

 

    $cache_file = "$cache_dir/$sanitized_host-mysql_cacti_stats.txt"  . ($port != 3306 ? ":$port" : '');                                                                                                                              

 

[root@zabbix_serv_121_12 scripts]#

 

 本篇blog原始地址:http://blog.csdn.net/mchdba/article/details/51447750,谢绝转载



3,修改配置模版加载成功

在原来的zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.6_1.xml之上进行修改,改完后就可以import导入进去了,我将修改好的模版文件share下,地址是:http://download.csdn.net/detail/mchdba/9522634

 

 

 

4,添加参数支持

拷贝userparameter_percona_mysql.conf 文件到被监控的mysql服务器上

[root@zabbix_serv_121_12 ~]# scp  /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf 192.161.3.62:/etc/zabbix/zabbix_agentd.d/

 

The authenticity of host '192.161.3.62 (192.161.3.62)'  can't be established.

 

RSA key fingerprint is  24:b4:e8:76:08:89:e8:3b:75:c7:d3:34:79:19:ba:7c.

 

Are you sure you want to continue  connecting (yes/no)? yes

 

Warning: Permanently added '192.161.3.62'  (RSA) to the list of known hosts.

 

root@192.161.3.62's password:

 

userparameter_percona_mysql.conf                                                                                                                              100%   18KB  18.4KB/s    00:00   

 

[root@zabbix_serv_121_12 ~]#

 

修改客户端的zabbix_agentd.conf文件,增加Include 把userparameter_percona_mysql.conf 所在的目录增加进去:

# 实际测试过程中,貌似不添加也行

 

vim /etc/zabbix/zabbix_agentd.conf

 

Include=/etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf                                                                                                                                        

 

 

5,修改监控脚本

修改vim /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh脚本,若mysql没有使用默端口3006,则还需要修改如下脚本文件,哥在这里被坑了好久,修改端口号码文件:

# 1,这里要先建好这个文件,否则会报rm权限错误

 

vim /tmp/localhost-mysql_cacti_stats.txt:3317

 

chown -R zabbix.zabbix  /tmp/$HOST-mysql_cacti_stats.txt:3317

 

 

 

#2,修改端口脚本

 

vim  /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh

 

CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt  "

 

换成:

 

CACHEFILE="/tmp/$HOST-mysql_zabbix_stats.txt:3317"

 

 

 

TIMEFLM=`stat -c %Y  /tmp/$HOST-mysql_cacti_stats.txt`

 

换成:

 

TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_zabbix_stats.txt:3317`

 

 

 

#3,修改mysql执行命令路径

 

#RES=`HOME=~zabbix mysql -e 'SHOW SLAVE  STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print  $2}' | tr '\n' ','`

 

换成:

 

RES=`/usr/local/mysql/bin/mysql -e 'SHOW  SLAVE STATUS\G' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F:  '{print $2}' | tr '\n' ','`                                            

 

 

 

修改vim /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php脚本,这里主要修改用户名密码:

# 修改用户名密码

 

vim  /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php                                                                                                                                                                                                  

 

$mysql_user = 'zabbixmoniter';

 

$mysql_pass = 'ys_ipowerlong0418';

 

$mysql_port = 3306;

 

 

 

6,登陆mysql创建监控要用的账号

GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO 'zabbixmoniter'@'localhost' IDENTIFIED BY "ys_iprlong0418";

mysql> GRANT SELECT, PROCESS, SUPER, REPLICATION  CLIENT ON *.* TO 'zabbixmoniter'@'localhost' IDENTIFIED BY  "ys_iprlong0418";                                

 

Query OK, 0 rows affected (0.06 sec)

 

 

 

mysql>

 

 

 

 

7,测试下监控项

在客户端zabbix-agentd测试下:

[root@db_m2_slave2 ~]# /usr/bin/php -q/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --itemsgg

gg:13

[root@db_m2_slave2 ~]#

 

在服务器zabbix-server测试下:

[root@zabbix_serv_121_12 ~]#  /usr/local/zabbix/bin/zabbix_get -s 192.161.3.73-p10050 -k "MySQL.Threads-connected"

1

[root@zabbix_serv_121_12 ~]#

[root@zabbix_serv_121_12 ~]#  /usr/local/zabbix/bin/zabbix_get -s 192.161.3.73-p10050 -k "MySQL.Handler-commit"

8777484

[root@zabbix_serv_121_12 ~]#

 

8,在zabbix管理界面添加perconamysql监控

在hosts里面的templates里面添加percona mysql 的连接,就可以加入percona mysql模版监控了,加完,会看到items增加到262个,graphs增加55个,如022.png所示:

 

 

9,然后去监控界面查看监控效果图

大概有40几个监控图,这里列出来平常经常会关注的3个图看看效果,虽然比不上cacti的多样性,不过也能暂时满足要求了:

比如InnoDBBuffer Pool,如021.png所示:

 



比如MySQLTransactions Handler,如023.png所示:

 



比如MySQLProcesslist,如024.png所示:

 

 

10,mysql从库监控slave配置

先在mysql slave的agent里面需要check下看是否生效:

[root@azure_orcl_dbm2_3_13 scripts]# sh  /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave                                                                         

 

ERROR 1045 (28000): Access denied for  user 'root'@'localhost' (using password: NO)

 

0

 

[root@azure_orcl_dbm2_3_13 scripts]#

 

所以需要配置下访问mysql的一些基本参数:

#在my.cnf配置用户名密码、sock路径                                                                                                                                                                                                                        

 

vim /usr/local/mysql/etc/my.cnf

 

[mysql]

 

user=zabbixmoniter

 

password=ys_ipowerlong0418

 

socket=/usr/local/mysql/mysql.sock

 

再check试试,就可以看到了:

[root@azure_orcl_dbm2_3_13 scripts]# sh  /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave                                                                       

 

1

 

[root@azure_orcl_dbm2_3_13 scripts]#

 

最好在zabbix管理界面,进入Hosts的mysql从库里面,进入triggers选项栏下面会看到从percona模版加载进来的slave监控项“Slave isstopped on {HOST.NAME}”,过几分钟,就会看到slave监控生效了,如下图025.png所示:

 

 

 

 

 

 

 

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow


http://www.niftyadmin.cn/n/3653809.html

相关文章

Lesson1:透過 commons-configuration 存取設定檔

在我們撰寫一些系統的時候,往往需要設定一些基本的屬性,在使用 Java 進行 Web 開發之中,可以將相關設定放在 JNDI Server 再透過 context lookup 重量級的方式來取得相關的屬性。不過,有時候簡單的環境,不必耗時耗力去…

MySQL 用户权限详细汇总

1,MySQL权限体系mysql 的权限体系大致分为5个层级: 全局层级: 全局权限适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON .和REVOKE ALL ON .只授予和撤销全局权限。 数据库层级: 数据库权限适用于一个给定数…

MySQL 5 7 10最新版本源代码安装详细过程

1,下载地址:安装包下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz可以wget下载,也可以在pc本地网页上下载完再远程传到linux上面去。 安装文档地址:http://dev.mysql.com/doc/refman/5.7…

ERROR 1227 42000 Access denied you need at least one of

1 用以往的mysql登陆模式登陆[mysqleanintmydbc002db1 mysqllog]$ mysql Enter password: Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 3157186Server version: 5.5.25a-log MySQL EA ReleaseCopyright (c) 2000, 2011, Oracle an…

Web Development by Java Opensources (目錄)

這些是我曾經發表在台灣中央研究院-自由軟體鑄造場的電子報文章, 整理之後放在這裡. 以我的目標將分為三個 Milestone , M1 為 JSP/Servlet POJO solutions 的介紹, M2 為 WebServices/XML solutions 的介紹, M3 為完整的系統或是框架來介紹 !目錄PART1: 嘗試使用來自 Opensour…

zabbix3 0 2 实现发送email报警的详细过程

1,安装mail基础组件安装mail的基础组件:yum install sendmail -y …

Lession 2 : 跨越 IDE 的 Apache Ant

Java 最基礎的編譯工具就是 JDK 之中的 javac 這個編譯器,但是往往在開發一個大型的專案之時,我們通常會利用 IDE 來完成相關的程式開發、除錯、編譯及包裝的動作,進而與一些應用伺服器或是資料庫做相關的整合。但是,往往開發習慣…

Zabbix 如何实现邮件报警通知以及免费短信报警通知

前提条件:(1) zabbix服务器端已经成功安装并且运行。(2) zabbix客户端已经成功建立并且运行。1 下载并且安装msmtp软件Wget http://sourceforge.net/projects/msmtp/files/msmtp/1.4.32/msmtp-1.4.32.tar.bz2/downloadtar jxvf msmtp-1.4.32.tar.bz2cd msmtp-1.4.32…