Nagios監控基礎安裝與監控項部署(下)
上文總結了nagios監控的基礎安裝配置,現在來總結一下Nagios監控項部署
一、Nagios服務端監控部署
1、Nagios服務端目錄與相關配置文件說明
Nagios 安裝完成後,/usr/local/nagios/目錄下會生成 nagios 相關目錄及配置文件,默認的的配置文件在/usr/local/nagios/etc 目錄下。詳細的描述如下:
a)nagios安裝後的目錄結構
[[email protected] ~]# ll /usr/local/nagios/ # Nagios 安裝後的目錄結構 total 32 drwxrwxr-x. 2 nagios nagios 4096 Jun 6 15:53 bin # Nagios 相關命令 drwxrwxr-x. 3 nagios nagios 4096 Jun 6 15:53 etc # Nagios 配置文件 drwxr-xr-x. 2 root root 4096 Jun 6 15:52 include # Nagios 引用文件 drwxrwxr-x. 2 nagios nagios 4096 Jun 6 15:53 libexec # Nagios 插件目錄 drwxrwxr-x. 2 nagios nagios 4096 Jun 6 15:40 sbin # Nagios 外部命令 drwxrwxr-x. 11 nagios nagios 4096 Jun 6 15:52 share # Nagios Web 頁面展示相關目錄 drwxrwxr-x. 5 nagios nagios 4096 Jun 6 18:41 var # Nagios 數據及日誌目錄
所有客戶端本地的監控都是通過執行libexec目錄下的插件來實現的,另外,如果開啟了snmp,nagios服務端也可以主動抓取
b)nagios核心配置文件說明
Nagios主配置文件為nagios.cfg,默認在/usr/local/nagios/etc/下,另外,在/usr/local/nagios/etc/下有個objects目錄(類似nginx中的extra目錄),裏面存放的是主配置文件nagios.cfg包含的其他nagios配置文件:如下:
[[email protected] ~]# tree /usr/local/nagios/etc/ # Nagios 配置文件目錄 /usr/local/nagios/etc/ |-- cgi.cfg|-- htpasswd.users # 登錄 Nagios Web 頁面時的用戶名密碼認證 |-- nagios.cfg ##主配置文件 |-- nrpe.cfg # 客戶端配置文件 |-- objects # 主配置文件包含的配置文件目錄,用於定義nagios對象 | |-- commands.cfg # 存放 Nagios 自己定義的命令(與linux裏的插件命令關聯) | |-- contacts.cfg # 用於配置報警聯系人 | |-- hosts.cfg # 用於配置被監控的主機 | |-- localhost.cfg # 用於定義對本機的監控條目 | |-- printer.cfg # 用於定義對打印機的監控條目 | |-- services.cfg # 用於配置被監控的服務 | |-- switch.cfg # 用於定義對交換機的監控條目 | |-- templates.cfg # 模板配置文件 | |-- timeperiods.cfg # 用於配置報警周期時間 | `-- windows.cfg # 用於定義對 Windows 的監控條目 `-- resource.cfg
主配置nagios.cfg中可以指定單獨包含一個cfg文件,也可以指定包含一個目錄,而這個被包含目錄下所有的cfg文件也都會被nagios.cfg包含:
2、主配置文件nagios.cfg配置過程
[[email protected] ~]# cd /usr/local/nagios/etc/
[[email protected] etc]# ls
cgi.cfg htpasswd.users nagios.cfg nrpe.cfg objects resource.cfg
a)增加主機和服務的配置文件
[[email protected] etc]# vim nagios.cfg +34 #20170605 cfg_file=/usr/local/nagios/etc/objects/hosts.cfg cfg_file=/usr/local/nagios/etc/objects/services.cfg cfg_dir=/usr/local/nagios/etc/objects/services
#---cfg_dir是為備用增加的一個service目錄,作用:在目錄下的文件只要符合*.cfg就可以被nagios加載。使用腳本批量部署時,可以非常方便的隨機命名配置文件。
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
#---localhost.cfg為服務端本地配置文件,註釋掉,然後進行統一監控
b)根據已有數據生成hosts.cfg主機文件
[[email protected] etc]# cd /usr/local/nagios/etc/objects/ [[email protected] objects]# head -51 localhost.cfg > hosts.cfg [[email protected] objects]# chown nagios.nagios /usr/local/nagios/etc/objects/hosts.cfg
c)生成services.cfg服務文件
[[email protected] objects]# touch services.cfg #---預留 [[email protected] objects]# chown nagios.nagios services.cfg
d)生成服務的配置文件目錄,此目錄下所有的*.cfg配置文件,都會被自動被包含到主配置文件中生效!
[[email protected] objects]# mkdir services [[email protected] objects]# chown nagios.nagios services
3、配置nagios服務端監控項
1)hosts.cfg配置文件說明
#---hosts.cfg是用來存放nagios要監控的主機的相關配置
#---hosts.cfg主機定義部分的參數說明:
define host{ #此為定義被監控主機的配置文件
use linux-server #引用類,定義主機使用的模板,在templates.cfg中預定義
host_name web01 #指定主機名,並不是實際機器的主機名,自己定義,方便以後在定義服務時調用
alias web01 #別名
address 10.0.0.8 #指定被監控主機的地址
check_command check-host-alive #檢查主機存活命令,來自commands.cfg
max_check_attempts 3 #故障後,最大嘗試檢測次數
normal_check_interval 2 #正常檢查時間間隔,單位分鐘
retry_check_interval 2 #故障後,重試的檢查間隔,單位分鐘
check_period 24x7 #檢查周期,參見timeperiods.cfg
notification_interval 300 #故障後兩次報警的時間間隔,單位分鐘
notification_period 24x7 #一天內通知的周期。一天或半天,參見timeperiods.cfg
notification_options d,u,r #主機狀態通知選項,down,unreacheable,recovery
contact_groups admins #報警到admins 用戶組。在contacts.cfg中定義
}
2)配置hosts.cfg,添加你想要監控的客戶端主機及主機組(HOST GROUP)。
以客戶端web01、web02主機為例:
[[email protected] ~]# cd /usr/local/nagios/etc/objects #---nagios.cfg包含的輔助配置文件目錄 [[email protected] objects]# cat hosts.cfg #client_host # Define a host for the local machine define host{ use linux-server host_name web01 alias web01 address 10.0.0.8 } define host{ use linux-server host_name web02 alias web02 address 10.0.0.7 } define host{ use linux-server host_name nagios01 alias nagios01 address 10.0.0.71 } # Define an optional hostgroup for Linux machines define hostgroup{ hostgroup_name linux-servers alias Linux Servers members web01,web02,nagios01 }
3)配置services.cfg,定義要監控的主機資源
services.cfg文件是配置監控服務的,是nagios核心的配置文件之一,(服務器在50臺以內時)自己想要監控的多半服務配置都能添加在這裏
註:該文件需要手動添加
services.cfg配置參數:
define service {
use generic-service
host_name web01
service_description Current Load
check_command check_nrpe!check_load
max_check_attempts 2
normal_check_interval 4
retry_check_interval 4
check_period 24x7
retry_interval 1
notification_interval 1440
notification_period 24x7
notification_options w,c,u,r
contact_groups admins
process_perf_data 1
#retain_nonstatus_information 0
}
*對監控客戶端本地資源的配置:
[[email protected] objects]# cat services.cfg ################################## # 被動監控 # ################################## #磁盤分區 define service { use generic-service host_name web01,web02,nagios01 service_description Disk Partition check_command check_nrpe!check_disk } #swap define service { use generic-service host_name web01,web02,nagios01 service_description Swap Useage check_command check_nrpe!check_swap } #內存 define service { use generic-service host_name web01,web02,nagios01 service_description Mem Useage check_command check_nrpe!check_mem } #以上監控項,可以通過templates.cfg簡寫成如下配置: #系統負載 define service { use generic-service host_name web01,web02,nagios01 service_description Current Load check_command check_nrpe!check_load } #磁盤I/O define service { use generic-service host_name web01,web02,nagios01 service_description Disk I/O stat check_command check_nrpe!check_iostat!5!11 } ################## # 主動監控 # ################## #PING監控 define service { use generic-service host_name web01,web02,nagios01 service_description PING check_command check_ping!100.2,20%!500.0,60% }
4)調試hosts.cfg和service.cfg的所有配置
[[email protected] etc]# /etc/init.d/nagios checkconfig #---檢查語法 Running configuration check... OK.
二、小結
在nagios監控項部署過程中,有很多問題出現,本人也正在對nagios進行仔細研究。關於nagios及zabbix的博文會持續更新
本文出自 “Linuxgao” 博客,謝絕轉載!
Nagios監控基礎安裝與監控項部署(下)