技术开发 频道

安装配置Icinga用于监控网络设备

  【IT168 技术】由于随着个人及企业对信息科技的需求大幅增加,包含移动设备的兴起,社交网站的活跃,以及许多新技术的快速发展。因此在监测设备的使用状况及可以主动发现设备问题并提前预防和故障排除的能力日渐重要,另外,网络使用的普及,需要有足够的功能去分析网络状态及能缩短排除网络拥塞问题的时间,此仍为当前网管人员的一大挑战。除前述的功能之外,能够快速部署,以及容易操作也会是考虑的要点之一。

  Icinga 即为一套容易部署以及容易为网管人员短期学习并使用的监控软件,在此本文以Icinga2为功能安装,设定及展示之主角,让读者可全面了解并可简单于读者所使用的网络环境下应用Icinga 。 本文主要包括以下的内容。

  1 Icinga 简介

  2 实验环境

  3 Icinga安装及设定

  4 邮件通知设定

  5 Switch 监控设定

  6 Icinga 设定成果展示

  7 总结

  1、 Icinga 简介

  Icinga是Nagios 的分支,它提供了全面的监控和报警框架; 是一个容易安装且功能强大的网络监控软件 且与 Nagios一样提供了开放及充足的可扩展性。除能可以监控主机之外,任何的设备只要能提供SNMP的服务,如此Icinga即可有充足的信息监控。透过这样的监控协议,我们可以呼叫被监测主机以量测任何可供监控的项目。此外,根据笔者对于其他监控软件的使用经验,如SNSC(IBMSystem Networking Switch Center)及CNA(Cisco Network Assistant),两者皆为功能强大的监控软件,但是只针对各自产品做监控而且皆是需付费的软件。 因此,相较于Icinga的表现更为全面也较容易符合大众需求。

  2、实验环境

  2.1 安装套件

  以下为Icinga需要的硬件及软件环境,Icinga的硬件只需要基本要求,在此我以虚拟机示范安装Icinga,请见下表之详细描述。

  虚拟机之环境

安装配置Icinga用于监控网络设备

  软件环境

安装配置Icinga用于监控网络设备

  2. 2 Icinga网络拓扑图

  此为网络拓扑图,注明网络设备及Icingaserver的摆放位置和Icinga于此架构中侦测网络设备。图2-1网络拓扑图为笔者所测试的网络架构。基本上,Icinga可放置于网络中的任何一个位置。#FormatTableID_2# #FormatTableID_3# #FormatTableID_4# #FormatTableID_5##FormatTableID_6# #FormatTableID_7# ▲图2-1网络拓扑图

  2.3 Icinga架构原理图

  此为架构原理图,为Icingaserver收集信息的行为如Check_snmp是经由SNMP的服务来认定每个硬件的ID值来取得数值,回传到server上并以图表纪录。

安装配置Icinga用于监控网络设备

▲图2-2架构原理图

  3、安装及设定

  3.1. 安装 Icinga 套件

  Icinga 安装前必需先行安装一些套件及函式库,Icinga才可正常运作。 所需的函式库包含以下几个部份:

  1. 安装apache server (httpd)为提供网站页面的服务

  2. 安装GUN之C语言的编译程序(gcc)、C的运行库(glibc、glibc-common)、图像处理库(gd、gd-devel)

  3. 安装图形译码库(libjpeg、libjpeg-devel、libpng、libpng-devel)

  4. 安装读取系统及网络状态信息的snmp套件 (net-snmp、net-snmp-devel、net-snmp-utils)

  5. 安装php与图形链接之套件,如同 php、php-gd 及与web链接之套件,如同php-pear 、php-xml

  6. 安装Icinga亦可使用mysql做为其数据库,若有需要可寻找关于libdbi、php-mysql、 libdbi-dbd-mysql等安装方式以符合数据库使用之需求。

安装配置Icinga用于监控网络设备

  3.2. 新增用户

  使用useradd、groupadd及chmod给与适当的权限及角色。

安装配置Icinga用于监控网络设备

  3.3 . 开始编译Icinga

  使用 GIT 的安装方式,在安装前请使用 yum 安装 GIT 的套件,由于 GIT库即是版本控制软件,针对下载的软件做版本更新的管理完善,以此方式下载可得到最新及最正确的版本。在configure后方的参数中主要是指定存放Icinga档案的路径及权限的分配,在makeinstall的需求请见下表有更详细的批注。

