Nagios监控部署+添加Linux主机Mysql+Windows主机

搭建Nagios监控服务

实验环境要求:

一台Centos7系统(本次采用7.4)

一台装好mysql服务的Centos系统(本次Mysql5.7)

一台Winows主机(本次Windows7)

准备好Nagios相关安装包

关闭selinux

关闭firewalld

本机IP:192.168.1.227/24

MysqlIP:192.168.1.250/24

Windows:192.168.1.37/24

链接:https://pan.baidu.com/s/178iu5me0HxnCzTj-SJGWkw 密码:b1nj (Nagios工具包)

实验效果:

监控mysql运行状态

监控Windows系统主机运行状态

一、安装完系统后配置网络yum源,mysql源,epel

清空系统自带的yum源

[root@lnmp~]# rm -f /etc/yum.repos.d/*

1.1 配置本地yum源(这一步可以忽略,个人习惯配置好本地源)

创建光盘挂载目录

[root@lnmp~]# mkdir /mnt/cdrom

将光盘挂载到目录下

[root@lnmp~]# mount /dev/sr0 /mnt/cdrom/

查看是否挂载成功

[root@lnmp~]# vim /etc/yum.repos.d/local-base.repo

#以下内容写进配置文件中

[local]

name=local-base

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=0

1.2 配置网络yum源(重要)

阿里yum源下载地址

https://opsx.alibaba.com/mirror

找到Centos系统点击后面的帮助

下载完成后还要修改一下配置才能使用

[root@lnmp~]# vim /etc/yum.repos.d/CentOS-Base.repo

使用下面的命令进行全局替换,Centos7.4系统是7.4.1708其他版本请自己到官网了解

:%s/$releasever/7.4.1708/g

:%s/gpgcheck=1/gpgcheck=0/g

:wq保存退出。清除yum缓存,刷新yum

[root@lnmp~]# yum clean all && yum repolist

1.3 安装epel源

[root@lnmp~]# yum -y install epel-release

1.4 下载,上传,安装Mysql源

下载地址:

https://www.mysql.com/

安装Centos系统上传工具

[root@lnmp~]# yum -y install lrzsz

上传Mysql源到Centos系统上

[root@lnmp~]# rz

查看是否上传成功

[root@lnmp~]# ls

mysql80-community-release-el7-1.noarch.rpm

使用rpm安装mysql源

[root@lnmp~]# rpm -ivh mysql80-community-release-el7-1.noarch.rpm

本次采用Mysql5.7做实验,所以需要修改配置文件

[root@lnmp~]# vim /etc/yum.repos.d/mysql-community.repo

关闭8.0版本的mysql源

:%s/enabled=1/enabled=0/g

关闭验证

:%s/gpgcheck=1/gpgcheck=0/g

启用5.7版本的mysql源

清除缓存,刷新缓存

[root@lnmp~]# yum clean all && yum repolist

Yum源环境准备完成

二、安装Nagios监控系统

2.1 安装并启动Apache

[root@lnmp~]# yum install -y httpd ; systemctl start httpd

2.2 解决Nagios相关依赖包

[root@lnmp~]# yum install -y gcc glibc glibc-common php gd gd-devel libpng libmng libjpegzlib

2.3 创建Nagios运行用户和组(请与我保持一直,不要搞个性化)

[root@lnmp~]# useradd nagios

[root@lnmp~]# groupadd nagcmd

[root@lnmp~]# usermod -G nagcmd nagios

[root@lnmp~]# usermod -G nagcmd apache

2.4 安装Nagios

解压Nagios包

[root@lnmp~]# unzip Nagios.zip

Archive:  Nagios.zip

  inflating: NSClient.-0.3.3-x64.msi 

  inflating: nagios-3.5.1.tar.gz    

  inflating: nagios-cn-3.2.3.tar.bz2 

  inflating: nagios-plugins-2.1.1.tar.gz 

 extracting: nrpe-2.15.tar.gz       

  inflating: pnp4nagios-0.6.26.tar.gz 

 extracting: vautour_style.zip      

  inflating: NSClient.-0.3.3-Win32.msi 

解压Nagios工具包

[root@lnmp~]# tar xf nagios-3.5.1.tar.gz

切换到Nagios工具包目录下

