共计 8105 个字符,预计需要花费 21 分钟才能阅读完成。
Nagios 是企业普遍使用的最具影响力的网络信息监视系统之一,它可以动态监视指定的网络状态,并在状态异常时发出警告音或邮件报警通知运维人员。监控的类型和警报定时器是完全可定制的。
Nagios 的另一强大功能是它能同时监测主机和服务。例如,它可以同时监测到 IP 地址和 TCP/UDP 端口号。为进一步阐述此功能,我们假定有台需要监测的 web 服务器,Nagios 可运用在服务器上基于 IP/ 服务器名运行 ping 命令的方法检测服务器是否在线,同时当服务器的 RTT(往返时延)增加时,Nagios 会随时告警。另外,Nagios 还能检测 TCP 的 80 端口 (web 服务器) 是否可达,比如可能出现服务器在线但 Apache/IIS 没有响应的情况。
而基于 Nagios 的第三方监测工具如 Centreon, FAN , op5 Monitor 在界面设计,自动化运行和技术支持方面在独立的 Nagios 引擎基础上提供了相应的补充。
本段教程将展示Linux 下 Nagios 的安装与配置.
Debian 或 Ubuntu 下 Nagios 的安装
Debian 系统用户使用 apt-get 命令就可安装 Nagios:
root@mrtg:~# apt-get install nagios3
Nagios 安装过程中可以设置邮件服务器,安装后也可以进行自定义设置。
提示:为使 Nagios 可正常发送邮件通知,需正确配置 SMTP。
可以看到 Nagios 支持多种邮件传送方式。最常见的莫过于服务器(Internet Site)直接向接收者发送邮件,另一种常见的形式是用智能主机或中继服务器,将邮件传送至中继邮件服务器,然后它负责将邮件传送给接收者。
进行下一步操作时服务器的域名需要包含进去。
最后,设置一下 Nagios 管理员‘nagiosadmin’的密码,用户可以之后自行修改密码。
CentOS 或 RHEL 下 Nagios 的安装
使用 yum 命令来安装,建立 repoforge 库之后运行如下 yum 命令:
[root@mrtg ~]# yum install nagios nagios-plugins
监测需求
本段教程中,我们希望完成以下监测内容:
- 每三分钟监测一次所有 Linux 服务器。
- 每三分钟监测一次所有思科路由器。
- 所有的邮件告警集中发送至 sentinel@example.tst。
- 发出告警前 Nagios 都将进行 3 次验证以确保问题确有发生。
- 当设备的往返时延超过 100ms 并且 / 或包丢失量超过 20% 将发出邮件告警。
余下的教程将指导您如何在 Linux 系统中配置 Nagios。
Nagios 的详细介绍:请点这里
Nagios 的下载地址:请点这里
相关阅读:
Nagios 实现飞信告警配置 http://www.linuxidc.com/Linux/2013-03/80424.htm
Nagios 结合飞信实现短信报警之安装飞信 http://www.linuxidc.com/Linux/2012-08/69346.htm
Nagios 飞信 Linux 系统免费短信报警配置 http://www.linuxidc.com/Linux/2012-04/58195.htm
教你实现 Nagios 监控 Linux 主机及飞信报警 http://www.linuxidc.com/Linux/2011-09/43911.htm
关注 Linux 公社官方微信:
Ubuntu 下 Nagios 的配置
明确 Nagios 配置文件的地址至关重要,以下路径指明了 Debian 系统下 Nagios 的配置文件地址。
/etc/nagios-plugins 实现监测功能的专有脚本存放地址 | |
/etc/nagios3 添加主机、服务,定义检测和定时器的配置文件 | |
/usr/lib/nagios/plugins 用于监测的可执行文件 |
接下来的步骤相互关联,由此开始定义主机,主机组及向主机组添加服务操作。
添加主机模板
我们对同一类型的主机定义了对应的模板,这里使用安装文件作举例说明。
首先,为 Linux 设备定义主机模板。
root@mrtg:~# cd /etc/nagios3/conf.d | |
root@mrtg:/etc/nagios3/conf.d/# cp generic-host_nagios2.cfg linux-server.cfg |
如下编辑 linux-server.cfg。需要修改部分已经标出。
root@mrtg:/etc/nagios3/conf.d/# vim linux-server.cfg
define host{ | |
name linux-server ; 名称,需修改 | |
notifications_enabled 1 | |
event_handler_enabled 1 | |
flap_detection_enabled 1 | |
failure_prediction_enabled 1 | |
process_perf_data 1 | |
retain_status_information 1 | |
retain_nonstatus_information 1 | |
check_command example-host-check ; 检查所用脚本,需修改 | |
check_interval 3 ; 连续检查的间隔,需修改 | |
max_check_attempts 3 ; 产生邮件告警前的自检次数,需修改 | |
notification_interval 0 | |
notification_period 24x7 | |
notification_options d,u,r | |
contact_groups admins ; 邮件将要发送至的组,需修改 | |
register0 | |
} |
接下来,为 Cisco 设备定义主机模板。
root@mrtg:/etc/nagios3/conf.d/# cp linux-server.cfg cisco-device.cfg
如下修改 cisco-device.cfg。需要修改部分已经标出。
root@mrtg:/etc/nagios3/conf.d/# vim cisco-device.cfg
define host{ | |
name cisco-device;名称,需修改 | |
notifications_enabled 1 | |
event_handler_enabled 1 | |
flap_detection_enabled 1 | |
failure_prediction_enabled 1 | |
process_perf_data 1 | |
retain_status_information 1 | |
retain_nonstatus_information 1 | |
check_command example-host-check ; 检查时使用的脚本,需修改 | |
check_interval 3 ; 连续检查间隔,需修改 | |
max_check_attempts 3 ; 产生邮件告警前的自检次数,需修改 | |
notification_interval 0 | |
notification_period 24x7 | |
notification_options d,u,r | |
contact_groups admins ; 邮件将要发至的组,需修改 | |
register 0 | |
} |
添加主机
现在已定义主机模板,就可以添加需要监测的主机。以默认的文件作例子展示如下内容。
root@mrtg:/etc/nagios3/conf.d/# cp localhost_nagios2.cfg example.cfg | |
root@mrtg:/etc/nagios3/conf.d/# vim example.cfg |
# Host 1 | |
define host{ | |
use linux-server ; 使用的主机模板名 | |
host_name our-server ; nagios 使用的主机名 | |
alias our-server | |
address 172.17.1.23 ; 主机的 IP 地址 | |
} | |
# Host 2 | |
define host{ | |
use cisco-device ; 使用的主机模板名 | |
host_name our-router ; nagios 使用的主机名 | |
alias our-router | |
address 172.17.1.1 ; 主机的 IP 地址 | |
} |
主机组定义
当有多个主机时,为方便管理,建议将相似的主机组成一组。
root@mrtg:/etc/nagios3/conf.d/# vim hostgroups_nagios2.cfg
define hostgroup { | |
hostgroup_name linux-server ; 主机组名 | |
alias Linux Servers | |
members our-server ; 组员列表 | |
} | |
define hostgroup { | |
hostgroup_name cisco-device ; 主机组名 | |
alias Cisco Devices | |
members our-server ; comma separated list of members | |
} |
定义服务
首先,定义一个服务 example-host-check:当往返时延达到 100ms 预警值并且有 20% 包丢失时发出警告,而紧急告警设置为 5000ms 且包丢失比率为 100%,只执行一个 IPv4 的 ping 请求检测。
root@mrtg:~# vim /etc/nagios-plugins/config/ping.cfg
define command{ | |
command_name example-host-check | |
command_line /usr/lib/nagios/plugins/check_ping -H '$HOSTADDRESS$' -w 100,20% -c 5000,100% -p 1 -4 | |
} |
然后,将命令关联至主机组。
root@mrtg:/etc/nagios3/conf.d/# vim services_nagios2.cfg
define service { | |
hostgroup_name linux-server | |
service_description Linux Servers | |
check_command example-host-check | |
use generic-service | |
notification_interval 0 ; 初始化设置为 0 | |
} | |
define service { | |
hostgroup_name cisco-device | |
service_description Cisco Devices | |
check_command example-host-check | |
use generic-service | |
notification_interval 0 ; 初始化设置为 0 | |
} |
联系人定义
进行如下定义将发送邮件需要的地址添加至 Nagios。
root@mrtg:/etc/nagios3/conf.d/# vim contacts.cfg
define contact{ | |
contact_name root | |
alias Root | |
service_notification_period 24x7 | |
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 | |
email root@localhost, sentinel@example.tst | |
} |
最后,试运行初始化检测是否有配置错误。如果没有错误,Nagios 开始安全运行。
root@mrtg:~#nagios –v /etc/nagios3/nagios.cfg | |
root@mrtg:~# service nagios3 restart |
Nagios 是企业普遍使用的最具影响力的网络信息监视系统之一,它可以动态监视指定的网络状态,并在状态异常时发出警告音或邮件报警通知运维人员。监控的类型和警报定时器是完全可定制的。
Nagios 的另一强大功能是它能同时监测主机和服务。例如,它可以同时监测到 IP 地址和 TCP/UDP 端口号。为进一步阐述此功能,我们假定有台需要监测的 web 服务器,Nagios 可运用在服务器上基于 IP/ 服务器名运行 ping 命令的方法检测服务器是否在线,同时当服务器的 RTT(往返时延)增加时,Nagios 会随时告警。另外,Nagios 还能检测 TCP 的 80 端口 (web 服务器) 是否可达,比如可能出现服务器在线但 Apache/IIS 没有响应的情况。
而基于 Nagios 的第三方监测工具如 Centreon, FAN , op5 Monitor 在界面设计,自动化运行和技术支持方面在独立的 Nagios 引擎基础上提供了相应的补充。
本段教程将展示Linux 下 Nagios 的安装与配置.
Debian 或 Ubuntu 下 Nagios 的安装
Debian 系统用户使用 apt-get 命令就可安装 Nagios:
root@mrtg:~# apt-get install nagios3
Nagios 安装过程中可以设置邮件服务器,安装后也可以进行自定义设置。
提示:为使 Nagios 可正常发送邮件通知,需正确配置 SMTP。
可以看到 Nagios 支持多种邮件传送方式。最常见的莫过于服务器(Internet Site)直接向接收者发送邮件,另一种常见的形式是用智能主机或中继服务器,将邮件传送至中继邮件服务器,然后它负责将邮件传送给接收者。
进行下一步操作时服务器的域名需要包含进去。
最后,设置一下 Nagios 管理员‘nagiosadmin’的密码,用户可以之后自行修改密码。
CentOS 或 RHEL 下 Nagios 的安装
使用 yum 命令来安装,建立 repoforge 库之后运行如下 yum 命令:
[root@mrtg ~]# yum install nagios nagios-plugins
监测需求
本段教程中,我们希望完成以下监测内容:
- 每三分钟监测一次所有 Linux 服务器。
- 每三分钟监测一次所有思科路由器。
- 所有的邮件告警集中发送至 sentinel@example.tst。
- 发出告警前 Nagios 都将进行 3 次验证以确保问题确有发生。
- 当设备的往返时延超过 100ms 并且 / 或包丢失量超过 20% 将发出邮件告警。
余下的教程将指导您如何在 Linux 系统中配置 Nagios。
Nagios 的详细介绍:请点这里
Nagios 的下载地址:请点这里
相关阅读:
Nagios 实现飞信告警配置 http://www.linuxidc.com/Linux/2013-03/80424.htm
Nagios 结合飞信实现短信报警之安装飞信 http://www.linuxidc.com/Linux/2012-08/69346.htm
Nagios 飞信 Linux 系统免费短信报警配置 http://www.linuxidc.com/Linux/2012-04/58195.htm
教你实现 Nagios 监控 Linux 主机及飞信报警 http://www.linuxidc.com/Linux/2011-09/43911.htm
关注 Linux 公社官方微信:
CentOS/RHEL 上的 Nagios 配置
RedHat 系统中 Nagios 的配置文件地址如下所示。
/etc/nagios/objects 添加主机、服务,定义监测和定时器的配置文件 | |
/usr/lib/nagios/plugins 实现监测的可执行文件 |
添加主机模板
为特定类型的主机创建所需的模板,相应修改安装所需的文件。
[ | ]|
[ | ]
define host{ | |
name linux-server | |
use generic-host | |
check_period 24x7 | |
check_interval 3 | |
retry_interval 1 | |
max_check_attempts 3 | |
check_command example-host-check | |
notification_period 24x7 | |
notification_interval 0 | |
notification_options d,u,r | |
contact_groups admins | |
register 0 | |
} |
define host{name cisco-router
use generic-host
checkperiod 24×7
checkinterval 3 retryinterval 1 maxcheckattempts 3 checkcommand example-host-check notificationperiod 24×7 notificationinterval 0 notificationoptions d,u,r contactgroups admins register 0 }
添加主机和主机组
这里以默认的配置文件为例,主机和主机组添加至配置文件中。
[ | ]|
[ | ]
#Adding Linux server | |
define host{ | |
use linux-server | |
host_name our-server | |
alias our-server | |
address 172.17.1.23 | |
} | |
#Adding Cisco Router | |
define host{ | |
use cisco-router | |
host_name our-router | |
alias our-router | |
address 172.17.1.1 | |
} | |
# HOST GROUP DEFINITION | |
define hostgroup{ | |
hostgroup_name linux-servers | |
alias Linux Servers | |
members our-server | |
} | |
define hostgroup{ | |
hostgroup_name cisco-router | |
alias cisco-router | |
members our-router | |
} |
服务定义
定义一个服务 example-host-check:当往返时延达到 100ms 预警值并且有 20% 包丢失时发出警告,而紧急告警设置为 5000ms 且包丢失比率为 100%,只执行一个 IPv4 的 ping 请求检测。
[root@mrtg objects]# vim commands.cfg
define command{ | |
command_name example-host-check | |
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 100.0,20% -c 5000.0,100% -p 1 -4 | |
} |
联系人定义
告警要发送的邮件地址添加至 Nagios 中。
[root@objects objects]# vim contacts.cfg
- define contact{contact_name nagiosadmin
use generic-contact alias Nagios Admin email nagios@localhost, sentinel@example.tst }
最后,准备启动 Nagios 服务,可先试运行检测配置是否出错。
[ | ]|
[ | ]|
[ | ]
配置后访问 Nagios
现在一切就绪,可以开始 Nagios 之旅了。Ubuntu/Debian 用户可以通过打开 http://IP 地址 /nagios3 网页访问 Nagios,CentOS/RHEL 用户可以打开 http://IP 地址 /nagios,如 http://172.17.1.23/nagios3 来访问 Nagios。“nagiosadmin”用户则需要认证来访问页面。
若 Nagios 没有依原设定运行,首先要做的是建立一个测试运行(dry run)。
Debian 或 Ubuntu 系统:
# nagios3 -v /etc/nagios3/nagios.cfg
CentOS 或 RHEL 系统:
# nagios -v /etc/nagios/nagios.cfg
日志文件也会提供重要线索, 若需查看可以转至路径 /var/log/nagios/nagios.log。
希望本文有所帮助。
