zoukankan      html  css  js  c++  java
  • zabbix日常监控项mysql(七)

    参考文档:

    percona官方文档:https://www.percona.com/doc/percona-monitoring-plugins/LATEST/zabbix/index.html

    zabbix2.4的安装方法:https://www.cnblogs.com/irockcode/p/6752316.html

    其他博主文档:http://blog.51cto.com/xiaozhagn/2059713

    先简单搭建mysql服务,用于后续zabbix监控来用

    centos7.4客户端安装agent

    http://blog.csdn.net/jas0n_liu/article/details/77099626

    #关闭SElinux(临时关闭)
    [root@db01 ~]# getenforce 
    Enforcing
    [root@db01 ~]# setenforce 0
    [root@db01 ~]# getenforce 
    Permissive
    #永久关闭
    sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 
    setenforce 0
    
    #防火墙设置,允许zabbix-agent的10050端口通过
    firewall-cmd --permanent --add-port=10050/tcp 
    firewall-cmd --reload
    #或关闭防火墙
    systemctl stop firewalld 
    systemctl disable firewalld
    #开始安装zabbix-agetn
    rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    yum install zabbix-sender zabbix-agent zabbix-get
    #更改配置文件vim /etc/zabbix/zabbix_agentd.conf
    Server=<zbx-server的ip> 
    ServerActive=<zbx-server的ip> 
    Hostname=<本机的名字>
    
    #设置开启启动项
    systemctl start zabbix-agent.service 
    systemctl enable zabbix-agent.service
    
    #永久修改主机名:
    hostnamectl set-hostname xxx 

     

    安装mysql数据库(模拟测试使用)

    http://www.cnblogs.com/bigbrotherer/p/7241845.html   #centos7.4 安装数据库

     在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB

    1、下载并安装MySQL官方的 Yum Repository
    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    yum -y install mysql57-community-release-el7-10.noarch.rpm
    
    2、安装mysql yum -y install mysql-community-server

    这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。
    至此MySQL就安装完成了,然后是对MySQL的一些设置。

     

    mysql的基础设置

     

    #启动mysql
    systemctl start  mysqld.service
    systemctl status mysqld.service

    此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

     

    [root@db01 ~]# grep "password" /var/log/mysqld.log
    2018-03-09T08:20:27.838373Z 1 [Note] A temporary password is generated for root@localhost: p(+mL;zI:9+T     #密码就是它啦!

    [root@db01 ~]# mysql -uroot -p
    Enter password:

    #如果需要设置简易密码可以先执行下边两条,否则略过

    mysql> set global validate_password_policy=0;
    mysql> set global validate_password_length=1;

    #设置密码

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'zabbix123456';

    #为了安全,可以使用下边的授权方式

    GRANT USAGE,PROCESS,SUPER,REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'zabbixagentd'@'localhost' IDENTIFIED BY 'SWSHgzp3Pj3vcIdK';

    flush privileges;

    #但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

    yum -y remove mysql57-community-release-el7-10.noarch

    到此安装mysql完成!!!

      

     以下便是zabbix-percona的安装过程

    zabbix就自带的MySQL插件来监控mysql数据库,但是你会发现自带的mysql监控项是很少的,为了做更详细的监控,percona提供了这个详细监控的模版以及脚本,解决了监控不全面的问题。

     https://www.percona.com/downloads/percona-monitoring-plugins/LATEST/

      

    1、percona插件安装

     1 #官网下载percona的rpm包,我这里是下载的是1.1.8版本的
     2 cd /usr/local/src/
     3 yum -y install https://www.percona.com/downloads/percona-monitoring-plugins/percona-monitoring-plugins-1.1.8/binary/redhat/7/x86_64/percona-zabbix-templates-1.1.8-1.noarch.rpm
     4 
     5 #安装percona的rpm包,安装php插件
     6 yum -y install percona-zabbix-templates php php-mysql
     7 
     8 #查看percona-zabbix-templates的安装信息
     9 [root@server zabbix]# rpm -ql percona-zabbix-templates
    10 /var/lib/zabbix/percona
    11 /var/lib/zabbix/percona/scripts
    12 /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh   #监控获取MySQL状态的
    13 /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php    #配置连接数据库用户名密码的,用shell来调用PHP。
    14 /var/lib/zabbix/percona/templates
    15 /var/lib/zabbix/percona/templates/userparameter_percona_mysql.conf    #要放在agent端/etc/zabbix/zabbix_agentd.d/下面的
    16 /var/lib/zabbix/percona/templates/zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml  #这个是模板,需要导入到zabbix3.4中。
    17     #使用sz 把该模板导出到本地,再导入到zabbix2.4中后再导出该模板才能正常导入到zabbix3.4中;
    18 
    19     已倒好的模板地址如下,可直接导入到zabbix3.4中:
    20 
    21      centos7版:https://pan.baidu.com/s/1-dTDwYNCCrvIh01dO4BEHA
    22 
    23     centos6版:链接:https://pan.baidu.com/s/1MsXMPwC2xPA78z8bnrO5Eg 密码:7i7d
    24 
    25  
    26 
    27 [root@db01 src]# ps -ef|grep mysql  #mysql的安装路径 /usr/sbin/mysql
    28 mysql 10587 1 0 16:20 ? 00:00:01 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
    29 root 10719 10630 0 16:49 pts/2 00:00:00 grep --color=auto mysql

     

    2、进入templates目录,把模板文件复制到zabbix_agentd.conf.d目录下 

    [root@localhost ~]# cd /var/lib/zabbix/percona/templates/
    [root@localhost templates]# ll
    总用量 284
    -rw-r--r--. 1 root root  18866 1月  10 22:46 userparameter_percona_mysql.conf
    -rw-r--r--. 1 root root 269258 1月  10 22:46 zabbix_agent_template_percona_mysql_server_ht_2.0.9-sver1.1.8.xml
    [root@localhost templates]# mv userparameter_percona_mysql.conf /etc/zabbix/zabbix_agentd.d/
    [root@localhost templates]#chown -R zabbix.zabbix /etc/zabbix/
    [root@localhost templates]#chmod -R 755 /etc/zabbix/zabbix_agentd.d
    #修改配置文件

    #重启agent服务
    systemctl restart zabbix-agent.service

      

    3、修改监控脚本

    参考文档:https://www.cnblogs.com/kevingrace/p/6256395.html

    修改/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh脚本

    -----------------------------------注意----------------------------------
    若mysql没有使用默端口3006,比如mysql使用的是3317。则还需要修改如下脚本文件,记住不要在这里被坑了!改端口号码文件  #本次为3306
    1-> 这里要先建好这个文件,否则会报rm权限错误
    touch /tmp/localhost--mysql_zabbix_stats.txt:3317
    chown -R zabbix.zabbix /tmp/localhost-mysql_zabbix_stats.txt:3317
    #如果mysql使用的是默认的3306端口,那么就不用修改端口了(即将上面的:3317去掉)!

    2-> 修改脚本

     [root@db01 scripts]# vim get_mysql_stats_wrapper.sh

    CACHEFILE="/tmp/$HOST-mysql_cacti_stats.txt "
    换成:
    CACHEFILE="/tmp/$HOST-mysql_zabbix_stats.txt"
     
    TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_cacti_stats.txt`
    换成:
    TIMEFLM=`stat -c %Y /tmp/$HOST-mysql_zabbix_stats.txt`
     
    #注释掉下一行,添加echo一行
    #rm -f $CACHEFILE

    echo "" > $CACHEFILE

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

    换成:

    RES=`/usr/sbin/mysql -uroot -pzabbix123456 -e 'SHOW SLAVE STATUSG' | egrep '(Slave_IO_Running|Slave_SQL_Running):' | awk -F: '{print $2}' | tr ' ' ','`

     

      从库记得添加下边这行,要不mysql-salve监控不到;最好主从都加。

    4、然后修改/var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php脚本,这里主要修改用户名密码 

    $mysql_user = 'root';
    $mysql_pass = 'zabbix123456';
    $mysql_port = 3306;

      

    5、其他操作

    [root@db01 scripts]# chown -R zabbix.zabbix /var/lib/zabbix/
    [root@db01 scripts]# chmod -R 755 /var/lib/zabbix/percona/scripts/
    替换命令::%s/from/to/g

      

    6、测试、排除故障

    参考文档:http://blog.csdn.net/mchdba/article/details/51447560

    zabbix-agent端测试

    [root@db01 scripts]# /usr/bin/php -q /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php --host localhost --items gg
    gg:6

    [root@db01 ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh nj
    34673

    zabbix-server端测试

    [root@zabbix ~]# zabbix_get -s 10.0.0.111 -p 10050 -k "MySQL.Handler-commit"
    5
    [root@zabbix ~]# zabbix_get -s 10.0.0.111 -p 10050 -k "MySQL.Threads-connected"
    1
    

    7、zabbix web页面添加主机的时候选择mysql模板即可

     

    #需要参考的博文:

    搭建主要参考:https://www.cnblogs.com/kevingrace/p/6256395.html

    排错主要参考:http://blog.csdn.net/mchdba/article/details/51447560

    瞄了一眼:https://www.cnblogs.com/caoxiaojian/p/5706992.html

    - - - -  - - - - - -以下知识待用到后再研究 -  - - - - - - - - -

    测试脚本能否获取到数据库的状态信息

    该脚本需测试两部分内容

    1. MySQL实例本身的状态变量

    2. MySQL是否为Slave

    测试MySQL实例本身的状态变量

    # /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh gg

    测试MySQL是否为Slave

    # /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slave

    返回0和1是正常值,返回“Access denied”则有问题。

  • 相关阅读:
    linux同一客户端多个git账号的配置
    linux同一台机子上用多个git 账号
    执行ssh-add时出现Could not open a connection to your authentication agent
    国内常用NTP服务器地址及IP
    PHP双引号的隐患
    mysql 累加求和
    php实现Facebook风格的 time ago函数
    Mysql之数据库设计规范
    搭建Git服务器
    win7下如何根据端口号杀掉进程
  • 原文地址:https://www.cnblogs.com/huangyanqi/p/8531450.html
Copyright © 2011-2022 走看看