[root@lnmp~]# cd nagios

源码编译安装,指定运行组

[root@lnmpnagios]# ./configure --with-command-group=nagcmd

查看需要安装哪些功能模块

[root@lnmpnagios]# make all

一次性安装全部功能模块

[root@lnmpnagios]# make install && make install-init && makeinstall-commandmode && make install-config && makeinstall-webconf

2.5 配置nagios账户密码

查看管理Nagios账号的密码存放位置

[root@lnmpnagios]# vim /etc/httpd/conf.d/nagios.conf

使用htpasswd设置nagiosadmin账户的密码,本机设置123456

2.6 测试Nagios

以守护进程方式启动

[root@lnmp nagios]#/usr/local/nagios/bin/nagios-d /usr/local/nagios/etc/nagios.cfg

完成Nagios安装后,接下来就是安装一下插件去采集被监控服务器的信息

三、安装nagios插件

3.1 安装mysql客户端

[root@lnmpnagios]# yum -y install mysql mysql-devel

3.2 安装检测命令脚本工具

切换到Nagios工具包解压监控脚本目录

[root@lnmp~]# tar xf nagios-plugins-2.1.1.tar.gz -C /usr/local/src/

切换到脚本目录下

[root@lnmp~]# cd /usr/local/src/nagios-plugins-2.1.1

使用源码编译安装,指定运行用户和组

[[email protected]]#./configure --with-nagios-user=nagios --with-nagios-group=nagcmd

编译安装

[[email protected]]# make  &&make install

查看命令插件目录下的内容,如果不提前安装mysql客户端会无法检测到check_mysql

重启apache和nagios

[root@lnmp~]# systemctl restart httpd;/etc/init.d/nagios restart

Reloadingsystemd:                                        [  OK  ]

Restartingnagios (via systemctl):                        [  OK  ]

Web登录查看host信息

3.3 安装Nagios主题插件

切换到Nagios工具包解压目录下,注意执行命令后要输入一个A

[root@lnmp~]# unzip vautour_style.zip -d /usr/local/nagios/share/

Archive:  vautour_style.zip

replace/usr/local/nagios/share/images/ack.gif? [y]es, [n]o, [A]ll, [N]one, [r]ename: A

 

重启Nagios

[root@lnmp~]# /etc/init.d/nagios restart

Restartingnagios (via systemctl):                        [  OK  ]

四、监控Mysql状态

特别注意:监控任何一台服务器,工作流程是定义主机,定义服务,定义命令

登录Mysql (-u“用户”  -p“密码”根据自己实际环境填写)

[root@localhost~]# mysql -uroot [email protected]

创建测试库

mysql>create database nagios;

Query OK, 1 rowaffected (0.01 sec)

授权nagios库下所有表,给nagios账户192.168.1.227这台主机使用[email protected]这个密码登录

mysql>grant select on nagios.*to nagios@'192.168.1.227'identified by '[email protected]';

Query OK, 0 rowsaffected, 1 warning (0.01 sec)

4.1 配置Nagios服务

4.1.1 编辑配置文件添加监控服务

[root@lnmp~]# vim /usr/local/nagios/etc/nagios.cfg

# Definitions for monitoring the local (Linux) host

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg        

 

#在这两行下面添加下面两行

cfg_file=/usr/local/nagios/etc/objects/hosts.cfg

cfg_file=/usr/local/nagios/etc/objects/service.cfg

 

[root@lnmpobjects]# vim /usr/local/nagios/etc/objects/hosts.cfg

define host{

        use          linux-server          

        host_name    Mysql-master             #自定义主机名

        address      192.168.1.250             #我的mysql服务IP

}

 

[root@lnmpobjects]# vim /usr/local/nagios/etc/objects/service.cfg

