re21 发表于 2014-12-9 08:50:40

使用zabbix自带MySQL监控模板监控MySQL

目前使用的zabbix版本是2.2.3,自带MySQL监控模板Template App MySQL,只是监控项目比较少。如果只是想对MySQL进行基本的监控,可以使用这个模板,如果要详细监控MySQL的各种信息,例如数据库的各种状态,主从复制状态,InnoDB状态等信息需要另外编写模板。后续再讨论。


参考文章

https://zabbix.org/mw/images/d/d4/Template_App_MySQL-2.2.0.xml
http://blog.themilkyway.org/2013/11/how-to-monitor-mysql-using-the-new-zabbix-template-app-mysql/







[*]监控原理
建立MySQL账号
GRANT USAGE ON *.* TO 'zabbixagent'@'localhost' IDENTIFIED BY 'zabbixagent';
flush privileges;

    mysql和mysqladmin默认会读取连接参数的文件顺序是
    /etc/my.cnf
    /etc/mysql/my.cnf
    /usr/local/mysql/etc/my.cnf
    ~/.my.cnf
    --defaults-file=   只在指定的文件中读取默认参数
    --defaults-extra-file=    全局文件读取完后再读取指定的文件
   
    在/usr/local/zabbix/etc/目录下创建一个 .my.cnf 文件


1
2
3
4
5
6

user=zabbixagent
password=zabbixagent

user=zabbixagent
password=zabbixagent





    例如
    mysql --defaults-extra-file=.my.cnf-v                   详细模式登陆MySQL
    mysqladmin--defaults-extra-file=.my.cnfstatus         查看MySQL Server状态
    mysqladmin--defaults-extra-file=.my.cnfping         查看MySQL Server是否存活

    echo "show global status where Variable_name='Uptime';"|mysql --defaults-file=.my.cnf-N

2.添加zabbix子配置文件
userparameter_mysql.conf

1
2
3
UserParameter=mysql.status,echo "show global status where Variable_name='$1';"|mysql --defaults-file=/usr/local/zabbix/etc/.my.cnf -N|awk '{print $$2}'
UserParameter=mysql.ping,mysqladmin --defaults-file=/usr/local/zabbix/etc/.my.cnf ping|grep -calive
UserParameter=mysql.version,echo "select version();"|mysql --defaults-file=/usr/local/zabbix/etc/.my.cnf -N





这里要特别注意一下,awk后面的print $$2. 如果写成print $2 那么通过zabbix_get将获取不到第二列,二是直接显示正行数据。


添加后重新启动zabbix-agent
service zabbix-agent restart

3.在zabbix server端或zabbix proxy利用zabbix_get命令进行取值测试

$ /usr/local/zabbix/bin/zabbix_get -s 10.10.41.25 -k mysql.version
5.5.21-log

$ /usr/local/zabbix/bin/zabbix_get -s 10.10.41.25 -k mysql.ping
1

$ /usr/local/zabbix/bin/zabbix_get -s 10.10.41.25 -k mysql.status
0



页: [1]
查看完整版本: 使用zabbix自带MySQL监控模板监控MySQL