上文总结了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的博文会持续更新