Linux下Nagios的安装与配置

简介:

Nagios是企业普遍使用的最具影响力的网络信息监视系统之一,它可以动态监视指定的网络状态,并在状态异常时发出警告音或邮件报警通知运维人员。监控的类型和警报定时器是完全可定制的。

Nagios的另一强大功能是它能同时监测主机和服务。例如,它可以同时监测到IP地址和TCP/UDP端口号。为进一步阐述此功能,我们假定有台需要监测的web服务器,Nagios可运用在服务器上基于IP/服务器名运行ping命令的方法检测服务器是否在线,同时当服务器的RTT(往返时延)增加时,Nagios会随时告警。另外,Nagios还能检测TCP的80端口(web服务器)是否可达,比如可能出现服务器在线但Apache/IIS没有响应的情况。

而基于Nagios的第三方监测工具如CentreonFAN , op5 Monitor 在界面设计,自动化运行和技术支持方面在独立的Nagios引擎基础上提供了相应的补充。

本段教程将展示Linux下Nagios的安装与配置.

Debian或Ubuntu下Nagios的安装

Debian系统用户使用apt-get命令就可安装Nagios:


 
 
  1. root@mrtg:~# apt-get install nagios3

Nagios安装过程中可以设置邮件服务器,安装后也可以进行自定义设置。

提示:为使Nagios可正常发送邮件通知,需正确配置SMTP。

可以看到Nagios支持多种邮件传送方式。最常见的莫过于服务器(Internet Site)直接向接收者发送邮件,另一种常见的形式是用智能主机或中继服务器,将邮件传送至中继邮件服务器,然后它负责将邮件传送给接收者。

进行下一步操作时服务器的域名需要包含进去。

最后,设置一下Nagios管理员‘nagiosadmin’的密码,用户可以之后自行修改密码。

CentOS或RHEL下Nagios的安装

使用yum命令来安装,建立repoforge库之后运行如下yum命令:


 
 
  1. [root@mrtg ~]# yum install nagios nagios-plugins

监测需求

本段教程中,我们希望完成以下监测内容:

  1. 每三分钟监测一次所有Linux服务器。
  2. 每三分钟监测一次所有思科路由器。
  3. 所有的邮件告警集中发送至sentinel@example.tst
  4. 发出告警前Nagios都将进行3次验证以确保问题确有发生。
  5. 当设备的往返时延超过100ms并且/或包丢失量超过20%将发出邮件告警。

余下的教程将指导您如何在Linux系统中配置Nagios。

Ubuntu下Nagios的配置

明确Nagios配置文件的地址至关重要,以下路径指明了Debian系统下Nagios的配置文件地址。


 
 
  1. /etc/nagios-plugins 实现监测功能的专有脚本存放地址
  2. /etc/nagios3 添加主机、服务,定义检测和定时器的配置文件
  3. /usr/lib/nagios/plugins 用于监测的可执行文件

接下来的步骤相互关联,由此开始定义主机,主机组及向主机组添加服务操作。

添加主机模板

我们对同一类型的主机定义了对应的模板,这里使用安装文件作举例说明。

首先,为Linux设备定义主机模板。


 
 
  1. root@mrtg:~# cd /etc/nagios3/conf.d
  2. root@mrtg:/etc/nagios3/conf.d/# cp generic-host_nagios2.cfg linux-server.cfg

如下编辑linux-server.cfg。需要修改部分已经标出。


 
 
  1. root@mrtg:/etc/nagios3/conf.d/# vim linux-server.cfg

-


 
 
  1. define host{
  2. name linux-server ; 名称,需修改
  3. notifications_enabled 1
  4. event_handler_enabled 1
  5. flap_detection_enabled 1
  6. failure_prediction_enabled 1
  7. process_perf_data 1
  8. retain_status_information 1
  9. retain_nonstatus_information 1
  10. check_command example-host-check ; 检查所用脚本,需修改
  11. check_interval 3 ; 连续检查的间隔,需修改
  12. max_check_attempts 3 ; 产生邮件告警前的自检次数,需修改
  13. notification_interval 0
  14. notification_period 24x7
  15. notification_options d,u,r
  16. contact_groups admins ; 邮件将要发送至的组,需修改
  17. register0
  18. }

接下来,为Cisco设备定义主机模板。


 
 
  1. root@mrtg:/etc/nagios3/conf.d/# cp linux-server.cfg cisco-device.cfg

