Nagios之基础理论与简单安装配置

1 Nagios简介

   Nagios于1999年首次推出,原名为NetSaint,由Ethan Galstad开发并维护至今。NAGIOS是一个缩写形式:"Nagios Ain't Gonna Insist On Sainthood"Sainthood翻译为圣徒,而"Agios"是"saint"的希腊表示方法。Nagios被开发在Linux下使用,但在Unix下也工作得非常好(摘自维基百科)。它是一个强大的IT管理系统和IT监控软件套件,为服务器、网络和应用程序提供完整的IT监控和警报软件,使组织能够在影响关键业务流程之前识别和解决IT基础架构问题。通过Nagios可以:监控整个IT基础架构、得到问题预警、当异常发生和解除时能提醒用户、与利益相关者共享可用性数据、检测安全漏洞、规划IT升级、减少停机时间和业务损失。

    Nagios产品主要有Nagios XI、Nagios Log Server、Nagios Network Analyzer、Nagios Fusion。Nagios项目主要包括Nagios Core核心部分、Nagios Core Plugins插件、Nagios Core Addons拓展插件、Nagios Core Frontends前台应用四个部分。

1.1Nagios结构简介

   Nagios结构主要由Nagios core、Nagios-plugins和一些可选的Addon(NRPE,NSCA,NDOUtils等等)组成,实际生产中,Nagios core提供的监控功能远不能满足需求,要想搭建一个完善的IT监控管理系统,需要在Nagios监控端与被监控端安装相应功能的Addon,下载地址http://www.nagios.org/,也可根据实际需求编写所需的插件。

1.2 Nagios可实现的功能

1.监控网络服务(SMTP、POP3、HTTP、FTP、PING等);

2.监控本机及远程主机资源(processor、CPU load、disk usage等),也包括Windows主机(使用NSClient++plugin);

3.允许用户编写plugin来监控特定的服务,方便扩展用户服务的检测方法,支持多种开发语言(Shell、Perl、Python、PHP等);

4.能够定义网络主机的层次,允许逐级检查,可从父主机开始向下检查;

5.当服务或主机问题产生与解决时将告警发送给联系人(通过EMail、短信、用户定义方式);

6.可以通过配置Nagios远程执行插件远程执行脚本;

7.远程监控支持SSH或SSL通道方式;

8.支持并实现对主机的冗余监控;

9.可用WEB界面查看当前的网络状态、通知和故障历史、日志文件等。

1.3 Nagios监控实现原理

   一般情况下,Nagios监控端部署于独立的一台服务器(Linux或Unix操作系统),包括至少Nagios core,Nagios Plugins以及可选的NRPE,NSCA等Addon。被监控端:Linux系统下,需安装Nagios plugins与可选NRPE、NSCA等Addon;windows下,安装NSClient++即可。

几个常用的Addon如下:

1.NRPE:允许在被监控的远程Linux/UNIX主机上执行插件以实现对主机本地资源或属性的监控;

2.NSCA:该插件将远程Linux/Unix主机的被动检查结果发送到在监控端运行的Nagios守护程序;

3.NSClient++:它是Windows系统的监视代理程序/守护程序,它是NSClient和NRPE_NT的替代品;

4.NDOUtils:实现将Nagios中的所有状态信息存储在MySQL数据库中。

   实际工作中,Nagios监控端读取配置文件中的指令与远程的守护程序进行通信,并且指示远程的守护程序进行对应监控项的检查,具体原理如下图所示:


2. Nagios安装与配置

2.1 Nagios监控实现原理

       本章节所有的服务器系统均为CentOS release 6.4;

       监控端IP:172.16.56.131,主机名:monitors;

       被监控端IP:192.183.3.145,主机名:kk;

2.2 Nagios Core安装

  1. 安装依赖包

       不同的系统平台下,nagios所需要的依赖包也不同:

  • RHEL/CentOS平台
[root@monitors ~]# yum install -y wget httpd php gcc glibc glibc-common gd gd-devel make net-snmp unzip
  • Ubuntu (15.10 and below)
sudo apt-get install wget build-essential apache2 php5 php5-gd libgd-dev unzip
  • Ubuntu (16.04 and above)
sudo apt-get install wget build-essential apache2 php apache2-mod-php7.0 php-gd libgd-dev unzip
2.下载Nagios Core和Nagios Plugins安装包
[root@monitors ~]# cd /tmp
[root@monitors tmp]# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.2.0.tar.gz
[root@monitors tmp]# wget http://nagios-plugins.org/download/nagios-plugins-2.1.2.tar.gz

3.创建nagios用户和用户组

[root@monitors tmp]# useradd nagios
[root@monitors tmp]# groupadd nagcmd
[root@monitors tmp]# usermod -a -G nagcmd nagios
  • RHEL/CentOS
[root@monitors tmp]# usermod -a -G nagios,nagcmd apache
  • Ubuntu
usermod -a -G nagios,nagcmd www-data

4.Nagios Core编译

[root@monitors tmp]# tar zxvf nagios-4.2.0.tar.gz
[root@monitors tmp]# tar zxvf nagios-plugins-2.1.2.tar.gz
[root@monitors tmp]# cd nagios-4.2.0
  • RHEL/CentOS
[root@monitors nagios-4.2.0]# ./configure --with-command-group=nagcmd
  •  Ubuntu
./configure --with-command-group=nagcmd -–with-mail=/usr/bin/sendmail --with-httpd-conf=/etc/apache2/

