Nagios

 Nagios 系統介紹

  Nagios是一個用來監視系統和網絡的開源應用軟件,它通常運行於一個主服務器上,
  這個服務器運行 Liunx 或 Unix 操作系統。Nagios 利用其衆多的插件實現對本機和遠端服務的監控,當被監控對象出現異常,Nagios 就會及時給管理人員告警。它是一個基於 TCP/IP
  協議的軟件包,包含有nagios主程序和它的各個插件,配置非常靈活,可以監視的項目很多,也可以通過自定義 shell 腳本進行監控服務,非常適合各類企業的網絡應用。
 Nagios 系統的主要特點
  Nagios 系統的特點主要有下面幾點:
  1.監控主機資源和網絡服務
  2.允許用戶通過設計實現簡單的插件來監控自己特定的服務
  3.當被監控對象出現問題時,會及時通知管理人員
  4.事先定義事件處理程序,當對象出現問題時自動調用對應的處理程序
  5.通過 web 頁面來監視對象狀態,警告提示和日誌文件。
  可見,Nagios 採用分佈--集中的管理模式。在 Nagios 服務器上安裝 Nagios 主程序,
  在被監控主機上安裝 Nagios 代理程序。通過 Nagios 主程序和 Nagios 代理程序之間的通訊,監視對象的狀態。
 
以下是我在RHEL5.4上進行的配置過程:
準備軟件包

nagios-3.2.1.tar.gz
nagios-plugins-1.4.14.tar.gz
nrpe-2.12.tar.gz
安裝必備軟件包:

[root@station1 ~]# yum -y install httpd gcc glibc glibc-common gd gd-devel php

 

支持PHP

 

[root@station1 ~]# vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html index.html.var index.php index.phps

 

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

 

[root@station1 html]# cat index.php
<?php
 phpinfo();
?>
[root@station1 html]#
 
創建nagios用戶與組(用戶組nagcmd用於從web接口執行外部命令.)

[root@station1 ~]# useradd nagios;passwd nagios

Changing password for user nagios.

New UNIX password:

BAD PASSWORD: it is too short

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

[root@station1 ~]# groupadd nagcmd

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

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

[root@station1 ~]#

 

