歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Ubuntu上快速搭建Nagios監控

Ubuntu上快速搭建Nagios監控

日期:2017/3/1 17:15:40   编辑:關於Linux

Ubuntu上快速搭建Nagios監控 Nagios是常用的系統監控工具,提供了很多基本服務的監控腳本,如HTTP,MYSQL等,同時具有不錯的可擴展性,自己可定制針對特定參數的監控腳本以及報警的方式。但Nagios的配置相當復雜,本文總結了我最近在Ubuntu Server上搭建Nagios的過程,以方便大家將來更加快速的安裝搭建監控系統。 Nagios安裝 安裝分為nagios server和被監控端的兩部分。nagios server提供web界面,報警配置;被監控端需要安裝nagios nrpe服務,負責與server通信本機的監控情況。 1) Nagios Server的安裝: 默認情況下,nagios會使用apache2作為自己的web server。本著快速的原則,在server上運行: 1 www.2cto.com sudo apt-get apache2 nagios3 nagios-nrpe-plugin nagios-nrpe-plugin用於與被監控機器上的nrpe服務通信; 安裝過程中,會提示輸入nagsio web管理員的密碼,nagios web的登錄帳號和密碼是nagiosadmin/<安裝時設定的密碼>;也可以修改/etc/nagios3/htpasswd.users來改變用戶、密碼。 安裝完成後,在/etc/apache/conf.d下會建立nagios3.conf,這是關於nagios web的配置。訪問http://<apache2 Server Address>/nagios3即可看到nagios的主頁。 如果想在網頁上看nagios的doc,請安裝: 1 sudo apt-get install nagios3-doc 如果想使用Nginx作為WEB SERVER,請Google "Nagios Nginx"。 2)被監控機器上,運行: 1 sudo apt-get install nagios-nrpe-server 不管是nagios server還是被監控機器,默認的監控腳本配置會安裝在/etc/nagios-plugin/config下,監控腳本都在/usr/lib/nagios/plugins下。 Nagios配置 1)Nagios Server: Nagios裡需要配置的Object主要分Host, Service, Contact等; 其主配置是/etc/nagios3/nagios.cfg,一般不用怎麼修改; 腳本配置 www.2cto.com 腳本的配置是/etc/nagios3/commands.cfg,這裡面常常修改notify-host-by-email;notify-service-by-email,通常會修改發email的命令,我改成了用sendEmail(apt-get install sendEmail)發email: 1 define command{ 2 command_name notify-service-by-email 3 command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/sendEmail -f <[email protected]> -t <[email protected]> -u "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -s <SMTP_SERVER> -xu <EMAIL_USER_NAME> -xp <EMAIL_USER_PASSWORD> 4 } 也可增加一些用短信報警的命令,具體可Google "Nagios短信報警"。 另外需要查看的腳本配置位於/etc/nagios-plugin/config下,比如check_nrpe.cfg: 01 # this command runs a program $ARG1$ with arguments $ARG2$ 02 define command { 03 command_name check_nrpe 04 command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$ 05 www.2cto.com } 06 07 # this command runs a program $ARG1$ with no arguments 08 define command { 09 command_name check_nrpe_1arg 10 command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ 11 } 分別配置了帶一個參數和帶兩個參數的nrpe命令,command name是check_nrpe_1arg的命令帶一個參數,command name是check_nrpe的帶兩個參數。比如我配置的腳本想查看目標機上的load,command line就需配置成check_nrpe_1arg!check_load,該命令會調用nrpe server上的check_load命令。 想查看check_http/check_ping/check_mysql的詳細,對應的請查看http.cfg/ping.cfg/mysql.cfg裡是怎麼配置的。一般都是調用/usr/lib/nagios/plugins下的腳本,這些腳本都是可執行的,加"-- help"可查看該腳本的具體用法。如: 1 /usr/lib/nagios/plugins/check_http --help 可輸出check_http的使用說明。 配置的組成結構 在/etc/nagios3/conf.d下有一組配置,該配置的結構為: 1) contacts_nagios2.cfg: 配置聯系人,可配置報警的命令等,一般我會在這裡修改了聯系人的email; www.2cto.com 2) generic-service_nagios2.cfg和generic-host_nagios2.cfg配置,generic-host/generic-service的一些配置,這樣你配置的host/service只要配上use generic-host/use generic-service就能繼承相應的配置。擴展的配置放在extinfo_nagios2.cfg裡,時間段配置在timeperiods_nagios2.cfg裡,這幾個文件我都沒有修改。 3) hostgroups_nagios2.cfg裡配置host的分組,實際上它的主要作用是給host進行分類; 4)最重要的是services_nagios2.cfg,這裡配置了需監視的service,每個service可指定針對哪類host有效。如: 1 define service { 2 hostgroup_name http-servers 1 service_description HTTP 2 check_command check_http 3 use generic-service 4 notification_interval 0 ; set > 0 if you want to be renotified 5 } 比較合理的配置方法是,在service_nagios2.cfg裡為每類server配置service,然後在hosts.cfg和hostgroup_nagios2.cfg,配置相應的server和該server的類別。這樣,在server地址或server上的服務發生變化的情況下,只需要修改host.cfg和hostgroup_nagios2.cfg即可。 www.2cto.com 被監控機器的配置 配置文件是/etc/nagios/nrpe.cfg。主要配置項有: 1 #server_address=127.0.0.1 默認是只有本機才能訪問,多IP地址的情況下也不知道用的哪個IP,通常情況下會配成內網的地址; 1 allowed_hosts=127.0.0.1 容許訪問nrpe的機器,多個主機用','分隔,注意不要留空格,“127.0.0.1, 192.168.1.12”是不工作的,必須是"127.0.0.1,192.168.1.12"; nrpe裡的自定義command,如: 1 command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10 2 command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20 3 command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1 這樣在nagios server上可通過/usr/lib/nagios/plugins/check_nrpe -H <被監控機器> -c check_load來調用被監控機上的check_load;又參見/etc/nagios-plugin/config/check_nrpe.cfg,需要配置的command line應為check_nrpe_1arg!check_load。我就是在這裡寫成了check_nrpe!check_load導致服務unknown的。 www.2cto.com 後繼 按以上步驟,大概20分鐘後就可以搭起一個最基本的監控系統。完成後可通過nagios的web查看各個host和service,觀看詳細的運行情況,包括下次監控腳本運行時間等等。如果需要細致的配置,如配置檢查間隔等,請查看nagios的官方文檔。(nagios主頁位於http://nagios.org) 如果需要擴展監控腳本,需自己寫一個腳本,返回值為0, 1, 2時分別代表Normal,Warning,Critical的狀態,然後在nrpe裡配好command即可。 我還碰到過一個報警命令配錯了,系統在一次報警失敗後,遇到新的需要報警的時候,沒有再次報警的問題。Google了一下,可能是Nagios Cache的問題,清下cache就行。 1 rm /var/cache/nagios3/* 作者 julien
Copyright © Linux教程網 All Rights Reserved