午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

nagios配置

 SamBookshelf 2014-05-26

nagios安裝請參看:Nginx平臺安裝Nagios監(jiān)控服務

下面是我添加linux監(jiān)控機的過程,如有錯誤或者不當?shù)牡胤秸堉赋觯?/p>

測試環(huán)境:

監(jiān)控主機:nagios+nagios插件+nrpe+網(wǎng)站平臺 192.168.1.210

被監(jiān)控機:nagios插件+nrpe   192.168.1.211

1、首先在監(jiān)控主機上安裝nrpe,nagios只能監(jiān)控一些外部的信息,例如:ftp端口有沒有開放,ssh端口有沒有開放,ping值如何之類的,如果想監(jiān)控linux主機一些本地的信息如:硬盤使用情況,機器負載等,必須是監(jiān)控主機通過nagios調(diào)用被監(jiān)控機的nrpe,被監(jiān)控機的nrpe搜集信息,然后再返來給監(jiān)控主機的nagios,這樣的一個過程

監(jiān)控主機安裝nrpe:

tar zxvf nrpe-2.12.tar.gz 
cd nrpe-2.12
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config

在被監(jiān)控機上安裝nagios插件和nrpe

tar zxvf nagios-plugins-1.4.15.tar.gz 
cd nagios-plugins-1.4.15
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install

安裝nrpe的方法與監(jiān)控主機的nrpe安裝方法一樣

檢查目錄及文件:

 ll /usr/local/nagios/libexec

看看里面是不是有一大堆check的什么東西,如果有就對了

2、配置nagios監(jiān)控主機的配置文件

nagios的全部配置文件在:/usr/local/nagios/etc目錄下面

首先cgi.cfg

refresh_rate=30         #nagios主頁的刷新時間,我設置成30秒自動刷新

use_authentication=0  #關閉認證功能,當nagios配置好后,建議開回來

這個文件暫時只修改了這兩項

然后輪到nagios.cfg

cfg_file=/usr/local/nagios/etc/objects/commands.cfg  #nagios可調(diào)用的監(jiān)控命令
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg     #聯(lián)系人配置
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg  #監(jiān)控時間配置
cfg_file=/usr/local/nagios/etc/objects/templates.cfg   #模板配置
cfg_dir=/usr/local/nagios/etc/services                       #新添加,把需要添加的主機文件放進去,就不必在這里一行行添加
cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg  #新添加,主機組配置
cfg_file=/usr/local/nagios/etc/objects/localhost.cfg    #本地信息監(jiān)迭

3、現(xiàn)在可以開始添加被監(jiān)控機

我們上面定義了所有的主機文件都放在services目錄下,那么我們在此目錄下新建主機:

 vi 192.168.1.211.cfg

內(nèi)容如下:

 define host{
        use     linux-server
        host_name       192.168.1.211
        alias           192.168.1.211
        address         192.168.1.211
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_ping
        check_command           check_ping!100.0,20%!200.0,50%
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_ftp
        check_command           check_ftp!21
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_ssh
        check_command           check_ssh
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_http
        check_command           check_http
        max_check_attempts 5
        normal_check_interval 1
}

 

上面監(jiān)控了ping值,ftp服務,ssh服務還有http服務,我拿一個例子來說明

 define host{
        use     linux-server
        host_name       192.168.1.211
        alias           192.168.1.211
        address         192.168.1.211
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_ping
        check_command           check_ping!100.0,20%!200.0,50%
        max_check_attempts 5
        normal_check_interval 1
}

例如這一段,首先define host定義了這臺被監(jiān)控主機,它所用的模板是linux-server這個,那這個模板又是在哪里定義的呢,就是在剛才nagios里不是有一行模板配置信息嗎,就是那個文件,我打開templates.cfg  文件并找到linux-server模板,這模板的信息是這樣的:

define host{
        name                            linux-server    ; The name of this host template
        use                             generic-host    ; This template inherits other values from the generic-host template
        check_period                    24x7            ; By default, Linux hosts are checked round the clock
        check_interval                  5               ; Actively check the host every 5 minutes
        retry_interval                  1               ; Schedule host check retries at 1 minute intervals
        max_check_attempts              10              ; Check each Linux host 10 times (max)
        check_command                   check-host-alive ; Default command to check Linux hosts
        notification_period             workhours       ; Linux admins hate to be woken up, so we only notify during the day
                                                        ; Note that the notification_period variable is being overridden from
                                                        ; the value that is inherited from the generic-host template!
        notification_interval           120             ; Resend notifications every 2 hours
        notification_options            d,u,r           ; Only send notifications for specific host states
        contact_groups                  admins          ; Notifications get sent to the admins by default
        register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
        }
 

這里的信息后面都有說明,把他們拿上谷歌翻譯一下便是,

其中check_period 這個是定義監(jiān)控的時間

check_interval這個是每多少時間執(zhí)行一次命令

max_check_attempts這個是多少次異常就會報警

這幾個便是常用的配置

回到剛才的例子,然后define service就是定義要監(jiān)控的東西

host_name    就是被監(jiān)控機的IP
service_description     命令的描述,會在nagios主面上顯示
check_command          要執(zhí)行的命令
max_check_attempts 5  異常多少次會報警
normal_check_interval 1  每1分鐘執(zhí)行一次命令

 

check_command 這個是根據(jù)什么來填寫的呢,其實就是根據(jù)command.cfg這份配置來填寫,打開這份文件找一個ping的命令來看看

 define command{
        command_name    check_ping
        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
        }

 

這份是定義ping命令的配置,很簡單,一個名稱,然后就是要執(zhí)行的東西