如下修改cisco-device.cfg。需要修改部分已经标出。


 
 
  1. root@mrtg:/etc/nagios3/conf.d/# vim cisco-device.cfg

-


 
 
  1. define host{
  2. name cisco-device ;名称,需修改
  3. notifications_enabled 1
  4. event_handler_enabled 1
  5. flap_detection_enabled 1
  6. failure_prediction_enabled 1
  7. process_perf_data 1
  8. retain_status_information 1
  9. retain_nonstatus_information 1
  10. check_command example-host-check ; 检查时使用的脚本,需修改
  11. check_interval 3 ; 连续检查间隔,需修改
  12. max_check_attempts 3 ; 产生邮件告警前的自检次数,需修改
  13. notification_interval 0
  14. notification_period 24x7
  15. notification_options d,u,r
  16. contact_groups admins ; 邮件将要发至的组,需修改
  17. register 0
  18. }

添加主机

现在已定义主机模板,就可以添加需要监测的主机。以默认的文件作例子展示如下内容。


 
 
  1. root@mrtg:/etc/nagios3/conf.d/# cp localhost_nagios2.cfg example.cfg
  2. root@mrtg:/etc/nagios3/conf.d/# vim example.cfg

-


 
 
  1. # Host 1
  2. define host{
  3. use linux-server ; 使用的主机模板名
  4. host_name our-server ; nagios使用的主机名
  5. alias our-server
  6. address 172.17.1.23 ; 主机的IP地址
  7. }
  8.  
  9. # Host 2
  10. define host{
  11. use cisco-device ; 使用的主机模板名
  12. host_name our-router ; nagios使用的主机名
  13. alias our-router
  14. address 172.17.1.1 ; 主机的IP地址
  15. }

主机组定义

当有多个主机时,为方便管理,建议将相似的主机组成一组。


 
 
  1. root@mrtg:/etc/nagios3/conf.d/# vim hostgroups_nagios2.cfg

-


 
 
  1. define hostgroup {
  2. hostgroup_name linux-server ; 主机组名
  3. alias Linux Servers
  4. members our-server ; 组员列表
  5. }
  6.  
  7. define hostgroup {
  8. hostgroup_name cisco-device ; 主机组名
  9. alias Cisco Devices
  10. members our-server ; comma separated list of members
  11. }

定义服务

首先,定义一个服务example-host-check:当往返时延达到100ms预警值并且有20%包丢失时发出警告,而紧急告警设置为5000ms且包丢失比率为100%,只执行一个IPv4的ping请求检测。


 
 
  1. root@mrtg:~# vim /etc/nagios-plugins/config/ping.cfg

-


 
 
  1. define command{
  2. command_name example-host-check
  3. command_line /usr/lib/nagios/plugins/check_ping -H '$HOSTADDRESS$' -w 100,20% -c 5000,100% -p 1 -4
  4. }

然后,将命令关联至主机组。


 
 
  1. root@mrtg:/etc/nagios3/conf.d/# vim services_nagios2.cfg

-


 
 
  1. define service {
  2. hostgroup_name linux-server
  3. service_description Linux Servers
  4. check_command example-host-check
  5. use generic-service
  6. notification_interval 0 ; 初始化设置为0
  7. }
  8.  
  9. define service {
  10. hostgroup_name cisco-device
  11. service_description Cisco Devices
  12. check_command example-host-check
  13. use generic-service
  14. notification_interval 0 ; 初始化设置为0
  15. }

联系人定义

进行如下定义将发送邮件需要的地址添加至Nagios。


 
 
  1. root@mrtg:/etc/nagios3/conf.d/# vim contacts.cfg

-


 
 
  1. define contact{
  2. contact_name root
  3. alias Root
  4. service_notification_period 24x7
  5. host_notification_period 24x7
  6. service_notification_options w,u,c,r
  7. host_notification_options d,r
  8. service_notification_commands notify-service-by-email
  9. host_notification_commands notify-host-by-email
  10. email root@localhost, sentinel@example.tst
  11. }

最后,试运行初始化检测是否有配置错误。如果没有错误,Nagios开始安全运行。


 
 
  1. root@mrtg:~# nagios -v /etc/nagios3/nagios.cfg
  2. root@mrtg:~# service nagios3 restart

CentOS/RHEL上的Nagios配置