5.执行安装

[root@monitors nagios-4.2.0]# make all
[root@monitors nagios-4.2.0]# make install
[root@monitors nagios-4.2.0]# make install-init
/usr/bin/install -c -m 755 -d -o root -g root /etc/rc.d/init.d
/usr/bin/install -c -m 755 -o root -g root daemon-init /etc/rc.d/init.d/nagios
*** Init script installed ***
[root@monitors nagios-4.2.0]# make install-config
[root@monitors nagios-4.2.0]# make install-commandmode
/usr/bin/install -c -m 775 -o nagios -g nagcmd -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
*** External command directory configured ***
[root@monitors nagios-4.2.0]# make install-webconf
/usr/bin/install -c -m 775 -o nagios -g nagcmd -d /usr/local/nagios/var/rw
chmod g+s /usr/local/nagios/var/rw
*** External command directory configured ***
/usr/bin/install -c -m 644 sample-config/httpd.conf /etc/httpd/conf.d/nagios.conf
*** Nagios/Apache conf file installed ***
[root@monitors nagios-4.2.0]# cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
[root@monitors nagios-4.2.0]# chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
[root@monitors nagios-4.2.0]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Nagios Core 4.2.0
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-01-2016
License: GPL
Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...
Running pre-flight check on configuration data...
Checking objects...
        Checked 8 services.
        Checked 1 hosts.
        Checked 1 host groups.
        Checked 0 service groups.
        Checked 1 contacts.
        Checked 1 contact groups.
        Checked 24 commands.
        Checked 5 time periods.
        Checked 0 host escalations.
        Checked 0 service escalations.
Checking for circular paths...
        Checked 1 hosts
        Checked 0 service dependencies
        Checked 0 host dependencies
        Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...
Total Warnings: 0
Total Errors:   0
Things look okay - No serious problems were detected during the pre-flight check
  6.启动

  • RHEL/CentOS
[root@monitors nagios-4.2.0]# /etc/init.d/nagios start
Starting nagios: done.
[root@monitors nagios-4.2.0]# /etc/init.d/httpd start
正在启动 httpd:httpd: Could not reliably determine the server's fully qualified domain name, using monitors.localdomain for ServerName                                                                 [确定]
  • Ubuntu
sudo a2ensite nagios
sudo a2enmod rewrite cgi
sudo cp /etc/init.d/skeleton /etc/init.d/nagios
sudo vi /etc/init.d/nagios (and add the following lines)
DESC="Nagios"
NAME=nagios
DAEMON=/usr/local/nagios/bin/$NAME
DAEMON_ARGS="-d /usr/local/nagios/etc/nagios.cfg"
PIDFILE=/usr/local/nagios/var/$NAME.lock
systemctl restart apache2
systemctl start nagios

7.创建WEB登录用户名及密码

[root@monitors nagios-4.2.0]# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin

2.3 Nagios Plugin 安装

[root@monitors nagios-4.2.0]# cd /tmp/nagios-plugins-2.1.2
[root@monitors nagios-plugins-2.1.2]# ./configure --with-nagios-user=nagios --with-nagios-group=nagios
[root@monitors nagios-plugins-2.1.2]# make
[root@monitors nagios-plugins-2.1.2]# make install

       Nagios Service配置:

[root@monitors nagios-plugins-2.1.2]# chkconfig --add nagios
[root@monitors nagios-plugins-2.1.2]# chkconfig --level 35 nagios on
[root@monitors nagios-plugins-2.1.2]# chkconfig --add httpd
[root@monitors nagios-plugins-2.1.2]# chkconfig --level 35 httpd on
Ubuntu:
sudo update-rc.d nagios defaults

      到目前为之Nagios基本安装成功,若要投入生产环境,还需要安装其他相应的插件及配置,否则是无法提供相应的监控等功能。登录http://172.16.56.131/nagios/,用户名:nagiosadmin,密码:123456,验证配置结果。

如果页面出现:nagios Unable to get process status

        解决方法(禁用Selinux和iptables):

[root@monitors nagios-plugins-2.1.2]# vi /etc/sysconfig/selinux
[root@monitors nagios-plugins-2.1.2]# getenforce
Enforcing
[root@monitors nagios-plugins-2.1.2]# setenforce 0
[root@monitors nagios-plugins-2.1.2]# getenforce

          处理后刷新登录:


2.4 安装Postfix邮件服务

      Nagios监控结果的报警功能能够实现的关键之一就是邮件通知,MTA—Postfix、sendEmail、外部SMTP服务器等方式都可以实现警报邮件的发送。本文简单介绍一下Postfix(postfix是Wietse Venema在IBM的GPL协议之下开发的MTA软件,与sendmail保有足够的兼容性)的安装,因为Nagios只用到了Postfix的邮件发送功能,仅需要安装Postfix,并将服务添加至开机自启动,其他配置这里就略过。

[root@monitors ~]# rpm -qa |grep postfix
postfix-2.6.6-2.2.el6_1.x86_64

     如果没有安装,执行如下命令:

[root@monitors ~]# yum install postifx
[root@monitors ~]# chkconfig postfix on
[root@monitors ~]#/etc/init.d/postfix restart
关闭 postfix:                                             [确定]
启动 postfix:                                             [确定]

    关于Nagios的其他内容请陆续关注作者其他文章!

:本文参阅Nagios官方文档实践后所编写,文中不足之处欢迎批评指正!
















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值