一键安装zabbix percona mysql插件监控mysql

运行环境:centos7 python2
yum -y install python
需要将Server和ServerActive参数修改为自己的zabbix server的IP
vi zabbix_auto_agent.py

#!/usr/bin/python
# coding=utf-8 
import os
import socket
os.system("yum -y install unixODBC php php-mysql")
print("============================创建 zabbix账号==================================")
cc1=open('/tmp/mysql_zabbix_script','w')
cc1.write('GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO \'zabbix\'@\'localhost\' IDENTIFIED BY \"zabbix\";')
cc1.close()
#set mysql root password
print("===========================") 
mysqlrootpwd=raw_input("Please input the root password of mysql:")
#which MySQL Version do you want to install?
print("===========================")
os.system("mysql -u root -p"+mysqlrootpwd+"< /tmp/mysql_zabbix_script")
os.system("rm -f /tmp/mysql_zabbix_script")
print("============================ zabbix账号创建完成==================================")
#Install zabbix
print("============================Install zabbix==================================")
os.system("cd $cur_dir")
#zabbix directory configuration
os.system("groupadd zabbix")
os.system("useradd zabbix -g zabbix -s /sbin/nologin")
os.system("wget http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-agent-3.4.12-1.el7.x86_64.rpm")
os.system("rpm -ivh /root/zabbix-agent-3.4.12-1.el7.x86_64.rpm")
os.system("/usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf")
host=socket.gethostname()
cc2=open('/etc/zabbix/zabbix_agentd.conf','w')
cc2.write('PidFile=/var/run/zabbix/zabbix_agentd.pid\nLogFile=/var/log/zabbix/zabbix_agentd.log\nLogFileSize=0\nServer=10.21.23.12\nServerActive=10.21.23.12\nHostname='+host+'\nInclude=/etc/zabbix/zabbix_agentd.d/')
cc2.close()
os.system("systemctl restart zabbix-agent.service")
print("============================zabbix install completed=========================")
print("============================install percona  =========================")
os.system("wget https://www.percona.com/downloads/percona-monitoring-plugins/1.1.6/percona-zabbix-templates-1.1.6-1.noarch.rpm")
os.system("rpm -ivh percona-zabbix-templates-1.1.6-1.noarch.rpm")
os.system("cp /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/")
cc3=open('/tmp/localhost-mysql_cacti_stats.txt','w')
cc3.close()
os.system("chown -R zabbix.zabbix /tmp/localhost-mysql_cacti_stats.txt")
os.system("sed -i \"30s/cactiuser/zabbix/\" /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php")
os.system("sed -i \"31s/cactiuser/zabbix/\" /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php")
os.system("mkdir /var/lib/zabbix/percona/scripts/ -p")
cc4=open('/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh','w+')
cc4.write('#!/bin/sh\n# The wrapper for Cacti PHP script.\n# It runs the script every 5 min. and parses the cache file on each following run.\n# Version: 1.1.6\n#\n# This program is part of Percona Monitoring Plugins\n# License: GPL License (see COPYING)\n# Copyright: 2016 Percona\n# Authors: Roman Vynar\n')
cc4.close()
cc5=open('/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh','a+')
cc5.write('ITEM=$1\nHOST=localhost\nDIR=`dirname $0`\nCMD=\"/usr/bin/php -q $DIR/ss_get_mysql_stats.php --host $HOST --items gg\"\nCACHEFILE=\"/tmp/$HOST-mysql_cacti_stats.txt\"\n')
cc5.write('if [ \"$ITEM\" = \"running-slave\" ]; then\n    # Check for running slave\n    RES=`HOME=~zabbix mysql -uzabbix -p\'zabbix\' -e \'SHOW SLAVE STATUS\G\' 2>/dev/null | egrep \'(Slave_IO_Running|Slave_SQL_Running):\' | awk -F: \'{print $2}\' | tr \'\\n\' \',\'`\n')
cc5.write('    if [ "$RES" = " Yes, Yes," ]; then\n        echo 1\n    else\n        echo 0\n    fi\n    exit\nelif [ -e $CACHEFILE ]; then\n    # Check and run the script\n    TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`\n')    
cc5.write('    TIMENOW=`date +%s`\n    if [ `expr $TIMENOW - $TIMEFLM` -gt 300 ]; then\n        rm -f $CACHEFILE\n        $CMD 2>&1 > /dev/null\n    fi\nelse\n    $CMD 2>&1 > /dev/null\nfi\n')
cc5.write('# Parse cache file\nif [ -e $CACHEFILE ]; then\n    cat $CACHEFILE | sed \'s/ /\\n/g; s/-1/0/g\'| grep $ITEM | awk -F: \'{print $2}\'\nelse\n')
cc5.write('    echo \"ERROR: run the command manually to investigate the problem: $CMD\"\nfi')
cc5.close()
os.system("mkdir /var/lib/mysql/")
os.system("ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock")
os.system("chmod 755 -R /etc/zabbix/")
os.system("chmod 755 -R /var/lib/zabbix/")
os.system("systemctl restart zabbix-agent.service")

chmod +x zabbix_auto_agent.py
./zabbix_auto_agent.py
在zabbix里配置主机和Percona MySQL Server Template模板即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值