安装配置Icinga用于监控网络设备

  开始编译Icinga - Make install参数简介 -除了安装Icinga的套件之外需要将下方的功能一起编译进去,详细安装信息,请见下表之批注。 

安装配置Icinga用于监控网络设备

    3.4. 设定 apache账户和密码

安装配置Icinga用于监控网络设备

    3.5 . 安装nagios-plugins

  目前使用的 nagios-plugins 版本为 2.0 版,于configure后方的参数则是给与这套件相应的权限。

安装配置Icinga用于监控网络设备

  3.6 . 设定主配置文件

  配置icinga.cfg的主要文件,请依以下步骤完成相应设定。

安装配置Icinga用于监控网络设备

  3.7 . 启动Icinga 

安装配置Icinga用于监控网络设备

   并可浏览 ClassicUI: http://localhost/icinga

安装配置Icinga用于监控网络设备

  ▲图3-1浏览 Classic UI: http://localhost/icinga

  4、邮件通知设定:

  关于邮件通知,以下将例出重点设定的注意事项: 由于网络状态千变万化,网管人员也无法一天 24小时持续观察着页面,因此需要增加其他的方式随时通知网管人员目前网络设备的状态。 Icinga可以为监控之设备或服务选择要联络的对象,并依状态的不同通知负责人,如此可协助网管人员立即做出正确的判断,以下为邮件通知设定前需先了解的要点。

  4.1发送通知時間

  在设备状态发生不正常的情况或是从 Warning 转为 Critical 时于

  中设定可决定发送通知的频率。

  4.2通知信寄送联络人

  于 <contact_groups中设定之联络人接可收到 Icinga 的状态通知。

  4.3 通知方式

  Icinga 提供多种通知的方式,比如电子邮件、电话、手机、简讯、通讯软件等,一切都取决于object定义中指定的notificationcommand在默认的配置是寄送email、您也能于 /usr/local/icinga/etc/objects/commands.cfg中看到notification command 。

  4.4 安装邮件通知设定的步骤

  4.4.1 安装 sendmail

  1. 下载 Sendmail: yum -y install sendmail sendmail-cf

  2. 启动 sendmail: service sendmail start

  3. 开机自动启动: chkconfig sendmail on

  4. 防火墙设定允许sendmail port 25: service iptables stop or vi/etc/sysconfig/iptables.

  5. 确认 smtp 25 状态: netstat -tunlp | grep sendmail

  4.4.2 详细设定sendmail以符合Icinga mail 寄送之条件

  1. 改变 127.0.0.1 to 0.0.0.0: 可用vi或vim进入 /etc/mail/sendmail.cf

  2. 安装配置Icinga用于监控网络设备▲图4-1设定sendmail.cf

  2. 设定可relay的mail server: vi /etc/mail/access

安装配置Icinga用于监控网络设备  ▲图4-2设定access

  3. 加入欲寄送之mail: vi /usr/local/icinga/etc/objects/contacts.cfg

安装配置Icinga用于监控网络设备  ▲图4-3设定contacts.cfg

  5、Switch 监控设定:

  Switch 的监控以侦测封包丟失率及监控网络设备的端口信息两个项目做为范例。设定时需要修改command.cfg及switch .cfg,请见以下详细内容。

  5.1. 设定command.cfg

  Command.cfg放置路径 : /usr/local/icinga/etc/objects/command.cfg. (可使用vi 或vim进行编辑)。在设定 switch.cfg前, 必需要确定2个指令已于command.cfg中被定义, 5.1.1, check_snmp用来取得SNMP所发布的信息;5.1.2. check_ ping: 用于确认网络设备的存活状态。

  5.1.1. Check_snmp command

  确认您的配置文件是否与图 5-1内容相同。

安装配置Icinga用于监控网络设备
▲图5-1设定Check_snmp command

  5.1.2 Check_ping command

  确认您的配置文件是否与图 5-2内容相同。

安装配置Icinga用于监控网络设备
▲图5-2设定Check_ping command

  5.2. 设定switch.cfg

  Switch.cfg 放置 路径 : /usr/local/icinga/etc/objects/switch.cfg(可使用vi或vim进行编辑)。 在此档案中包含5.2.1 define host –提供Icinga监测的相关信息;5.2.2 define service–监测封包丢失率; 5.2.3 define service-监控网络设备的端口信息。

  5.2.1 define host–提供Icinga监测的相关信息

  新增host并加入一台network device的信息如hostname, alias及IP address提供Icinga监测的相关信息。