-w就是警告的值

-c就是嚴重的值

要看看命令怎么使用很簡單

 /usr/local/nagios/libexec/check_ping -H 192.168.1.211 -w 100,20% -c 200,40%

這樣執(zhí)行下去,可看見返來的信息:

 PING OK - Packet loss = 0%, RTA = 0.54 ms|rta=0.543000ms;100.000000;200.000000;0.000000 pl=0%;20;40;0

那么很明顯

執(zhí)行命令是這樣的

/usr/local/nagios/libexec/check_ping -H 192.168.1.211 -w 100,20% -c 200,40%

而寫在配置文件上是這樣的:

check_ping!100.0,20%!200.0,50%

check_ping后面是要跟參數(shù)的,在寫配置文件的時候參數(shù)是要用“!”這個符號來隔開,要注意順序

明白這個之后,面后都差不多了

現(xiàn)在我們重啟nagios來看看效果,養(yǎng)成習慣重啟前先檢查配置文件有沒有錯誤

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

如果出現(xiàn)如下信息就是正常:

Total Warnings: 0
Total Errors:   0

現(xiàn)在可以安心重啟服務了

 service nagios restart

然后在nagios主頁上會看見我們配置的東西出來了:

我的被監(jiān)控機上沒有安裝http服務,所以報警了

(未完……太累了睡覺去,明天再寫)

回來繼續(xù)配置!

4、利用nrpe監(jiān)控linux主機的本地信息

首先是解決nagios怎么去調(diào)用nrpe命令,之前我們配置時有說過nagios調(diào)用的命令是從command.cfg文件中定義過的,那么要使用nrpe也須要在該文件中定義

 vi command.cfg

在文件中添加以下配置:

define command{
        command_name check_nrpe
        command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

在添加監(jiān)控信息之前我們先測試一下監(jiān)控主機與被監(jiān)控機的Nrpe的連通性

首先在被監(jiān)控機上配置允許的監(jiān)控主機:

 vi nrpe.cfg

 allowed_hosts=127.0.0.1,192.168.1.210     #添加上我的監(jiān)控主機的IP

然后在被監(jiān)控機上啟動nrpe服務:

 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

查看端口是否正常運行:

 [root@localhost ~]# netstat -tunlp | grep nrpe
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      4304/nrpe 

 

我們在監(jiān)控主機上運行一下測試命令看看結果:

 /usr/local/nagios/libexec/check_nrpe -H 192.168.1.211

運行這條命令會返回被監(jiān)控機的nrpe版本信息

 NRPE v2.8.1

這樣就說明兩邊的通信沒問題!

監(jiān)控主機的nagios是通過調(diào)用被監(jiān)控機的nrpe來獲取信息,那么我們先在被監(jiān)控機的nrpe配置上添加要搜索的信息,也就是一些命令,然后nagios就通過nrpe調(diào)用這些命令來獲取信息

這些命令是在nrpe.cfg文件中定義:

 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_sda3]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda3
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%

在文件最后我看見有這樣一些命令,check_XXX 這個名字是可以自己定義,只要不重復就可以,后面就是你定義的這條命令是調(diào)用哪個東西來獲取信息,后面跟的這些命令路徑不難發(fā)現(xiàn)全是在libexec文件里,我們之前說nagios是調(diào)用command.cfg定義的命令,而command.cfg命令也是在libexec里,那么整個流程我們可以看成是這樣:

監(jiān)控外部信息是這樣一個過程:

nagios——command.cfg——libexec

監(jiān)控一些要登陸了機器才能查看的本地信息側是這樣一個過程:

nagios——command.cfg(check_nrpe)——nrpe.cfg——libexec

在nrpe.cfg文件中定義的幾條默認的配置可以直接使用,我們在使用前先測試一下,看看需不需對命令的參數(shù)進行一些調(diào)整,以符合我們實際情況:

在監(jiān)控主機上運行:

 /usr/local/nagios/libexec/check_nrpe -H 192.168.1.211 -c check_users

這條命令會出現(xiàn)這樣的信息:

 USERS OK - 3 users currently logged in |users=3;5;10;0

如果需要調(diào)整參數(shù)須在被監(jiān)控機上做調(diào)整,然后我們把這些默認已有的命令添加在我們的被監(jiān)控機上

在監(jiān)控主機上編輯我們剛才建立的192.168.1.211.cfg文件,添加信息:

 define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_users
        check_command           check_nrpe!check_users
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_load
        check_command           check_nrpe!check_load
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_sda3
        check_command           check_nrpe!check_sda3
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_zombie_procs
        check_command           check_nrpe!check_zombie_procs
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_total_procs
        check_command           check_nrpe!check_total_procs
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_swap
        check_command           check_nrpe!check_swap
        max_check_attempts 5

        normal_check_interval 1
}

我還需要監(jiān)控sda1這個分區(qū)?我要怎么辦?

那么我們先在被監(jiān)控機的nrpe.cfg上添加:

command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda1

修改完記得重啟nrpe服務!重啟方法不多說了Kill掉進程,再重新運行就是!

然后在監(jiān)控主機的192.168.1.211.cfg文件中再添加:

define service{
        use     generic-service
        host_name       192.168.1.211
        service_description     check_sda1
        check_command           check_nrpe!check_sda1
        max_check_attempts 5
        normal_check_interval 1
}

重啟nagios:

 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios restart

打開nagios監(jiān)控主頁看看:

上面就是我們剛才添加的信息,如果還想添加更多的監(jiān)控,就按照上面的步驟操作就可以,關鍵是要明白libexec里面的命令怎么使用,這個就要發(fā)揮谷歌的作用了。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多