下載並安裝nagios (下載站點: http://www.nagios.org/download)

[root@station1 src]# cd /usr/local/src/

[root@station1 src]# ls

nagios-3.2.1.tar.gz  nagios-plugins-1.4.14.tar.gz  nrpe-2.12.tar.gz

[root@station1 src]# tar zxvf nagios-3.2.1.tar.gz

[root@station1 src]# cd nagios-3.2.1

[root@station1nagios-3.2.1]#./configure–with-command-group=nagcmd –prefix=/usr/local/nagios

[root@station1nagios-3.2.1]#make all

[root@station1nagios-3.2.1]#make install                 #安裝主程序,CGIHTML文件

[root@station1nagios-3.2.1]#make install-init              #/etc/rc.d/init.d安裝啓動腳本

[root@station1nagios-3.2.1]#make install-config           #安裝示例配置文件

[root@station1nagios-3.2.1]#make install-commandmode    #配置目錄權限

 

驗證是否安裝成功:

[root@station1 nagios]# pwd

/usr/local/nagios

[root@station1 nagios]# ls

bin  etc  libexec  sbin  share  var

[root@station1 nagios]# cd var/

[root@station1 var]# ls

archives  rw  spool

[root@station1 var]

 

編譯並安裝nagios插件 nagiosplugins

[root@station1 src]# tar zxvf nagios-plugins-1.4.14.tar.gz

[root@station1 src]# cd nagios-plugins-1.4.14

[root@station1nagios-plugins-1.4.14]#./configure--with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios/

[root@station1nagios-plugins-1.4.14]# make && make install

驗證插件是否安裝成功:

[root@station1 nagios]# du -h libexec/

3.4M    libexec/

[root@station1 nagios]#

配置Apache

[root@station1 ~]# vim /etc/httpd/conf/httpd.conf

 

###############################

#  setting for nagios 20100719     #

###############################

 

ScriptAlias /nagios/cgi-bin/ "/usr/local/nagios/sbin"

 

<Directory "/usr/local/nagios/sbin">

    Options ExecCGI

    Order allow,deny

    Allow from all

    AllowOverride None

    AuthName "Nagios Access"

    AuthType basic

    AuthUserFile /usr/local/nagios/etc/htpasswd

    Require valid-user

</Directory>

 

Alias /nagios  "/usr/local/nagios/share"

<Directory "/usr/local/nagios/share">

    Options None

    Order allow,deny

    Allow from all

    AllowOverride None

    AuthName "Nagios Access"

    AuthType basic

    AuthUserFile /usr/local/nagios/etc/htpasswd

    Require valid-user

</Directory>

 

創建apache目錄驗證文件

[root@station1 ~]# htpasswd -cm /usr/local/nagios/etc/htpasswd nagiosadmin

New password:

Re-type new password:

Adding password for user nagiosadmin

 

查看cgi.cfg是否允許nagiosadmin用戶的認證

[root@station1 etc]# pwd

/usr/local/nagios/etc

[root@station1 etc]# grep authorized < cgi.cfg

authorized_for_system_information=nagiosadmin

authorized_for_configuration_information=nagiosadmin

authorized_for_system_commands=nagiosadmin

authorized_for_all_services=nagiosadmin

authorized_for_all_hosts=nagiosadmin

authorized_for_all_service_commands=nagiosadmin

authorized_for_all_host_commands=nagiosadmin

#authorized_for_read_only=user1,user2

[root@station1 etc]#

 

 

配置nagios配置文件

#vi /usr/local/nagios/etc/objects/contacts.cfg      修改email地址爲自己的email地址.

 

啓動nagios

[root@station1 ~]# chkconfig --add nagios

[root@station1 ~]# chkconfig nagios on

[root@station1 ~]#

 

檢查配置文件

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

Total Warnings: 0

Total Errors:   0

 

[root@station1 ~]# service nagios start

Starting nagios: done.

[root@station1 ~]# service httpd start

Starting httpd:                                            [  OK  ]

[root@station1 ~]#

 

 

訪問http://localhost/nagios 輸入用戶名密碼

安裝附加插件nrpe

[root@station1 src]# tar zxvf nrpe-2.12.tar.gz

[root@station1 src]# cd nrpe-2.12

[root@station1 nrpe-2.12]# ./configure

[root@station1 nrpe-2.12]# make all

[root@station1 nrpe-2.12]# make install-plugin  #服務器端只要安裝nrpe監控插件就行

[root@station1 nrpe-2.12]# make install-daemon

[root@station1 nrpe-2.12]# make install-daemon-config

 

添加要監控的主機

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

 

allowed_hosts=127.0.0.1

 

以獨立守護進程啓動nrpe

[root@station1 ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

寫入開機腳本

[root@station1 ~]# echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d">> /etc/rc.d/rc.local

 

檢查nrpe是否安裝正常

[root@station1 ~]# /usr/local/nagios/libexec/check_nrpe -H localhost

NRPE v2.12

[root@station1 ~]# netstat -tln | grep 5666

tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN

[root@station1 ~]#

 

定義監控命令

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

以下是默認定義好的:

# The following examples use hardcoded command arguments...

 

command[check_users]=/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

自定義監控命令:

command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

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

測試:
[root@station1 ~]# /usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /home
DISK OK - free space: /home 86 MB (93% inode=99%);| /home=5MB;76;86;0;96
[root@station1 ~]#

[root@station1 etc]# pwd

/usr/local/nagios/etc

[root@station1 etc]# vim resource.cfg

$USER1$=/usr/local/nagios/libexec   #定義插件路徑

 

:SWAP監控

[root@station1 etc]# vim objects/commands.cfg  #命令配置文件

# 'check_local_swap' command definition

define command{

        command_name    check_local_swap

        command_line    $USER1$/check_swap -w $ARG1$ -c $ARG2$

        }

[root@station1 objects]# vim localhost.cfg        #監控對象控制

define service{

        use                             local-service         ; Name of service template to use

        host_name                       localhost

        service_description                 Swap Usage

        check_command                   check_local_swap!20!10

        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章