安装配置Icinga用于监控网络设备
▲图5-3设定switch.cfg

  5.2.2 Define service - 监测封包丢失率

  增加需要监测的服务,如使用 ping 的服务监控,默认为每5分钟会侦测封包丢失率,以下图5-4范例为详细的服务内容:

  显示 Critical: 若封包丢失率超过 60% 或是封包递归超过 600 亳秒时即发布 Critical 警示。

  显示 WARNING: 若封包丢失率超过 20% 或是封包递归超过 200 亳秒时即发布 Warning 警示。

  显示 OK: 若封包丢失率少于 20% 或是封包递归少于 200 亳秒时即正常。

安装配置Icinga用于监控网络设备
▲图5-4设定switch.cfg

  5.2.3 Define service- 监控网络设备的端口信息

  若网络设备 SNMP 的服务协议已设定,可以于 Icinga 中使用 check_snmp 的套件去撷取网络设备的信息。以下图5-5为监控SNMP服务的范例以及check_snmp!-C public –o ifOperStatus.1 –r 1 –mRFC1213-MIB指令定义的詳細解释。

  於check_snmp中的定义, "-C public" 代表在 SNMP community 的名称为” public ”。 而 "-oifOperStatus.1" 代表需要确认OID 的数值。 若想确认交换机中的port/interface是处于联机的状态,能依照以下范例设定;如同"-oifOperStatus.1" 代表OID port 1目前的运作状态是否为联机。 关于"-r 1" 则代表若发现”1”时check_snmp会回传OK的值(此即代表此port 1 有联机的情况),若发现为”0 ”则会回传Critical。 另外,"-m RFC1213-MIB"代表只需要check_snmp取得"RFC1213-MIB"的可使用的MIB信息。

安装配置Icinga用于监控网络设备
▲▲图5-5设定switch.cfg

  5.3 重新启动Icinga.

  当 host 及 service 的设定已正确的写入switch.cfg之后,请依下方范例检查配置文件及重新启动Icinga。请务必于重新启动前检查Icinga的配置文件是否正常,避免未预期的错误发生。

  5.3.1检查 Icinga 配置文件:

安装配置Icinga用于监控网络设备▲图5-6检查 Icinga 配置

  5.3.2 重新启动 Icinga 服务

安装配置Icinga用于监控网络设备▲图5-7重新启动Icinga

  6、Icinga 设定成果展示

  6.1 服务状态总览

安装配置Icinga用于监控网络设备▲图6-1服务状态总览

  6.2 详细网络设备服务侦测状态

安装配置Icinga用于监控网络设备▲图6-2详细网络设备服务侦测状态

  6.3 目前有问题服务状态

安装配置Icinga用于监控网络设备▲图6-3目前有问题服务状态

  7、总结

  Icinga是一个轻量化的网络管理工具,亦是免费开源软件;没有华丽的接口,以简单的方式确认设备的目前服务状态及存活率,网管人员则可透过Web实时查看系统信息。除了网络设备之外,其他可提供SNMP服务的设备皆可监控;另外,在资源使用的优式在于所有的安装模块皆可与Nagios共享,因此监控脚本的支持是非常丰富的。再则,实务上能让网管人员轻易学习应用;立即部署到现有的网络环境。因此,Icinga能协助网络管理及缩短问题处理的时间,也能保障网络的质量并且为组织节省许多的运维成本。最令作者赞叹的部份在于plugin的使用,网管人员只需要一些基础的程序设计能力,即可自行制作能协助网管人员建立符合自己环境的监控机制。总和上述的要点,Icinga包含着简单、直接、快速及容易部署特点。所以,若想与您的网络环境做更深入的沟通,就开始着手安装Icinga吧!

  8、参考资料

  Icinga Documentation:

  http://docs.icinga.org/latest/en/monitoring-routers.html

  SSORC.tw論壇

  http://ssorc.tw/4696

  作者简介:

安装配置Icinga用于监控网络设备

  林建逸,网名Hugh。IT Security Admin

  任职于某大型外资 IT 企业,从事网络安全及网络监控分析等工作, 熟悉网络设备如 CISCO Switch/Router 、IBM Blade Layer2, Layer3 Switch 及 Firewall 建置及管理,具有丰富的管理经验。


1
相关文章