Nagios


Cacti比较着重于直观数据的监控,易于生成图形,用来监控网络流量、cpu使用率、硬盘使用率,cacti偏重于绘画图,在流量与图形展示较好。

而Nagios则比较注重于主机和服务的监控,并且有很强大的发送报警信息的功能。Nagios偏重与系统服务的正常与否,可以用邮箱,短信,电话等多种方式报警。

在做nagios时有用到Ganglia

Ganglia是一个开源集群监控项目,用于测量大量的节点,它的核心包括gmond,和gmetad和一个web前端,主要是用来监控系统的性能,如cpu,mem,disk,网络流量等。然后gmetad周期行的轮询gmod收集的信息,然后存入 rrdtool数据库,由RRDTOOL工具处理数据,并生成相应的图形显示出来每台主机的情况.

wKioL1eaCWuxufc8AADAkUvNgKk510.png


实验机:是两台纯净的虚拟机内存2048 cpu4

Server8 nagios服务

server9

[root@server8 nagios]# tar jxfnagios-cn-3.2.3.tar.bz2

[root@server8 nagios-cn-3.2.3]# ./configure

wKioL1eaCaDzenvwAAAKb7nzT2k937.png


[root@server8 nagios-cn-3.2.3]# yum installgcc -y

[root@server8 nagios-cn-3.2.3]# ./configure

[root@server8 nagios-cn-3.2.3]# yum install-y gd-devel

[root@server8 nagios-cn-3.2.3]# ./configure

[root@server8 nagios-cn-3.2.3]# useradd -u900 -M -d /usr/local/nagios nagios

[root@server8 nagios-cn-3.2.3]# make all

[root@server8 nagios-cn-3.2.3]#  make install-init

[root@server8 nagios-cn-3.2.3]#  make install-commandmode

[root@server8 nagios-cn-3.2.3]# makeinstall-config

[root@server8 nagios-cn-3.2.3]# makeinstall-webconf

[root@server8 nagios-cn-3.2.3]# cd/usr/local/nagios/

[root@server8 nagios]# /etc/init.d/nagiosstart

[root@server8 nagios-cn-3.2.3]# cd/etc/httpd/conf.d/

[root@server8 conf.d]# vim nagios.conf

[root@server8 conf.d]# cat/usr/local/nagios/etc/htpasswd.users

nagiosadmin:gCWSDnqEHR45c

[root@server8 conf.d]# htpasswd/usr/local/nagios/etc/htpasswd.users nagiosadmin  修改nagios的密码

[root@server8 conf.d]# /etc/init.d/httpd restart

[root@server8 conf.d]# /etc/init.d/nagiosrestart

wKiom1eaCdOgBTECAAANWX7rYrM069.png


登陆名是nagiosadmin 密码我之前设的westos

[root@server8 nagios-plugins-2.1.1]# tarzxf nagios-plugins-2.1.1.tar.gz

[root@server8 nagios-plugins-2.1.1]#./configure

wKioL1eaCfqhyppmAABQ_l_GRF0734.png


编译完之后mysql openssl后面应该显示的是yes 如果是no 要yum install

Mysq-devel openssl-devel

[root@server8 nagios-plugins-2.1.1]#make

[root@server8 nagios-plugins-2.1.1]#makeinstall

[root@server8 libexec]#/usr/local/nagios/libexec

[root@server8 libexec]# chownnagios.nagios.* nagios

wKioL1eaCimDis8MAAFhTCu8srg341.png


当出现这种错误的时候

wKioL1eaCk3AdULYAABN7ZEKoGM356.png

[root@server8 etc]# pwd

/usr/local/nagios/etc

[root@server8 etc]# vim nagios.cfg

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

35cfg_file=/usr/local/nagios/etc/objects/services.cfg

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

[root@server8 objects]# pwd

/usr/local/nagios/etc/objects

[root@server8 objects]# cp -p localhost.cfghosts.cfg

[root@server8 objects]# cp -p localhost.cfgservices.cfg

[root@server8 objects]# vim hosts.cfg

 1############################################################################    ###

  2############################################################################    ###

  3 #

  4 #HOST DEFINITION

  5 #

  6############################################################################    ###

  7############################################################################    ###

  8define host{

 9         use                     linux-server

 10        host_name              server8.example.com

 11        alias                   Manager

 12#       parents                 MainSwitch

 13        address                172.25.137.8

 14        icon_p_w_picpath              server.gif

 15        statusmap_p_w_picpath         server.gd2

 16        2d_coords               500,200

 17        3d_coords              500,200,100

 18         }

 