define service{

        use                    local-service 

        host_name              Mysql-master   #自定义

        service_description     MySqlSev        

        check_command        check_mysql     #使用这个命令检测,要你的检测命令有才能使用,如果按照本次实验步骤来那就没问题

   

[root@lnmpobjects]# vim /usr/local/nagios/etc/objects/commands.cfg

define command{

        command_name    check_mysql

        command_line    /usr/local/nagios/libexec/check_mysql -H192.168.1.250 -unagios [email protected] -d nagios

} #填写自己的mysql授权-u用户 -p输入密码 –d 指定库

4.1.2 调用check-mysql命令进行检测,有下面结果输出为正常

[root@lnmp~]# /usr/local/nagios/libexec/check_mysql -H 192.168.1.250 [email protected] -d nagios

Uptime: 1834  Threads: 1 Questions: 11  Slow queries:0  Opens: 108  Flush tables: 1  Open tables: 101  Queries per second avg:0.005|Connections=6c;;; Open_files=16;;; Open_tables=102;;;Qcache_free_memory=1031832;;; Qcache_hits=0c;;; Qcache_inserts=0c;;;Qcache_lowmem_prunes=0c;;; Qcache_not_cached=1c;;; Qcache_queries_in_cache=0;;;Queries=12c;;; Questions=8c;;; Table_locks_waited=0c;;; Threads_connected=1;;;Threads_running=1;;; Uptime=1834c;;;

4.1.3 检测配置文件是否出错

[root@lnmpobjects]#  /usr/local/nagios/bin/nagios-v /usr/local/nagios/etc/nagios.cfg

表示配置文件没有异常!

4.2 重启nagios服务

[root@lnmpobjects]# /etc/init.d/nagios restart

Restartingnagios (via systemctl):                        [  OK  ]

4.3 WEB上查看结果

有时间的可以去模拟Mysql挂掉测试状态会不会改变

五、添加Windwos系统到Nagios

5.1 上传NSClient工具到windows客户端

安装,下一步下一步安装完成

5.2 编辑配置文件

 1、去掉在[modules]段里的列出模块程序的注释,除了CheckWMI.dllRemoteConfiguration.dll;

2、最好是修改一下在[Settings]段里的'password'选项;

3、去掉在[Settings]段里的'allowed_hosts'选项注释,把Nagios服务所在主机的IP加到这一行里,或是置为空,让全部主机都可以联入;多个地址用逗号隔开

4、确认一下在[NSClient]段里的'port'选项里已经去掉注释并设置成'12489'(默认端口);

修改成

双击nsclient++.exe  启动代理服务,并设置服务和桌面交互:

查看12489端口是否在监听状态

切换到Nagios主机上编辑配置文件

[root@lnmp etc]# vim/usr/local/nagios/etc/nagios.cfg

取消windows配置的注释

[root@lnmp objects]# vim /usr/local/nagios/etc/objects/windows.cfg

definehost{

        use             windows-server  ; Inherit default values from a template

        host_name       winserver       ; The name we're giving to this host

        alias           My Windows Server       ; A longer name associated with the host

        address         192.168.1.37    ; IP address of the host

        }

[root@lnmp objects]# vim/usr/local/nagios/etc/objects/service.cfg

#监控Windows机器的启动后运行时间。

defineservice{

        use generic-service

        host_name winserver

        service_description Uptime

        check_command check_nt!UPTIME

 } 

#监控Windows机器的CPU利用率

defineservice{

        use generic-service

        host_name winserver

        service_description CPU Load

        check_command check_nt!CPULOAD!-l5,80,90

}

#监控Windows机器的内存占用率

defineservice{

        use generic-service

        host_name winserver  

        service_description Memory Usage

        check_command check_nt!MEMUSE!-w 80 -c90

 }

#监控Windows机器的C:盘的磁盘利用率

defineservice{

        use generic-service

        host_name winserver

        service_description C:\ Drive Space

        check_command check_nt!USEDDISKSPACE!-lc -w 80 -c 90

}

[root@lnmp objects]# vim/usr/local/nagios/etc/objects/commands.cfg

definecommand{

        command_name check_nt

        command_line $USER1$/check_nt -H$HOSTADDRESS$ -p 12489 -s 1 -v $ARG1$ $ARG2$    

}

注意:不是重新写配置,而是更改模块内容,这里的-p12489是端口;-s 1 是密码一定要和windows配置文件的密码保持一致,否则会出现下图这样的状态

[root@lnmp objects]# /etc/init.d/nagiosrestart

Restarting nagios (via systemctl):                         [  OK  ]

WEB页面查看结果

猜你喜欢

转载自blog.csdn.net/qq_32731747/article/details/80461166