Centos下nagios监控mysql主从配置的例子

方法一

一、mysql从服务器设置

1、mysql从服务器用户添加

 代码如下 复制代码

执行如下语句添加用户:
mysql> GRANT REPLICATION CLIENT ON *.* TO monitor@localhost IDENTIFIED BY 'PassWord';
2、下载check-mysql-slave.pl脚本
cd /usr/local/bin/
wget http://www.centos.bz/wp-content/uploads/2012/10/check-mysql-slave.pl
chmod +x check-mysql-slave.pl
3、在mysql从服务器上配置extend mysql-slave
在/etc/snmp/snmpd.conf文件的末尾添加如下代码:
extend mysql-slave /usr/local/bin/check-mysql-slave.pl --user monitor --pass PassWord --sock /var/lib/mysql/mysql.sock
注意相关参数修改为自己的。
之后重载snmp:
service snmpd reload

二、监控服务器设置

1、下载check_snmp_extend.sh脚本

 代码如下 复制代码
mkdir /usr/local/nagios/libexec.local
cd /usr/local/nagios/libexec.local
wget http://www.centos.bz/wp-content/uploads/2012/10/check_snmp_extend.sh
chmod +x check_snmp_extend.sh
2、定义USER10变量
在文件/usr/local/nagios/etc/resource.cfg添加如下变量:
$USER10$=/usr/local/nagios/libexec.local
3、定义check_snmp_extend命令
在/usr/local/nagios/etc/objects/commands.cfg添加:
define command{
command_name check_snmp_extend
command_line $USER10$/check_snmp_extend.sh $HOSTADDRESS$ $ARG1$
}

4、定义监控mysql主从服务

在主机配置文件,如/usr/local/nagios/etc/objects/www.centos.bz.cfg中添加如下service(注意,此www.cnetos.bz.cfg文件已经在nagios.cfg配置文件中包含)

 代码如下 复制代码
define host{
        use                     linux-server
        host_name               www.centos.bz
        alias                   www.centos.bz
        address                 142.4.33.74
        }
......
......
define service{
## This is an example service configured as
## extend servicename /path/to/service-check.sh
## on remote.server in /etc/snmp/snmpd.conf
use  generic-service
host_name  www.centos.bz
service_description mysql slave status
check_command  check_snmp_extend!mysql-slave
}

方法二

下面是监控MYSQL复制某个从服务器的输出:

 代码如下 复制代码
mysql> show slave statusG
*************************** 1. row***************************
              Slave_IO_State: Waiting for master to send event
                 Master_Host: 192.168.93.16
                 Master_User: rep1
                 Master_Port: 3306
               Connect_Retry: 60
             Master_Log_File: mysql-bin.000004
         Read_Master_Log_Pos: 1752541
              Relay_Log_File: hy-mysql3-relay-bin.000088
               Relay_Log_Pos: 2339
       Relay_Master_Log_File: mysql-bin.000004
            Slave_IO_Running: Yes
           Slave_SQL_Running: Yes
             Replicate_Do_DB:

这个输出,最关键处就是”Slave_IO_Running: Yes“和“Slave_SQL_Running:Yes”,这两个值全是”Yes”就表明主从复制正常,否则就是有问题。
操作步骤:
1、在主数据库服务器增加一个用户,给予较低的权限,操作为

 代码如下 复制代码
mysql > grantReplication client on *.* to  ‘nagios’@'%’identified by ‘nagios’;
mysql> flush privileges;

2、登陆从服务器验证一下,看是否正常。操作为 # mysql -unagios -pnagios -e “show slavestutasG”  注意:这个操作是在 shell下操作的!!
3、在从服务器安装nrpe,然后加入一行”command[check_mysql_slave]=/usr/local/nrpe/libexec/chech_mysql_slave”.
4、编写脚本/usr/local/nrpe/libexec/check_mysql_slave(这是监控其作用的核心),其内容如下:

 代码如下 复制代码
