日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Nagios远程监控软件的安装与配置详解(1)

發布時間:2024/6/21 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 Nagios远程监控软件的安装与配置详解(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Nagios遠程監控軟件的安裝與配置詳解(1)

作為系統管理員,我最擔心那些重要的在線系統在我不知情的情況下停機或者停止網絡服務,要改變這種被動局面,這里作者推薦一款網絡監控軟件Nagios,文中講述作者使用Nagios的過程以及心得,希望對初學者有所幫助。

AD:

作為系統管理員,我最擔心那些重要的在線系統在我不知情的情況下停機或者停止網絡服務,而且那些發生故障的服務或主機有時候可能要好長一段時間才知
道。尤其是遇到節假日,系統管理員就很緊張。要改變這種被動局面,這里我推薦網絡監控軟件Nagios,個人認為它最大的好處是可以發故障報警短信—只要
Nagios監控的對象發生故障,系統就會自動發送短信到手機上。下面摘錄Nagios官方網站的描述:

Nagios is an open source host, service and network monitoring program. 
Who uses it? Lots of people, including many big companies and organizations
Nagios是一個用來監控主機、服務和網絡的開放源碼軟件,很多大的公司或組織都在使用它。

在我來到現在這個機構之前,已經有一個Netsaint(nagios的老版本)在監控那些在線服務器,但是不完善,后來我立了一個項,部署了新的監控平臺nagios把所有的在線服務器都監控起來了;到目前為止,監控了413個主機和754個服務。

雖然Nagios十分受用,但配置起來確是麻煩,根據其讀音我給它取可一個中文名-難夠死。基于這樣的原因,我將盡可能詳細地向大家講述我用Nagios的過程以及心得,希望對初學者有所幫助。

安裝所需軟件

一、安裝Nagios

Nagios可以運行在各種版本的linux及主流的unix環境,我試過的環境有Redhat
linux,Centos,Debian等。在實際的運維中,我是以centos
4來部署nagios的。安裝完操作系統之后,需要把多余的服務都關掉,只留sshd這個服務。

然后用wget下載源碼包nagios-2.6.tar.gz和httpd-2.2.0.tar.gz。接下來先分別安裝軟件,過程如下:
1、解壓nagios. tar zxvf nagios-2.6.tar.gz
2、配置nagios. cd nagios ; ./configure –prefix=/usr/local/nagios
3、編譯nagios. make all
4、
安裝nagios。與別的軟件安裝稍有不同,nagios的安裝要好幾步才能完成。第一步執行make
install安裝主要的程序、CGI及HTML文件,第二步執行 make install-commandmode
給外部命令訪問nagios配置文件的權限,第三步執行 make install-config
把配置文件的例子復制到nagios的安裝目錄。按照安裝向導的提示,其實這里還有一個 make
install-init的步驟,它的作用是把nagios做成一個運行腳本,使nagios隨系統開機啟動,這是一個很方便的措施。但本人是一個喜歡把
問題簡化的人,沒有執行這樣的操作。
5、驗證程序是否被正確安裝。切換目錄到安裝路徑(這里是/usr/local/nagios),看是否存在 etc、bin、 sbin、 share、 var這五個目錄,如果存在則可以表明程序被正確的安裝到系統了。后表是五個目錄功能的簡要說明:

bin

Nagios執行程序所在目錄,這個目錄只有一個文件nagios

etc

Nagios配置文件位置,初始安裝完后,只有幾個*.cfg-sample文件

sbin

Nagios Cgi文件所在目錄,也就是執行外部命令所需文件所在的目錄

Share

Nagios網頁文件所在的目錄

Var

Nagios日志文件、spid 等文件所在的目錄

二、安裝nagios的插件

沒有插件,nagios將什么作用也沒有,插件也是nagios擴展功能的強大武器,除了下載常用的插件外,我們還可以根據實際要求編寫自己的插件。Nagios的插件nagios-plugins-1.4.5在www.nagios.org上可以找到,接著我們用wget下載它。

注意:插件與nagios之間的版本關聯不大,不一定非得用nagios-plugins-1.4.5這個版本。下載完成后,安裝它是很簡單的:先
執行配置 ./configure –prefix=/usr/local/nagios ,接著編譯安裝 make ; make
install即可。

這里需要說明一下的是在配置過程指定的安裝路徑是/usr/local/nagios,而不是/usr/local/nagios-plus,安裝
完成后,將在目錄/usr/local/nagios生成目錄libexec(里面有很多文件),這正是nagios所需要的。

三、安裝web服務器apache

Web服務不是nagios所必須的,但是如果nagios沒有web,查看監控對象的對象將是非常費事和沒有趣味的事情(只有通過查看nagios的日志來判斷狀態)。我不愿干特無聊的事,所以就花少許時間把web安裝一下。

在unix/linux世界,apache是web服務器的首選對象,其下載網站為www.apache.org 。建議下載源碼。因為我們不需要很復雜的web功能,因此簡單的執行一下幾個步驟就可以正確的把apache安裝到系統:
1、解包、配置:tar zxvf httpd-2.2.0.tar.gz ; cd httpd-2.2.0 ; ./configure –prefix=/usr/local/apache 。
2、編譯安裝: make ; make install 。
安裝完成后,執行命令 ./usr/local/apache/bin/apachectl –t 檢查一下apache是否正確安裝。

配置前的處理

最主要的工作是創建nagios用戶及其束組,讓nagios的運行用戶為nagios而不是root。再把目錄
/usr/local/nagios的屬主設置為nagios,以保證系統的安全。Nagios可以以root用戶運行,但并不推薦這樣做。用下面的步驟
來完成上述過程:

1、添加系統帳戶nagios: useradd nagios 就很容易的把用戶和組nagios添加到系統。
的類型的linux發行版添加用戶和組要麻煩一些-需要要添加組,然后再執行 useradd –g nagios
nagios這樣的操作。在實際的運用場景,nagios用戶并沒有必要作為系統用戶來登錄linux系統,因此可以不必設置nagios的用戶密碼,甚
至可以把nagios用戶的登錄shell設置成/bin/false。

2、更改目錄屬組:chown –R nagios.nagios /usr/local/nagios 。請注意,有的unix/linux的版本用戶和屬組分隔符號不是“.”,可能會是這樣的形式 chown –R nagios:nagios /usr/local/nagios 。

3、sendmail。看看sendmail是否正常運行?我們需要使用sendmail來發送故障報警信息,所以這個包必須能夠正常工作。Sendmail分為服務器和客戶端兩部分,有2種發送報警郵件的方式:
(1)nagios所在的機器通過sendmail客戶端程序把郵件發送到專門的郵件服務器,再由郵件服務器把消息發送到用戶郵箱。
(2)
郵件客戶端和服務器端就用nagios所在系統sendmail。第一種方式用起來非常規范,但更麻煩,例如需要做地址解析、修改郵件服務器的配置;另外
還有一個問題-它還依賴別的系統,增加了故障點和復雜度。第二種方法十分簡單,只需啟動sendmail服務即可,而且它不再依賴于別的系統和服務。在我
工作的實際場景,這兩種方法都使用,用專門的郵件服務器會有發送延遲的情況(因為郵件服務器要處理很多其他用戶郵件的收發);而直接用sendmail做
服務器和客戶端就異常簡單和方便了。非常幸運的是,幾乎所有的linux/unix發行版都默認安裝sendmail,費了這么多筆墨,其實就做一個動作
-把sendmail服務運行起來。

4、手機短信發送工具。我現在的公司是sp,有自己的短信通道,直接把發送短信的客
戶端程序sms_send拷貝到目錄/usr/local/bin/下。如果沒有短信下發的網關通道,那怎么辦呢?網絡上有很多短信發送的客戶端程序,很
有名的就是smsclient,把它下載下來,解包后安裝。不要忘記購買手機modem和手機卡,modem只支持SIM卡而不支持cdma。

安裝完smsclient軟件和硬件modem后,測試一下是否正常。如果沒有modem又怎么辦?辦法還是有的:讓你
的手機號可以接受郵件,這需要你去營業廳開通這項功能。短信報警功能是最有用的功能,我們不可能成天盯著監視屏幕,也不可能成天接受電子郵件,但我們的手
機卻可以24小時在線,只要被監控對象發生故障,馬上就可以收到故障報警短信。

以前,我很怕放長假,因為最擔心關鍵的設備或服務在假期出故障而自己不知道,所以放假就變成了值班;想必很多網絡管理員
都有類似的經歷。在我動手部署nagios以前,曾經在網上搜索關于nagios配置的文章,發現絕大部分都沒有介紹使用手機短信這個方便的功能,真是遺
憾呀!再次,強烈建議啟用nagios的短信故障報警功能。

配置

配置是nagios最復雜的部分,它涉及到多個文件的配置,為了方便描述,這里逐個的進行配置。

一、apache 配置
我們分兩個步驟來完成這個配置。第一步是修改
apache的配置文件httpd.conf,這里的文件路徑是/usr/local/apache/conf/httpd.conf
。把apache的運行用戶[1]和運行組改成nagios,往下把下面的行追加到文件httpd.conf的末尾:

#setting for nagios
ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin
//Cgi文件所在目錄
AuthType Basic
Options ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AuthName "Nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd //驗證文件路徑
Require valid-user

Alias /nagios /usr/local/nagios/share
//nagios頁面文件目錄
AuthType Basic
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthName "nagios Access"
AuthUserFile /usr/local/nagios/etc/htpasswd //驗證文件路徑
Require valid-user

上述文本塊的作用是對nagios的目錄進行用戶驗證,只有合法的授權用戶才可以訪問nagios的頁面文件。第二步是生成用戶驗證文件:只要執行命令 /usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd sery

,就會生成web的合法訪問用戶sery;命令交互執行,需要輸入2次密碼,然后就在文件/usr/local/nagios/etc/htpasswd
寫入一行-第一個字段是剛生成的用戶名,第二個是加密后的密碼,如果還要添加更多的用戶,執行命令 htpasswd 就不需要選項
“-c”,否則就會覆蓋所有已經生成的行。

配置完成后,執行/usr/local/apache/bin/apachctl –t 檢查apache配置文件是否有語法錯誤,無誤后用/usr/local/apache/bin/apachctl start & 把apache啟動,然后從另外的機器的瀏覽器輸入nagios 的訪問地址(如:http://ip/nagios),如果正常,將出現下圖的登錄驗證窗口等待用戶輸入:

輸入用htpasswd創建的用戶名和密碼測試一下,沒有問題的話,進行下一步配置操作。

二、nagios配置

剛安裝完成的nagios,其配置文件的目錄是/usr/local/nagios/etc,下圖是其etc目錄的文件:

先把這些文件改名,如 cgi.cfg-sample改成cgi.cfg ,用命令cp cgi.cfg-sample cgi.cfg
…依樣把余下的幾個*.cfg-sample都復制成*.cfg文件。從nagios2.6版開始,不用修改配置文件localhost.cfg就可以直
接運行../bin/nagios –v
nagios.cfg驗證程序是否能正常運行(nagios2.5及以前版本的最小運行的配置文件是minimal.cfg,但需要修改這個文件多處才能
驗證成功)。

當然,我們不能指望這個最小的配置文件能夠滿足實際的需求,因此,需要對現有的配置文件進行修改,其次增加自定義的一些配置文件。這里,我們分兩步進行:先修改配置文件再增添自定義文件。

1、修改配置文件
Nagios的主配置文件是nagios.cfg,我們就從這個文件開始修改。用vi編輯nagios.cfg,注釋行 #cfg_file=/usr/local/nagios/etc/localhost.cfg[2],然后把下面幾行的注釋去掉:

cfg_file=/usr/local/nagios/etc/contactgroups.cfg  //聯系組配置文件路徑
cfg_file=/usr/local/nagios/etc/contacts.cfg //聯系人配置文件路徑
cfg_file=/usr/local/nagios/etc/hostgroups.cfg //主機組配置文件路徑
cfg_file=/usr/local/nagios/etc/hosts.cfg //主機配置文件路徑
cfg_file=/usr/local/nagios/etc/services.cfg //服務配置文件路徑
cfg_file=/usr/local/nagios/etc/timeperiods.cfg //監視時段配置文件路徑

改check_external_commands=0為check_external_commands=1
這行的作用是允許執行在web界面下重啟nagios、停止主機/服務檢查等操作。把command_check_interval的值從默認的1改成
command_check_interval=10s(根據自己的情況定這個命令檢查時間間隔,不要太長也不要太短)。主配置文件要改的基本上就是這
些,通過上面的修改,發現/usr/local/nagios/etc并沒有文件hosts.cfg等一干文件,怎么辦?稍后手動創建它們。
第二個要修改的配置文件是cgi.cfg,它的作用是控制相關cgi腳本。

先確保use_authentication=1。曾看過不少的文章,都是建議把use_authentication的值設置成”0”來取消驗證,這是一個十分糟糕的想法。接下來修改default_user_name=sery ,再后面的修改在下表列出:

authorized_for_system_information=nagiosadmin,sery 
authorized_for_configuration_information=nagiosadmin,sery
authorized_for_system_commands=sery //多個用戶之間用逗號隔開
authorized_for_all_services=nagiosadmin,sery
authorized_for_all_hosts=nagiosadmin,sery
authorized_for_all_service_commands=nagiosadmin,sery
authorized_for_all_host_commands=nagiosadmin,sery

那么上述用戶名打那里來的呢?是執行命令 /usr/local/apache/bin/htpasswd –c /usr/local/nagios/etc/htpasswd sery 所生成的,這個要注意,不能隨便加沒有存在的驗證用戶,為了安全起見,不要添加過多的驗證用戶。

第3個修改的配置文件是misccommands.cfg,這個文件的主要功能是用來發送報警短信和報警郵件,對其的修改如下所示:

#host-notify-by-sms   //發送短信報警
define command {
command_name host-notify-by-sms
command_line /usr/local/bin/sms_send "Host $HOSTSTATE$
alert for $HOSTNAME$! on '$DATETIME$' " $CONTACTPAGER$
}

#service notify by sms //發送短信報警
define command {
command_name service-notify-by-sms
command_line /usr/local/bin/sms_send "'$HOSTADDRESS$'
$HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$
}

主機和服務的郵件報警通知已經在文件中,不須更改。也可以把短信和郵件報警通知這些配置塊寫到文件commands.cfg中,效果是一樣的。

2、增加新的配置文件
先創建簡單的配置文件timeperiods.cfg,其內容如下:

define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}

這個文件的定義明晰易懂,不多做說明。另建議7X24小時監控。
第二個手動創建的配置文件是 contacts.cfg,其格式如下:

define contact {
contact_name sa //不要有空格
alias system administrator
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands service-notify-by-sms,service-
notify-by-email //這個命令讀配置文件miscommands.cfg
host_notification_commands host-notify-by-email,host-noti
fy-by-sms //這個命令讀配置文件miscommands.cfg
email sery@163.com
pager 13333333333 //手機號,收報警短信
} //不要把這個符號寫掉了

define contact {
contact_name sery
alias system administrator
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands service-notify-by-sms,service-
notify-by-email
host_notification_commands host-notify-by-email,host-noti
fy-by-sms
email sery@sohu.com
pager 13312345678
}

上面的文件定義了2個聯系人,如果有更多聯系人的話,照這個格式在后面追加即可。服務通知選項
(service_notification_options)與主機通知選項(host_notification_options)的幾個選項在這里
說明一下:w-warning ,
u-unknown,c-critical,r-recovery;d-down,u-unreachable,注意一下,主機報警和服務報警有些差異。

緊接著的第三個手動創建的配置文件是contactgroups.cfg文件,這個文件是依照上一個文件contacts.cfg來的,contactgroups文件相對簡單一些,其格式如下:

define contactgroup {
contactgroup_name sagroup //不要用空格
alias system administrator group
members sa,sery //本例有2個成員
}

多個成員之間用逗號做分界符,如果有更多的聯系組,就依相同的格式在文件中追加余下的組。
關鍵的角色終于登場,這就是配置文件hosts.cfg。下面是我定義的兩個主機的基本樣式:

#define monitor  host

#################################################################
# Wangjing IDC servers #
#################################################################
define host {
host_name nagios-server
alias nagios server
address 61.x..x.49
contact_groups sagroup //多個聯系組用逗號分隔,
數據來源于contactgroups.cfg
check_command check-host-alive
max_check_attempts 5
notification_interval 10 //值可調,大小什么值合適需自己測定
notification_period 24x7
notification_options d,u,r
}

define host {
host_name 24-25
alias server 24-25
address 202.X.24.25
contact_groups sagroup
check_command check-host-alive //down機就發報警通知
max_check_attempts 5
notification_interval 10
notification_period 24x7
notification_options d,u,r
}

更多的主機依此格式逐個追加進來。小技巧,如果是連續的ip段,最好自己寫個腳本生成hosts.cfg文件,為了以后維護方便,盡可能在文件中使用易讀的注釋(如本例# Wangjing IDC servers #)。

再一個重量級的配置文件是services.cfg,沒有這個文件,什么監控也沒用。下面給出一個樣式文件:

#service definition

##############################################################
# Wangjing IDC servers service for host-live #
##############################################################
define service {
host_name nagios-server //來源:hosts.cfg
service_description check-host-alive
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups sagroup //來源:contactgroups.cfg
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check-host-alive //檢查主機是否存活
}
define service {
host_name 74-210
service_description check_tcp 80
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups sagroup
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_tcp!80 //檢查tcp 80端口服務是否正常
}

書寫時要注意的是,check_tcp與要監控的服務端口之間要用”!”做分隔符。如果服務太多,以應該考慮用腳本來生成。
主機組配置文件hostgroups.cfg,這是一個可選的項目,它建立在文件hosts之上,其格式如下:

define hostgroup {
hostgroup_name sa-servers
alias sa servers
members nagios-server,24-25,24-26 //用逗號間隔多個主機
}

多個主機組依上面的格式逐個追加上去。后面給一個主機組的截圖。

千辛萬苦,終于把這些配置給做好保存,現在幾乎有點迫不及待了,運行程序/usr/local/nagios –v /usr/local/nagios/etc/nagios.cfg來檢查所有配置文件的正確性。如果十分幸運的話,運行完畢將在輸出尾部出現:

Total Warnings: 0
Total Errors: 0

Things look okay - No serious problems were detected during the pre-flight check

這樣的情況,大功告成;但我卻沒有這么幸運,修改了好多個地方才成功。不過值得慶幸的是,這個校驗的錯誤報告時非常有用的(不象有的系統的幫助文檔中看不中用)。看我故意設置的一個錯誤產生的輸出:

[root@netmonitor nagios]# bin/nagios -v etc/nagios.cfg

Nagios 2.5
Copyright (c) 1999-2006 Ethan Galstad (http://www.nagios.org)
Last Modified: 07-13-2006
License: GPL

Reading configuration data...

Error: Could not find any host matching 'nagios-server'
Error: Could not expand member hosts specified in hostgroup
(config file '/usr/local/nagios/etc/hostgroups.cfg', starting on line 2)
………………………

它告訴我配置文件在什么位置產生錯誤(實際上我故意在配置文件里加了一個注釋符號來測試)。驗證通過以后,就可以執行命令/usr/local/nagios –d /usr/local/nagios/etc/nagios.cfg
把nagios作為守護進程。然后用ps –aux | grep nagios
看進程是否處于運行狀態。到這一步,nagios服務基本上算是配置完畢。做hosts.cfg、services.cfg等配置時,可以運用一些小技巧
來減少出錯的概率:如先定義少許的主機、服務,待校驗無誤后再追加。

驗收

用瀏覽器輸入nagios所在服務器的ip及目錄,如http://61.135.X..X/nagios,再輸驗證所需的用戶名和密碼,就可點擊頁面右邊的相關連接來查看各種狀態。關掉某個被nagios監控主機的服務或者拔掉某個服務器的網線,等幾分鐘,點擊超連接“Service Detail”觀察頁面狀態看是否有紅色的醒目的報警出現。

一會兒,就會收到報警短信和報警郵件,然后在把測試所有的服務開啟或把拔下來的網線查上去,片刻后,網頁里的紅色報警表格消失,手機短信或郵件通知故障恢復。如果你的情況也這樣,那么真正大功告成。
Nagios
的功能十分強大,在我的項目里,因為我的需求不同而盡可能的簡化了nagios而沒有使用代理、多更多插件等功能,在一個不超過1000個服務器的網絡規
模里,它工作得很好。如果有更多的服務器,建議使用mysql數據來管理監控對象。在部署nagios的過程中,我多很多選項作了取舍,更詳細的情況請參
照官方的文檔。

總結

以上是生活随笔為你收集整理的Nagios远程监控软件的安装与配置详解(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。