nagios 監控運用(一)

Nagios目標

     前段時間在客戶那裏做項目,晚上一切平安的回去了,第二天還不到7點就打電話,鬱悶(平時9點纔起來的)說系統登錄不上去了,電話也登陸不上去了。鬱悶昨天走的時候好好的,已經十分穩定的運行了n久了,怎麼突然這樣子了那,迷迷糊糊(晚上睡的太晚了,睡覺的時候好像天已經亮了)的起來打開電腦,機械式的插上網線、連上***,先ping下服務器ip地址,我靠不通。不應該啊,又鬱悶了下,前端服務器是雙機熱備啊,怎麼會不通那,沒辦法找人去客戶機房。
     起來就和客戶網管去了機房,打開機房門。哇塞,一股熱浪澎一下子出來了。這時知道了服務器怎麼回事了,趕緊開空調、打開機櫃門,挺壯觀的除了有人用的服務器當機了,其他的服務器全部報警(挺好看的,清一色的ibm服務器)。
     不由得說出一聲,有個監控系統就好了,現在研究下nagios這個開源的監控系統,首先謝謝秋香大姐。
       就像yahoo 說的一樣學東西要一個目標,看到下圖界面算成功了一小半,最主要的是,我們不在電腦旁邊是它給與我們告警。

1、web方式如下圖  正常狀態下,其狀態(status)是以藍色填充並顯示一個OK。
 

2、郵件通知,發生故障時,到達設定重試次數和探測間隔時間後發送郵件給管理員或相關人員,報告問題的大致情況如下圖:

3、手機短信,這是非常有用和及時的功能了;服務出現故障時只要你帶着手機就能知道

這3者是同時進行的:上班時間開個瀏覽器看頁面顯示、收取郵件、實時發送手機短信。

 

系統環境,以及準備

 

所需的軟件


httpd-2.2.12.tar.gz 
www.apache.org上能下載到
nagios-2.9.tar.gz
nagios-plugins-1.4.9.tar.gz
nrpe-2.12.tar.gz

上面軟件可以從http://www.nagios.org/download/網站上下載
 
  啓用發送郵件的郵件客戶端sendmai服務
啓動linux服務器上自帶的服務sendmail 服務,測試是否能發送郵件。
#service sendmail restart
#mail –s “內容” < 文件名
# chkconfig --level 2345 sendmail on   #把郵件服務添加到自啓動裏

建立nagios 、apache 程序運行所用的賬號
#useradd  nagios -s /sbin/nologin

開始安裝web瀏覽器apache
開始安裝apache
   #tar -zxvf httpd-2.2.12.tar.gz
   #cd httpd-2.2.12
   #./configure --prefix=/usr/local/apache/
   #make
   #make install

啓動apache 服務
#/usr/local/apache/bin/apachectl start
在瀏覽器中輸入http://192.168.2.47地址能測試apache 服務是否正確。出現”It Works!”,說明apache服務正常運行。
每次用這麼長的路徑來啓動服務,非常麻煩
#echo "export  PATH=$PATH:/usr/local/apache/bin" >> /etc/profile
#source /etc/profile
 
這次好了再啓動apache 時用
#apachectl start就行了簡便多了
 修改apache配置文件httpd.conf
修改apache運行用戶和組。需要把它改成nagios。添加nagios訪問目錄(nagios 的安裝路徑/usr/local/nagios),同時使用http用戶驗證。把下面的內容追加到httpd.conf文件的末尾:
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
<Directory "/usr/local/nagios/sbin">
    Options ExecCGI
    AllowOverride None
    Order allow,deny
    Allow from all
    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
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthName "Nagios Access"
    AuthType Basic
    AuthUserFile /usr/local/nagios/etc/htpasswd   # //用於此目錄訪問身份驗證的文件
    Require valid-user
</Directory>

這裏完成apache的配置,這裏不能重啓,需要安裝完成nagios之後重啓

 

開始安裝nagios程序
 
程序下載到本地之後通過ssh等其他工具上傳到服務器上,開始安裝nagios主程序
 

#tar -zxvf nagios-2.9.tar.gz
#cd nagios-2-9
#./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
#make all
#make install
#make install-commandmode
#make install-config

安裝完nagios後,我們可以在安裝目錄/usr/local/nagios下生成下面的目錄:

增加驗證用戶也就是通過web訪問nagios的時候,必須要用這個用戶登陸.在這裏我們增加用戶lee:密碼爲123456
[root@nogios-server~]#/usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd lee
New password: (輸入123456)
Re-type new password: (再輸入一次密碼)
Adding password for user test

查看認證文件的內容
[root@nogios-server ~]#cat /usr/local/nagios/etc/htpasswd

lee:OmWGEsBnoGpIc  前半部分是用戶名lee,後面是加密後的密碼
 
到這裏nagios的安裝也就基本完成了,你可以通過web來訪問
了.http://192.168.2.47/nagios 會彈出對話框要求輸入用戶名密碼,
輸入剛剛建立的用戶名和密碼就能訪問到nagios的主頁面了,如下圖

 
現在點擊裏面的選項什麼都打不開,因爲還沒有安裝完成那,耐心安裝吧,繼續吧。
 
