1.安装nagios
前提:nagios使用web监控界面,所有需要安装web服务器(sudo apt-get install apache2 )
sudo apt-get install nagios3 nagios-plugins nagios-images (如果没有安装邮件服务,则会自动安装Postfix。)
安装过程会创建一个用户 nagiosadmin ,并要求设置改用户的密码(登录界面:192.168.1.10/nagios3 )
nagios3的配置文件位于/etc/nagios3/目录下,其插件的配置文件位于/etc/nagios-plugins/目录下
2.配置
2.1权限设置
2.1.1将默认的账号nagiosadmin替换成ng3admin:
sudo sed -i 's/nagiosadmin/ng3admin/g' /etc/nagios3/cgi.cfg ;验证失败
2.1.2密码修改
sudo htpasswd /etc/nagios3/htpasswd.users nagiosadmin
2.1.3添加账号(比如账号xiebo)
sudo htpasswd /etc/nagios3/htpasswd.users xiebo
2.1.4登录监控界面
http://192.168.1.10/nagios3/
2.2启用外部命令
默认情况下,出于安全考虑,nagios在默认配置中禁用了外部命令(指web服务通过CGI来对nagios进行的操作,比如临时禁用对某个服务的监控,立即执行对某个服务的状态检查等。)。
如需要开启外部命令,则可以按照下列步骤启用它。修改nagios.cfg,将check_external_commands改为1:
sudo vi /etc/nagios3/nagios.cfg
[...]
check_external_commands=1
[...]
执行下面的命令修改权限:
sudo service nagios3 stop
sudo dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
sudo dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
(如果不适用dpkg-statoverride,单单用chown/chmod修改权限的话,在软件包升级apt-get upgrade时,权限会被覆盖掉。)
sudo service nagios3 start
3.nagios监控设置
3.1 Nagios3的主配置文件是/etc/nagios3/nagios.cfg,其他的配置文件都会被其调用。(其实都可以放在一个文件中,但为了条理清楚,管理方便而分开的)
默认情况下,nagios3在安装的时候回创建一个/etc/nagios3/conf.d目录,并在该目录下创建一些配置文件。这些文件的配置内容,大多是nagios在安装的过程中自动检测得结果。他们的作用是:
contacts_nagios2.cfg ---定义了联系人,用于发送通知;
extinfo_nagios2.cfg ---要监控的主机和服务的扩展信息(比如为主机定义的图标等)
generic-host_nagios2.cfg ---主机定义模块
generic-service_nagios2.cfg ---服务定义模块
host-gateway_nagios2.cfg --要监控的默认网关的定义
hostgroup_nagios2.cfg --对监控的主机进行分组(比如servers,wireless,switches等等)
localhost_nagios2.cfg ---本机监控定义
services_nagios2.cfg -- 要监控的各个主机上的各种服务
timeperiods——nagios2.cfg ---对监控,通知的时间段定义
(该目录下的所有.cfg文件都会被nagios读取,所以,完全可以在该目录下创建自己的配置文件)
3.2 联系人设置 (系统发生故障时发送通知给联系人)
sudo vi /etc/nagios3/conf.d/contacts_nagios2.cfg
define contact{ #
contact_name root #联系人
alias Root #别名
service_notification_period 24x7 #24*7不间断的时间都愿意接收nagios发出来的通知(服务,主机的通知)
host_notification_period 24x7
service_notification_options w,u,c,r #服务通知选项;
host_notification_options d,r #主机通知选项;
service_notification_commands notify-service-by-email #邮件方式
host_notification_commands notify-host-by-email
}
define contactgroup{ #联系人组
contactgroup_name admins
alias Nagios Administrators
members root #成员
}
其中: service_notification_options针对“服务"的通知选项;w=Warning,服务状态为警告时;u=Unknown,未知;c=Critical,危急;r=Recoveries,恢复正常;f=Flapping,服务频繁重启时;n=None,不发送通知;
host_notification_options 针对“主机”的通知选项;d=Down,主机宕机时;u=Unreachable,主机无法联系时;r=Recoveries,恢复正常;f=Flapping,频繁重启;n=None,不发送通知。
3.3主机设置
可以创建自己的主机配置文件,只需要放在/etc/nagios3/conf.d/目录下,就会被nagios3加载。
sudo vi /etc/nagios3/conf.d/hosts.cfg
define host{
use generic-host #所使用的模块(这里就是generic-host_nagios2.cfg)
host_name localhost #定义一个叫localhost的主机
alias localhost_xiebo #别名
address 127.0.0.1 #地址
#parents baidu ;定义一个父主机(可以没有)
}
3.4主机组设置
主机分组后,在nagios监控界面上看起来会比较直观,不容易乱。
sudo vi /etc/nagios3/ conf.d/hostgroups_nagios2.cfg
# A simple wildcard hostgroup
define hostgroup {
hostgroup_name all
alias All Servers
members * # “*”表示所有主机
}
# A list of your web servers
define hostgroup {
hostgroup_name http-servers
alias HTTP servers
members localhost , Web_server1 #一个组中如果有多个分组用逗号隔开
}
3.5 服务设置
使用nagios不单单用来监控主机,更重要的是用它来监控主机上各种服务。
服务的配置比较复杂,因为不同的服务牵扯到各种不同的监控命令。nagios能否支持相应的服务要看是否安装了相应的插件;在/usr/lib/nagios/plugins/目录下面是已经安装的所有插件;他们的配置文件则位于/etc/nagios-plugins/config/目录下。
一般来讲,这些插件可以满足日常需求,不过万一没有你需要的可以到下面的网站去找: www.nagiosplugins.org
vi /etc/nagios3/conf.d/services_nagios2.cfg
define service{
use generic-service ; 要使用的模板(/etc/nagios3/conf.d/generic-server_nagios2.cfg)
host_name localhost ;针对的主机
service_description Disk Space ;对监控的服务的描述
check_command check_all_disks!20%!10% ;检查命令
}
define service {
use generic-service
hostgroup_name ssh-servers ;针对的“主机组”的名称
service_description SSH
check_command check_ssh
notification_interval 0 ; 通知的时间间隔,设置为0,表示只通知一次;如果设置为60,表示每60分钟通知一次。
}
4.用NRPE进行远程监控 (这样就不需要再每台机器上安装nagios,也能获取敏感信息,比如剩余硬盘空间,进程数量,负荷等等)
NRPE是Nagios Remote Plugin Executor的简称,可以让nagios在远程机器上执行本地检查命令。也就是说,安装NRPE Server的机器,虽然没有安装nagios,也和安装了差不多--远程的nagios可以像检测本机一样,对它进行只有本机上才能进行的各种检测。
4.1安装nagios-nrpe-server:
sudo apt-get install nagios-nrpe-server
修改/etc/nagios/nrpe.cfg 设置nagios服务器的IP地址,并定义检测命令和参数:
vi /etc/nagios/nrpe.cfg
[...]
#把allowed_hosts改为nagios服务器的IP地址
allowed_hosts=192.168.1.10
[...]
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200
command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e #新增此行
[..]
4.2 重启nagios-nrpe-server服务
sudo service nagios-nrpe-server restart
4.3在安装nagios3的服务器上将安装nrpe服务的主机配置进去
vi /etc/nagios3/conf.d/142.cfg
define host{
use generic-host
host_name 142_wan
alias 142_linux
address 192.168.1.142
parents gateway
}
#disk space
define service{
use generic-service
host_name 142_wan
service_description Disk Space
check_command check_nrpe_larg!check_all_disks$HOSTADDRESS
}
#current users
define service{
use generic-service
host_name 142_wan
service_description Current Users
check_command check_nrpe_larg!check_users$HOSTADDRESS
}
#total processes
define service{
use generic-service
host_name 142_wan
service_description Total Processes
check_command check_nrpe_larg!check_total_procs$HOSTADDRESS
}
#currrent load
define service{
use generic-service
host_name 142_wan
service_description Current Load
check_command check_nrpe_larg!check_load$HOSTADDRESS
}
说明:要在被检查的主机上(NRPE服务器上)执行什么样的检测,就在主机的/etc/nagios/nrpe.cfg文件中定义相关的命令,然后在nagios服务上用nrpe调用即可。
check_nrpe_larg命令是由nagios-nrpe-plugin软件包提供,所以需要安装对应的软件包:
sudo apt-get install nagios-nrpe-plugin
重启nagios3服务: sudo service nagios3 restart