监控服务之nagios服务搭建

  Nagios是一款开源的监控软件,与cacti,zabbix等开源监控软件并驾齐驱,它能够有效监控windows,linux,unix,交换机和路由器的主机状态和相关运行的服务,在系统或者服务异常时发出邮件或者短信报警,通知运维人员解决问题。ngios本身并没有监控功能,他是通过nagios-plugin插件完成的,插件将结果返回给nagios,然后nagios再以web界面的方式将信息呈现出来,出错了就告警,通过轻量级服务nrpe和nagios-plugin可以实现对远程服务器主机状态和网络服务的监控。

准备材料:

nagios-cn-3.2.3.tar.bz2    nagios-plugins-2.1.1.tar.gz   gd-devel-2.0.35-11.el6.x86_64.rpm

步骤:

第一步:(nagios服务安装)   --server

#yum  install  -y  gcc  gcc-c++ 编译环境  

#yum  install -y gd-devel-2.0.35-11.el6.x86_64.rpm 解决nagios服务的依赖项。

#yum  install -y httpd  安装apache服务

#/etc/init.d/httpd start

#groupadd  nagcmd  新建nagcmd组,主要是方便后续文件的访问

#useradd  -M -d  /usr/local/nagios  -G nagcmd   nagios

#usermod  -G nagcmd  apache 添加apache用户到nagcmd组里面,方便访问

#tar  -jxf  nagios-cn-3.2.3.tar.bz2  解压文件

#./configure  --with-command-group=nagcmd  配置文件,指定命令组为nagcmd

#make all     编译

#make install        安装

#make install-init

#makeinstall-commandmode

#makeinstall-config

#makeinstall-webconf

#vim /etc/hosts

172.25.45.20 server20.example.com  (真机,便于解析)

#/etc/init.d/nagios start    nagios服务启动

#/etc/init.d/httpdrestart  (注意:此时apache服务一定要重起,否则web页面无法访问,重起的目的是加载nagios服务的一些配置文件)

 

#Firefox--->172.25.10.100/nagios

监控服务之nagios服务_第1张图片


监控服务之nagios服务_第2张图片

第二步:(nagios插件的安装)  --server

#tar  zxf  nagios-plugins-2.1.1.tar.gz

#yum  install -y  mysql-devel  openssl-devel    进行数据传输加密的依赖项

#cd  nagios-plugins-2.1.1

#./configure  ----> make ----->  make install  源码编译三部曲

#cd   /usr/local/nagios/libexec/

#chown  nagios.nagios  *  -R  libexec里面的文件用户与用户组全部更改为nagios.nagios

#/usr/local/nagios/bin/nagios -v  /usr/local/nagios/etc/nagios.cfg  检查nagios主配置文件有没有语法错误。

/etc/init.d/nagiosreload    没有语法错误,则进行重起

#Firefox  -->  172.25.45.20/nagios   刷新网页,则能检测相应的数据并且进行监控。

 监控服务之nagios服务_第3张图片

第三步:nagios服务的配置(因为以上那些监控项及服务不是我们需要的,因此我们需要进行私有定制,这就是nagios的优势所在,并且可以随时添加其他的主机和监控的服务)

# cd/usr/local/nagios/etc/

#vim nagios.cfg

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

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

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

注销38行,其实是将38行一分为2,也就是上面添加的两行,hosts.cfgservices.cfg文件,使得添加用户和服务分开进行,更加方便。

图:

 

# cd  /usr/local/nagios/etc/objects/

# cp  localhost.cfg  hosts.cfg -p

#cp  localhost.cfg  services.cfg -p   (此处注意复制时一定要保持用户其用户组均不变,也就是nagios.nagios)

#vim hosts.cfg          配置host.cfg文件

25 define host{         ###设置为本地主机

26           use        linux-server           

27        host_name    server20.example.com

28        alias        HomeSwitch

29        address      172.25.45.20

30        icon_p_w_picpath     switch.gif

31        statusmap_p_w_picpath  switch.gd2

32         2d_coords     100,200

33        3d_coords      100,200,100

34         }

 

46 define hostgroup{

47        hostgroup_name  linux-servers 

48        alias         Linux Servers 

49         members       *  ##成员指任何主机   

50         }

 

#vim services.cfg     

  1 defineservicegroup{

  2         servicegroup_name 系统负荷检查

  3         alias 负荷检查

  4         members server20.example.com,进程总数,server20.example.com,登录用户数,server20.example.com,根分区,server20.example.com,交换空间利用率 

  5         }

注意:前面关于hostshostsgroup全部删掉,只剩下一个servergroup services ,且进行全文替换:

“:%s/田朝阳家用机电/server20.example.com/g”

 

#/usr/local/nagios/bin/nagios -v  /usr/local/nagios/etc/nagios.cfg 语法检查

#/etc/init.d/nagiosreload

#firefox  --> 172.25.45.20/nagios  刷新页面

 

######cd libexec/--> ./check_disk -w 20 -c 10

 

第四步:监控客户端的运行主机的网络服务及主机资源 --> client

资料: nrpe-2.15.tar.gz   nagios-plugins-2.1.1.tar.gz

() mysql服务的监控   server2.example.com   ip 172.25.45.3