28 # Define an optional hostgroup for Linuxmachines

 29

 30define hostgroup{

 31        hostgroup_name  linux-servers ;The name of the hostgroup

 32        alias           Linux Servers ;Long name of the group

 33        members         *     ;Comma separated list of hosts that belong to    this group

 34        }

 

 

[root@server8 objects]# vim services.cfg

 

 1 #Define an optional hostgroup for Linux machines

  2define servicegroup{

 3         servicegroup_name 系统负荷检查

 4         alias 负荷检查

 5         membersserver8.example.com,进程总数,server8.example.com,登录用户数,    server8.example.com,根分区,server8.example.com,交换空间利用率

 6         }

 

###########################这个配置文件的后面不变#####################

[root@server8 objects]#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 检测配置文件正确于错误当出现下图就说明修改配置文件正确

wKiom1eaCn-zP_m4AAAJFs9CDLI793.png

如果http是警告则给他加一个测试页就ok

wKioL1eaCp7RaSI7AAAW4hn_iNY186.png


[root@server8 objects]# /etc/init.d/nagiosreload

wKiom1eaCsDSTtmyAADpZdVKyng696.png

远程连接mysql

 

[root@server9 ~]# yum install mysql-server-y

[root@server9 ~]# /etc/init.d/mysqld start

进入mysql

mysql> create database test;

mysql> grant select on test.* tonagios'@172.25.137.8' identified by 'westos'; 给远端监控的nagios授权mysql

[root@server8 libexec]# ./check_mysql -H172.25.137.9 -u nagios -p westos  测试

Uptime: 4684  Threads: 2 Questions: 36  Slow queries:0  Opens: 16  Flush tables: 1  Open tables: 9  Queries per second avg:0.7|Connections=14c;;; Open_files=18;;; Open_tables=9;;;Qcache_free_memory=0;;; Qcache_hits=0c;;; Qcache_inserts=0c;;;Qcache_lowmem_prunes=0c;;; Qcache_not_cached=0c;;; Qcache_queries_in_cache=0;;;Queries=36c;;; Questions=36c;;; Table_locks_waited=0c;;; Threads_connected=2;;;Threads_running=1;;; Uptime=4684c;;;

 

[root@server8 objects]# vim commands.cfg

213 # 'check_nt' command definition

214 define command{

215        command_name    check_mysql

216        command_line   $USER1$/check_mysql -H $HOSTADDRESS$ -u $ARG1$ -p $    ARG2$

217        }

wKioL1eaCvTDqOw0AAEEpnq8_74402.png


Vim hosts

 20define host{

 21        use                    linux-server

 22        host_name              server9.example.com

 23        alias                   Manager

 24#       parents                 MainSwitch

 25        address                172.25.137.9

 26        icon_p_w_picpath              server.gif

 27        statusmap_p_w_picpath         server.gd2

 28        2d_coords               400,200

 29        3d_coords              400,200,100

 30        }

 wKiom1eaCyDR8mEfAAEIxQ8Qg_w424.png


[root@server8 objects]# vim services.cfg

 

112 define service{

113        use                            local-service

114        host_name                      server9.example.com

115        service_description            mysql

116        check_command                  check_mysql!nagios!westos

117        }

wKiom1eaC1GDePmmAADfMKISqSc919.png

wKioL1eaDGSDoSRWAAChmnaINLw167.png


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

 wKioL1eaDKOCeAq6AAAJc4Sv7CA454.png

没报错就正确

[root@server8 objects]# /etc/init.d/nagiosreload

 

在nagios监控平台就看到了远程监控的server9

wKioL1eaDMvC5SYIAAA-Ms0iJ2Y501.png


 

wKioL1eaDOvC_74kAAGKkPl2ZxY220.png

远程检测磁盘信息:server9

tar zxf nrpe-2.15.tar.gz  

tar zxf nagios-plugins-2.1.1.tar.gz

cd nagios-plugins-2.1.1

./configure --with-nagios-user=nagios--with-nagios-group=nagios 在编译的时候可能要下gcc

再次编译如果出现以下就说明要下载openssl-devel mysql-devel

wKioL1eaDSGT4LfgAAGYfLqNsXs759.png


useradd -u 900 -M -d /usr/local/nagiosnagios

./configure --with-nagios-user=nagios--with-nagios-group=nagios

 make

 makeinstall

编译完后在 /usr/local/nagios/生成

wKioL1eaDUGCIACLAABEgjMs5AM964.png


 cdnrpe-2.15

 ./configure --with-nrpe-user=nagios--with-nrpe-group=nagios

 makeall

 yuminstall -y xinetd

 makeinstall-plugin

 makeinstall-daemon

 makeinstall-daemon-config

 mkaeinstall-xinetd

 vim /us/local/nagios/eets

221command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /

vim /etc/xinetd.d/nrpe

15        only_from       = 172.25.137.8