#!/bin/sh
declare -a  slave_is
slave_is=($(/usr/local/mysql/bin/mysql -unagios-pnagios  -e “show slave statusG”|grep Running|awk ‘{print $2}’))
if [ "${slave_is[0]}” = “Yes” -a “${slave_is[1]}” = “Yes” ]
   then
   echo “OK -slave isrunning”
   exit 0
else
   echo “Critical -slave iserror”
   exit 2
fi

5、手动运行这个脚本,观察输出。
6、执行 check_nrpe -H ip -c check_mysql_slave 观察其输出。
7、修改nagios,并测试。
8、功能测试(略)

方法三

首先定义主机: 
 

 代码如下 复制代码
vim /usr/local/nagios/etc/objects/localhost.cfg       
define host {
        host_name                    joker
        alias                              test
        address                        192.168.xx.xx
        check_command          check-host-alive
        notification_options      d,u,r
        check_interval                1
        max_check_attempts      2
        contact_groups                admins
        notification_interval  10
        notification_period    24x7
 }
 
定义服务:
 
define service {
        host_name          joker
        service_description    nrpe
        check_period        24x7
        normal_check_interval  2
        retry_check_interval    1
        max_check_attempts      5
        notification_period    24x7
        notification_options    w,u,c,r
        check_command      check_nrpe!check_mysql
 }
 
定义command:
 
define command {
        command_name    check_nrpe
        command_line    /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
 }
 
在被监控主机上:
 
安装nrpe
 tar fvxz nrpe*.tar.gz
 ./configure --prefix=/usr/local/nagios
 useradd nagios
 make all
 make install
 make install-daemon
 make install-daemon-config
 make install-xinetd
 
scp /usr/local/nagios/libexec/check_nrpe  root@192.168.18.105:/usr/local/nagios/libexec
 
vim /etc/xinetd.d/nrpe
 service nrpe
 {
        flags          = REUSE
        socket_type    = stream   
        port            = 5666   
        wait            = no
        user            = nagios
        group          = nagios
        server          = /usr/local/nagios/bin/nrpe
        server_args    = -c /usr/local/nagios/etc/nrpe.cfg --inetd
        log_on_failure  += USERID
        disable        = no
        only_from      = 192.168.18.105 
}
 vim /etc/services
 
在最后添加nrpe 5666/tcp
 service xinetd restart
 
vim /usri/local/nagios/etc/nrpe.cfg
 command[check_mysql]=/usr/local/nagios/libexec/check_mysql
 
vim /usr/local/nagios/libexec/check_mysql
 #!/bin/bash
 master=`mysql -h 192.168.18.165 -u hello -p123 -e 'show master status' &> /tmp/123 | awk 'NR==2{print $2}' /tmp/123`
 slave=`mysql -e 'show slave status' &> /tmp/234 | awk =F: '{if($1~/Exec/)print $2}' /tmp/234`
 if [ $master -eq $slave ]; then
    echo "ok"
    rm -fr /tmp/123
    rm -fr /tmp/234
    exit 0
 else
    echo "error"
    mv /tmp/123 /tmp/err1
    mv /tmp/234 /tmp/err2
    exit 2
 

最后进行测试,本人亲测OK~~~

时间: 2024-11-01 01:04:31

Centos下nagios监控mysql主从配置的例子的相关文章

Linux下Nagios监控linux+windows的安装与配置

一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒

MySQL主从配置的一些总结

一.做了mysql主从也有一段时间了,这两天检查磁盘空间情况,发现放数据库的分区磁盘激增了40多G,一路查看下来,发现配置好主从复制以来到现在的binlog就有40多G,原来根源出在这里,查看了一下my.cnf,看到binlog的 size是1G就做分割,但没有看到删除的配置,在mysql里show了一下variables: mysql>show variables like '%log%'; 查到了, | expire_logs_days | 0 | 这个默认是0,也就是logs不过期,这个是

Linux下Nagios的安装与配置

Nagios是企业普遍使用的最具影响力的网络信息监视系统之一,它可以动态监视指定的网络状态,并在状态异常时发出警告音或邮件报警通知运维人员.监控的类型和警报定时器是完全可定制的. Nagios的另一强大功能是它能同时监测主机和服务.例如,它可以同时监测到IP地址和TCP/UDP端口号.为进一步阐述此功能,我们假定有台需要监测的web服务器,Nagios可运用在服务器上基于IP/服务器名运行ping命令的方法检测服务器是否在线,同时当服务器的RTT(往返时延)增加时,Nagios会随时告警.另外,

linux下Cacti监控MySQL数据库状态例子

1.监控脚本下载及配置 wget http://mysql-cacti-templates.googlecode.com/files/better-cacti-templates-1.1.8.tar.gz tar zxvf better-cacti-templates-1.1.8.tar.gz cd better-cacti-templates-1.1.8 cp scripts/ss_get_mysql_stats.php /var/www/html/cacti/scripts/ 监控mysql

Mysql主从配置,实现读写分离

原文:Mysql主从配置,实现读写分离 大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想.这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力.Ok切入今天微博主题,利用MySQL主从

CentOS 下yum安装mysql、jdk和tomcat的方法_Linux

0. 创建个人文件夹 # 使用 yum 安装tomcat 和 mysql # 创建文件夹 cd /usr/local mkdir hehe 1. 安装rzsz # 1. 安装rzsz yum list lrzsz* yum install lrzsz -y 2. 安装JDK,path之类的已经自动设置好了 # 2. 安装JDK yum list java* yum install java-1.7.0-openjdk* -y 3. 安装mysql # 3. 安装mysql yum list my

centos 6.5设置mysql主从同步过程记录

在centos 6.5上设置了mysql主从功能,记录一下. 服务器1(主) IP:192.168.1.201 系统版本:centos 6.5 mysql版本:mysql 5.5 服务器2(从) IP:192.168.1.202 系统版本:centos 6.5 mysql版本:mysql 5.5 这里两台服务器的系统版本和mysql版本均一致,这也是官方推荐的做法.在开始设定之前,最好能确保主库和从库一致. 1.主库和从库创建同步用户 mysql> grant replication slave

Docker mysql 主从配置详解及实例_Mysql

Docker mysql 主从配置 1.首先创建两个文件my-m.cnf(主库配置) .my-s.cnf(从库配置) my-m.cnf 内容如下 # Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU

Linux下Nagios的安装与配置方法

一.Nagios简介 Nagios是一款开源的电脑系统和网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设置,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios原名为NetSaint,由Ethan Galstad开发并维护至今.NAGIOS是一个缩写形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻译为圣徒