热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用nagios监控MySQL数据库的主从复制

检测mysql主从一、先安装nrpe,这样可以实现在远程主机上执行命令nagios主机192.168.24.1mysql主机192.168.24.3被监控主机安装nrpe的server端tarfvxznrpe*.tar.gz./configure--prefix/usr/local/nagiosuseraddnagio

检测mysql 主从
一、先安装 nrpe,这样可以实现在远程主机上执行命令
nagios主机 192.168.24.1
mysql主机 192.168.24.3
被监控主机
安装nrpe的server端
tar fvxz nrpe*.tar.gz
./configure --prefix=/usr/local/nagios
useradd nagios
make
make install-daemon
make install-daemon-config
make install-xinetd
make install
把插件拷贝给监控主机nagios
scp /usr/local/nagios/libexec/check_nrpe   root@192.168.24.1ip:/usr/local/nagios/libexec
在被监控主机开启nrpe服务
vim /etc/xinetd.d/nrpe
# default: on
# description: NRPE (Nagios Remote Plugin Executor)
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.24.1  #监控主机的ip,保证他可以连接进来!
}
vim /etc/services
nrpe 5666/tcp
service xinetd restart

在监控主机上测试
[root@server1 objects]# /usr/local/nagios/libexec/check_nrpe -H 192.168.18.188
NRPE v2.12

在被监控主机安装插件

vim /usr/local/nagios/etc/nrpe.cfg
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_u]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200

通过以上字段来定义命令,以及接收命令后执行的插件,就是可以在远程主机上执行的命令。

定义服务,来检测一下
define host {
host_name       mysql-server
alias           nrpe-server
address         192.168.24.3
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 command {
command_name    check_nrpe
command_line    /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

重启nagios服务!

二、建立 MySQL检测用户

mysql> GRANT REPLICATION CLIENT ON *.* TO ztz@localhost identified by '123';
mysql> flush privileges;

编写插件
被监控主机上
vim /usr/local/nagios/libexec/check_slave
#!/bin/bash
MYSQLUSER=ztz
MYSQLPS=123
MYSQLBIN=/usr/bin/mysql
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_NUM=$($MYSQLBIN -u$MYSQLUSER -p$MYSQLPS -e "show slave status\G" | grep Running |
grep Yes | wc -l)
if [ $? -ne 0 ];then
echo "Please Check the Plugins"
exit $STATE_UNKNOWN fi
if [ "${STATE_NUM}" -eq 2 ];then echo "Check OK,MySQL Replication is running"
exit $STATE_OK
else echo "Check Critical,MySQL Replication is error"
exit $STATE_CRITICAL
fi

被监控主机测试
[root@Nagiost ~]# cd /usr/local/nagios/libexec/
[root@Nagios-Client libexec]# chmod +x check_slave
[root@Nagios-Client libexec]# ./check_slave
Check OK,MySQL Replication is running
修改被监控主机的 nrpe.confg
[root@Nagios-Client ~]# vi /usr/local/nagios/etc/nrpe.cfg
添加:
command[check_slave]=/usr/local/nagios/libexec/check_slave

修改监控主机服务定义文件
[root@Nagios-Server ~]# vi /usr/local/nagios/etc/objects/localhost.cfg
添加: define service {
host_name  Nagios-Client 
service_description  check-slave 
check_period  24x7 
max_check_attempts  4 
normal_check_interval  3 
retry_check_interval  2  
notification_interval  10 
notification_period  24x7 
notification_options  w,u,c,r 
check_command  check_nrpe!check_slave 

3>重新加载 Nagios
[root@Nagios-Server ~]# /etc/init.d/nagios reload
Running configuration check...done.
Reloading nagios configuration...done
4>登陆验证

 

 

三、设置短信报警
1 install
rpm -ivh /tmp/msmtp-1.4.6-1.el5.scopserv.i386.rpm

2 config
[187 tmp]#cd  /etc/
[187 tmp]#vim msmtprc 默认是没有这个文件
account default
host smtp.163.com
port 25
from 13911111111@163.com
tls off
auth login
user 13810599111
password 123
logfile /tmp/msmtp.log


3 mutt
vim /etc/Muttrc
2753 set sendmail="/usr/bin/msmtp"
2754 set from="13911111111@163.com
"
2755 set realname="iori"
测试:
4 mutt+msmtp
echo "hello" |  mutt -s "test" 13911111111@163.com
修改一下mail的内个就行了
5  nagios---command.cfg
define command{
command_name    notify-by-sms
command_line    /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mutt -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$
        }



define contact {
        contact_name  ydl
alias           ydl
host_notification_period        24x7
host_notification_options       d,u,r
service_notification_period     24x7
service_notification_options    w,u,c,r
service_notification_commands   notify-by-sms 
host_notification_commands      notify-by-sms
        email   13911111111@163.com
}
推荐阅读
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 在Python开发过程中,随着项目数量的增加,不同项目依赖于不同版本的库,容易引发依赖冲突。为了避免这些问题,并保持开发环境的整洁,可以使用Virtualenv和Virtualenvwrapper来创建和管理多个隔离的Python虚拟环境。 ... [详细]
  • PostgreSQL 10 离线安装指南
    本文详细介绍了如何在无法联网的服务器上进行 PostgreSQL 10 的离线安装,并涵盖了从下载安装包到配置远程访问的完整步骤。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文介绍了一种在 MySQL 客户端执行 NOW() 函数时出现时间偏差的问题,并详细描述了如何通过配置文件调整时区设置来解决该问题。演示场景中,假设当前北京时间为2023年2月17日19:31:37,而查询结果显示的时间比实际时间晚8小时。 ... [详细]
  • 在成功安装和测试MySQL及Apache之后,接下来的步骤是安装PHP。为了确保安全性和配置的一致性,建议在安装PHP前先停止MySQL和Apache服务,并将MySQL集成到PHP中。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 在Fedora 31上部署PostgreSQL 12
    本文详细介绍如何在Fedora 31操作系统上安装和配置PostgreSQL 12数据库。包括环境准备、安装步骤、配置优化以及安全设置,确保数据库能够稳定运行并提供高效的性能。 ... [详细]
author-avatar
POWER_WALKING_823
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有