赞
踩
运行环境: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模板即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。