vim /etc/services

22 nrpe            5666/tcp

/etc/init.d/xinetd start

scp check_nrpe172.25.137.8:/usr/local/nagios/libexec/

Server8# ./check_nrpe -H 172.25.137.9 -c check_disk

wKioL1eaDWWSESrWAABGox-ip8o882.png


[root@server8 objects]# vim/usr/local/nagios/etc/objects/services.cfg

119 ###########check_nrpe

120 define service{

121        use                            local-service         ; Name ofservice template to use

122        host_name                      server9.example.com

123        service_description             根分区

124        check_command                  check_nrpe!check_disk

125        }

126

127

128 define service{

129        use                            local-service         ; Name of service template to use

130        host_name                     server9.example.com

131        service_description             登录用户数

132        check_command                  check_nrpe!check_users

133        }

 

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

219 # 'check_nrpe' command definition

220 define command{

221        command_name    check_nrpe

222        command_line    $USER1$/check_nrpe-H $HOSTADDRESS$ -c $ARG1$

223        }

 

[root@server8 objects]# /etc/init.d/nagiosreload

wKiom1eaDY_wS4M7AAHSYSIQyjw729.png


[root@server8 nagios]# yum install -yrpm-build

wKiom1eaDbbjNnqDAAEPJ9b1irM849.png

[root@server8 nagios]# yum installlibart_lgpl-devel gcc-c++ python-devel libconfuse-devel pcre-devel autoconflibtool expat-devel rrdtool-devel apr-devel -y

[root@server8 nagios]# yum installlibconfuse-* rrdtool-devel-1.3.8-6.el6.x86_64.rpm -y

[root@server8 nagios]# rpmbuild -tbganglia-3.4.0.tar.gz

[root@server8 ~]# cd rpmbuild/ RPMS/x86_64/

[root@server8 x86_64]# yum installganglia-gmetad-3.4.0-1.x86_64.rpm libganglia-3.4.0-1.x86_64.rpm -y

 

[root@server9 ~]# yum installganglia-gmond-3.4.0-1.x86_64.rpm lib* -y 如果用rpm安装有依赖性解决不了的话就用yum安装

[root@server9 ~]# rpm -ivhganglia-gmond-modules-python-3.4.0-1.x86_64.rpm

[root@server8 x86_64]# cd /etc/ganglia/

[root@server8 ganglia]# vim gmetad.conf

44 data_source "my cluster1"localhost 172.25.137.9

[root@server8 ganglia]# vim gmond.conf

 24  name = "my cluster1"

[root@server8 ganglia]# /etc/init.d/gmondstart

[root@server8 ganglia]# /etc/init.d/gmetadstart

[root@server9 ganglia]# vim gmond.conf

24  name = "my cluster1"

[root@server9 ganglia]# /etc/init.d/gmondstart

[root@server8 server9.example.com]#rpmbuild-tb ganglia-web-3.4.2-1.x86_64

[root@server8 nagios]# cd/root/rpmbuild/RPMS/

[root@server8 noarch]# rpm -ivh ganglia-web-3.4.2-1.noarch.rpm

error: Failed dependencies:

    php-gdis needed by ganglia-web-3.4.2-1.noarch

[root@server8 noarch]# yum intsall php-gd-y

[root@server8 noarch]# rpm -ivhganglia-web-3.4.2-1.noarch.rpm

[root@server8 my cluster1]# du -shserver8.example.com/

[root@server8 nagios]# tar zxfganglia-3.4.0.tar.gz

[root@server8 nagios]# cd ganglia-3.4.0/contrib/

[root@server8 contrib]# cp check_ganglia.py/usr/local/nagios/libexec/

[root@server8 libexec]# chown nagios.nagioscheck_ganglia.py

[root@server9 ganglia]# vim /etc/ganglia/gmond.conf 

wKioL1eaDd-huorJAAAMoQurOu0074.png

wKiom1eaDzriZIKPAAAhJm4zPo8564.png

[root@server8 objects]# vim hosts.cfg  因为是对server9加服务所以就不用在加主机了

wKioL1eaELaSmrFaAACIzpzo_i0419.png


[root@server8 objects]# vim services.cfg 这个v主机组一定是在上面,不要写在下面了

wKioL1eaENzRWaY-AADHS0cBoH4299.png


[root@server8 objects]# vim commands.cfg

wKioL1eaESWzw1IfAABEBP8RFgk486.png

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

[root@server8 objects]# /etc/init.d/nagiosreload

wKiom1eaEVLjuuasAAGQsxr0Qzo492.png

还可以做报警比如邮件,微信短信等

邮件报警,如果虚拟机能和外网连通,然后在自己的反垃圾的白名单设置里添加nagios@主机名。