安裝nagios 需要插件,安裝完成之後會在nagios/libexec目錄下生成nagios 需要的文件
[root@nogios-server ~]# tar -zxvf nagios-plugins-1.4.9.tar.gz
[root@nogios-server ~]# cd nagios-plugins-1.4.9
[root@nogios-server ~]#./configure --prefix=/usr/local/nagios/
[root@nogios-server ~]# make
[root@nogios-server ~]# make install

安裝完成之後,目錄下多了很多文件,如下圖。

這些插件都是nagios需要的插件
 
安裝nrpe
1、安裝nrpe
#tar zxvf nrpe-2.12.tar.gz
#cd nrpe-2.12
#./configure –prefix=/usr/local/nrpe
#make
#make install
注:如果在其他被監控機安裝nrpe,需要添加系統用戶nagios.
 
2、複製文件
安裝完nrpe後,需要很多nagios的插件,下面把nagios的插件複製過去。
進入到nagios 、libexec目錄下
#cd /usr/local/nagios/libexec/
#cp /usr/local/nrpe/libexec/check_nrpe
#cp check_disk  /usr/local/nrpe/libexec
#cp check_load  /usr/local/nrpe/libexec
#cp check_ping  /usr/local/nrpe/libexec
#cp check_procs  /usr/local/nrpe/libexec

安裝完成之後 nrpe沒有生成配置文件
#mkdir /usr/local/nrpe/etc
#cp sample-config/nrpe.cfg  /usr/local/nrpe/etc

到這裏監控機器(nagios-server)上的軟件就全部安裝完成了,下面就改配置了,下面的就麻煩了耐心慢慢配。
 
配置nagios服務器
 
到/usr/local/nagios/etc/目錄下配置nagios的配置文件,ls看下里面有很多配置文件如下圖
裏面是配置文件的模板,先改下名字
#cp nagios.cfg-sample nagios.cfg  #主配置文件,控制與定於nagios行爲
#cp cgi.cfg-sample cgi.cfg           #瀏覽器調用
#cp commands.cfg-sample commands.cfg #定義如何檢查服務、如何發送郵件以及信息
#cp resource.cfg-sample resource.cfg
修改主配置文件nagios.cfg
#cfg_file=/usr/local/nagios/etc/localhost.cfg   #註釋或刪掉這行
cfg_file=/usr/local/nagios/etc/hosts.cfg     #主機配置文件路徑
cfg_file=/usr/local/nagios/etc/hostgroups.cfg  #主機組配置文件路徑
cfg_file=/usr/local/nagios/etc/contacts.cfg      #去掉註釋聯繫人配置文件路徑
cfg_file=/usr/local/nagios/etc/contactgroups.cfg   #去掉註釋,聯繫組配置文件路徑
 cfg_file=/usr/local/nagios/etc/services.cfg       #去掉註釋,服務配置文件路徑    
 cfg_file=/usr/local/nagios/etc/timeperiods.cfg      #去掉註釋,監視時段配置文件路徑

 check_external_commands=1  #在web界面下重啓nagios、停止主機/服務檢查等操作,.默認值是0.
 command_check_interval=10s   #根據自己的情況定這個命令檢查時間間隔.默認值是1秒.
 
修改cgi配置文件cgi.cfg.跟修改nagios.cfg一樣,修改的地方如下:
   #如有多個用戶,中間用逗號隔開
   authorized_for_system_information=lee
   authorized_for_configuration_information=lee
   authorized_for_system_commands=lee
   authorized_for_all_services=lee
   authorized_for_all_hosts= lee
   authorized_for_all_service_commands=lee
   authorized_for_all_host_commands=lee

在這裏指定的用戶”lee”可以通過瀏覽器操縱nagios服務的關閉、重啓等各種操作
 增加其他的配置文件
1、增加主機配置文件
#vi hosts.cfg
define host {
       host_name                 nagios-server   #監控機的主機名
       alias                      nagios server
       address                    192.168.2.47   #監控機的ip地址
       contact_groups              sagroup
       check_command             check-host-alive   #主機檢查使用命令
       max_check_attempts          3      #最大嘗試次數
       notification_interval          10       #通知時間間隔
       notification_period           24x7
       notification_options          d,u,r  #d-down, u-unreacheable, r-recovery.
       }
#被監控主機的定義
define host {
       host_name                  mysql
       alias                      mysql
       address                    192.168.2.154
       contact_groups              sagroup
       check_command             check-host-alive
       max_check_attempts          3
       notification_interval          10
       notification_period           24x7
       notification_options          d,u,r
       }

創建聯繫組contact_group配置文件
 2、定義主機組配置文件hostgroups.cfg
 
    define hostgroup {
      hostgroup_name  sa-servers
      alias            sa servers
      members        nagios-server
      }

  主機組的成員必須是在hosts.cfg裏已經定義了的,多個主機成員間用逗號分隔。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章