Redhat系统中Nagios的配置文件地址如下所示。


  
  
  1. /etc/nagios/objects 添加主机、服务,定义监测和定时器的配置文件
  2.  
  3. /usr/lib/nagios/plugins 实现监测的可执行文件

添加主机模板

为特定类型的主机创建所需的模板,相应修改安装所需的文件。


  
  
  1. [root@mrtg objects]# cd /etc/nagios/objects/
  2. [root@mrtg objects]# vim templates.cfg

-


  
  
  1. define host{
  2. name linux-server
  3. use generic-host
  4. check_period 24x7
  5. check_interval 3
  6. retry_interval 1
  7. max_check_attempts 3
  8. check_command example-host-check
  9. notification_period 24x7
  10. notification_interval 0
  11. notification_options d,u,r
  12. contact_groups admins
  13. register 0
  14. }
  15.  
  16. define host{
  17. name cisco-router
  18. use generic-host
  19. check_period 24x7
  20. check_interval 3
  21. retry_interval 1
  22. max_check_attempts 3
  23. check_command example-host-check
  24. notification_period 24x7
  25. notification_interval 0
  26. notification_options d,u,r
  27. contact_groups admins
  28. register 0
  29. }

添加主机和主机组

这里以默认的配置文件为例,主机和主机组添加至配置文件中。


  
  
  1. [root@mrtg objects]# cp localhost.cfg example.cfg
  2. [root@mrtg objects]# vim example.cfg

-


  
  
  1. #Adding Linux server
  2. define host{
  3. use linux-server
  4. host_name our-server
  5. alias our-server
  6. address 172.17.1.23
  7. }
  8.  
  9. #Adding Cisco Router
  10. define host{
  11. use cisco-router
  12. host_name our-router
  13. alias our-router
  14. address 172.17.1.1
  15. }
  16.  
  17. # HOST GROUP DEFINITION
  18. define hostgroup{
  19. hostgroup_name linux-servers
  20. alias Linux Servers
  21. members our-server
  22. }
  23.  
  24. define hostgroup{
  25. hostgroup_name cisco-router
  26. alias cisco-router
  27. members our-router
  28. }

服务定义

定义一个服务example-host-check:当往返时延达到100ms预警值并且有20%包丢失时发出警告,而紧急告警设置为5000ms且包丢失比率为100%,只执行一个IPv4的ping请求检测。


  
  
  1. [root@mrtg objects]# vim commands.cfg

-


  
  
  1. define command{
  2. command_name example-host-check
  3. command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 100.0,20% -c 5000.0,100% -p 1 -4
  4. }

联系人定义

告警要发送的邮件地址添加至Nagios中。


  
  
  1. [root@objects objects]# vim contacts.cfg

-


  
  
  1. define contact{
  2. contact_name nagiosadmin
  3. use generic-contact
  4. alias Nagios Admin
  5. email nagios@localhost, sentinel@example.tst
  6. }

最后,准备启动Nagios服务,可先试运行检测配置是否出错。


  
  
  1. [root@mrtg ~]# nagios v /etc/nagios/nagios.cfg
  2. [root@mrtg ~]# service nagios restart
  3. [root@mrtg ~]# chkconfig nagios on

配置后访问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系统:


  
  
  1. # nagios3 -v /etc/nagios3/nagios.cfg

CentOS或RHEL系统:


  
  
  1. # nagios -v /etc/nagios/nagios.cfg

原文发布时间为:2014-01-03

本文来自云栖社区合作伙伴“Linux中国”

相关文章
|
10天前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
13天前
|
Ubuntu Linux
Linux 各发行版安装 ping 命令指南
如何在不同 Linux 发行版(Ubuntu/Debian、CentOS/RHEL/Fedora、Arch Linux、openSUSE、Alpine Linux)上安装 `ping` 命令,详细列出各发行版的安装步骤和验证方法,帮助系统管理员和网络工程师快速排查网络问题。
94 20
|
3天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
57 7
|
6天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
83 7
|
13天前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
30 2
|
1月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
68 4
|
2月前
|
Linux 测试技术 网络安全
Linux系统之安装OneNav个人书签管理器
【10月更文挑战第19天】Linux系统之安装OneNav个人书签管理器
119 5
Linux系统之安装OneNav个人书签管理器
|
1月前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
73 9
|
2月前
|
监控 Java Linux
Linux系统之安装Ward服务器监控工具
【10月更文挑战第17天】Linux系统之安装Ward服务器监控工具
72 5
Linux系统之安装Ward服务器监控工具