1. 程式人生 > >Nagios監控基礎安裝與監控項部署(下)

Nagios監控基礎安裝與監控項部署(下)

nrpe snmp

上文總結了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監控基礎安裝與監控項部署(下)