前段時間在客戶那裏做項目,晚上一切平安的回去了,第二天還不到7點就打電話,鬱悶(平時9點纔起來的)說系統登錄不上去了,電話也登陸不上去了。鬱悶昨天走的時候好好的,已經十分穩定的運行了n久了,怎麼突然這樣子了那,迷迷糊糊(晚上睡的太晚了,睡覺的時候好像天已經亮了)的起來打開電腦,機械式的插上網線、連上***,先ping下服務器ip地址,我靠不通。不應該啊,又鬱悶了下,前端服務器是雙機熱備啊,怎麼會不通那,沒辦法找人去客戶機房。
起來就和客戶網管去了機房,打開機房門。哇塞,一股熱浪澎一下子出來了。這時知道了服務器怎麼回事了,趕緊開空調、打開機櫃門,挺壯觀的除了有人用的服務器當機了,其他的服務器全部報警(挺好看的,清一色的ibm服務器)。
不由得說出一聲,有個監控系統就好了,現在研究下nagios這個開源的監控系統,首先謝謝秋香大姐。
就像yahoo 說的一樣學東西要一個目標,看到下圖界面算成功了一小半,最主要的是,我們不在電腦旁邊是它給與我們告警。
1、web方式如下圖 正常狀態下,其狀態(status)是以藍色填充並顯示一個OK。
2、郵件通知,發生故障時,到達設定重試次數和探測間隔時間後發送郵件給管理員或相關人員,報告問題的大致情況如下圖:
3、手機短信,這是非常有用和及時的功能了;服務出現故障時只要你帶着手機就能知道
這3者是同時進行的:上班時間開個瀏覽器看頁面顯示、收取郵件、實時發送手機短信。
系統環境,以及準備
所需的軟件
httpd-2.2.12.tar.gz
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 服務,測試是否能發送郵件。
#mail –s “內容” < 文件名
# chkconfig --level 2345 sendmail on #把郵件服務添加到自啓動裏
建立nagios 、apache 程序運行所用的賬號
開始安裝web瀏覽器apache
開始安裝apache
#cd httpd-2.2.12
#./configure --prefix=/usr/local/apache/
#make
#make install
啓動apache 服務
每次用這麼長的路徑來啓動服務,非常麻煩
#source /etc/profile
修改apache運行用戶和組。需要把它改成nagios。添加nagios訪問目錄(nagios 的安裝路徑/usr/local/nagios),同時使用http用戶驗證。把下面的內容追加到httpd.conf文件的末尾:
<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主程序
#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
New password: (輸入123456)
Re-type new password: (再輸入一次密碼)
Adding password for user test
查看認證文件的內容
lee:OmWGEsBnoGpIc 前半部分是用戶名lee,後面是加密後的密碼
到這裏nagios的安裝也就基本完成了,你可以通過web來訪問
現在點擊裏面的選項什麼都打不開,因爲還沒有安裝完成那,耐心安裝吧,繼續吧。
安裝nagios 需要插件,安裝完成之後會在nagios/libexec目錄下生成nagios 需要的文件
[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
#tar zxvf nrpe-2.12.tar.gz
#cd nrpe-2.12
#./configure –prefix=/usr/local/nrpe
#make
#make install
2、複製文件
安裝完nrpe後,需要很多nagios的插件,下面把nagios的插件複製過去。
進入到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沒有生成配置文件
#cp sample-config/nrpe.cfg /usr/local/nrpe/etc
到這裏監控機器(nagios-server)上的軟件就全部安裝完成了,下面就改配置了,下面的就麻煩了耐心慢慢配。
到/usr/local/nagios/etc/目錄下配置nagios的配置文件,ls看下里面有很多配置文件如下圖
裏面是配置文件的模板,先改下名字
#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_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、增加主機配置文件
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
hostgroup_name sa-servers
alias sa servers
members nagios-server
}
主機組的成員必須是在hosts.cfg裏已經定義了的,多個主機成員間用逗號分隔。