#yum install -ymysql-server       安转数据库

#/etc/init.d/mysqld   start             启动数据库

#mysql_secure_installation              数据库初始化

#mysql -uroot-predhat            登陆数据库    

> create database nagdb;        创建nagdb

> grant all on nagdb.* to [email protected] by 'westos';  授权并建立用户nagios;

>quit

# netstat-antlpe     查看数据库端口有没有打开;

 

####server端进行验证以及相应mysql服务监控的配置;

#cd  /usr/local/nagios/libexec

#  ./check_mysql -H 172.25.45.3  -u nagios  -p westos  进行验证,看能否有数据过来。或者使用远程登陆数据库;

(或者 # mysql -h  172.25.45.3  -u nagios  -p  westos )

 

# cd   /usr/local/nagios/etc/objects        #添加check_mysql命令

# vim  command.cfg

##### 'check_mysql' command definition

215 define command{

216    command_name    check_mysql

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

218        }

 

# vim  hosts.cfg           ####添加主机 ip172.25.45.3

 36define host{         ###且主机名为server2.example.com

 37        use                         linux-server

 38        host_name     server2.example.com

 39        alias        HomeSwitch

 40        parents       server20.example.com

 41        address       172.25.45.3

 42        icon_p_w_picpath     switch.gif

 43        statusmap_p_w_picpath  switch.gd2

 44        2d_coords      200,200

 45        3d_coords      200,200,100

 46        }

 

# vim  services.cfg              ###添加监控的服务--MYSQL

112 define service{

113        use          local-service

114        host_name       server2.example.com

115        service_description     MYSQL

116        check_command    check_mysql!nagios!westos

117         }

 注意:此处的check_mysql后面跟的是mysql的用户名和密码;

119 define service{

120        use         local-service 

121        host_name     server2.example.com

122        service_description     交换空间利用率

123        check_command       check_local_swap!20!10

124         }

 

# /usr/local/nagios/bin/nagios  -v  /usr/local/nagios/etc/nagios.cfg

#/etc/init.d/nagios   reload

Firefox  ----> 172.25.45.20/nagios    刷新

监控服务之nagios服务_第4张图片

 

(二) 对客户主机资源的监控  server2.example.com   ip 172.25.45.3

A.客户端配置

# tar  zxf  nagios-plugins-2.1.1.tar.gz  

# yum  install -y  gcc  gcc-c++     ###编译软件,不然无法编译。

# yum  install -y  mysql-devel  openssl-devel

# useradd  -M  -d  /usr/local/nagios   nagios   建立用户nagios 并制定用户家目录为:/usr/local/nagios

#cd  nagios-plugins-2.1.1         ###源码编译三部曲

# ./configure   --> make all  --> make  install

# cd  /usr/local/nagios/   

# chown  nagios.nagios .  –R     ##更改文件的用户及用户组

# tar  zxf  nrpe-2.15.tar.gz    

# cd   nrpe-2.15  

# yum  install -y   xinetd    

注:xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务,Xinetd是基于服务的超级服务,用来管理和保护轻量级服务,此处就是用来保护nrpe服务的,防止DOS***。

##nrpe服务进行编译安装。

# ./configure  --> # make  all  

# makeinstall-plugin  --> # makeinstall-daemon -->

# makeinstall-daemon-config  --> # makeinstall-xinetd 

#/etc/init.d/xinetdstart

# vim  /etc/xinetd.d/nrpe

 15 only_from       =172.25.45.20  只允许此ip 取数据。

#vim  /etc/services

 22  nrpe            5666/tcp    添加nrpe服务端口5666

#netstat  -antlpe    查看端口号5666

# cd  /usr/local/nagios/libexec

# scp  check_nrpe [email protected]:/usr/local/nagios/libexec/

#/etc/init.d/xinetd   restart      服务重起

B服务器端配置

#cd  /usr/local/nagios/libexec

#chown  nagios.nagios check_nrpe   传过来的文件用户及组需要改成nagios.nagios

#./check_nrpe      -H 172.25.45.3 -c check_disk   进行验证是否有数据返回过来。

 

配置server服务器的command.cfg  services.cfg hosts.cfg 文件,使服务器能取得客户端的数据并能通过WEB界面监控显示出来。

#cd  /usr/local/nagios/etc/objects

# vim  command.cfg

 #####'check_nrpe' command definition

222 define command{

223    command_name    check_nrpe

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

225     }

#vim   hosts.cfg  :由于之前已经加入了此ip的主机,故此处不用添加,要是添加其他ip主机,则方法和之前类似。

# vim  services.cfg

120 define service{

121      use         local-service 

122      host_name   server2.example.com

123      service_description   根分区

124      check_command    check_nrpe!check_disk

125        }

127 define service{

128        use            local-service     

129        host_name      server2.example.com

130        service_description   登陆用户数

131        check_command   check_nrpe!check_users

132        }

#/usr/local/nagios/bin/nagios  -v  /usr/local/nagios/etc/nagios.cfg

#/etc/init.d/nagios   reload

# Firefox   172.25.45.20/nagios    刷新网页

图:

 

 

第五步:添加告警功能(110云告警:短信,电话,邮件)

请看下回,110云告警功能。