引言

Nagios 作为业界非常强大的一款开源监视系统。

  • 监控网络服务(SMTP、POP3、HTTP、NNTP、PING 等);
  • 监控主机资源(处理器负荷、磁盘利用率等);
  • 简单地插件设计使得用户可以方便地扩展自己服务的检测方法;这一点是 Nagios‘er 们非常喜欢的。
  • 当服务或主机问题产生与解决时将告警发送给联系人(通过 EMail、短信、用户定义方式);需要配套的邮件服务器和短信网关对接。

另外还支持 Cacti 、 Ganglia、OpenTSDB 告警接入,强大的 Nagios 还有什么做不到的?作为一个告警平台,Nagios 已经是很强大了,然而在通知方面,特别是微信、短信、电话提醒通知方面还是短板,下面以目前最新版Nagios4.0.8+OneAlert 实现监控和微信提醒。

安装说明

如果你从来没有接触过 Nagios,请按照以下步骤安装 Nagios,如果你对 Nagios 非常熟悉或者机器中有 Nagios,请跳过安装步骤,直接进入 OneAlert 的报警设置。 也可以参考
Nagios 官网

Nagios 服务器: 10.128.6.38 CentOS 6.5 64bit
被监控机器:    10.128.14.102 CentOS 6.7 64bit

安装 Nagios 和 Nagios 插件(安装过程中标红的操作为安装 Apache,方便我们后面的调试,可以选择性安装,建议安装 Apache,因为有页面的交互方面快捷。)

安装 Nagios 服务器

在服务器10.128.6.38上安装 Nagios Server 相关软件。

1.依赖包安装
请使用 root 用户或者 sudo 权限安装相关依赖包,建议先执行更新:

yum update yum install httpd php yum install gcc glibc glibc-common yum install gd gd-devel

2.创建用户组

创建 Nagios 用户,并设置初始密码

useradd -m nagios(/usr/sbin/useradd -m nagios) passwd nagios(提示输入两次密码)

创建用户组 nagcmd,允许外部命令通过 Web 接口提交动作,并将 Nagios 和 Apache 用户加入该用户组中.

/usr/sbin/groupadd nagcmd /usr/sbin/usermod -a -G nagcmd nagios /usr/sbin/usermod -a -G nagcmd apache

3.下载 Nagios 和插件
在~目录创建子目录 downloads

mkdir ~/downloads cd ~/downloads

下载 Nagios 和插件(visit https://www.nagios.org/download/ ),以 Nagios 4.0.8 和插件 Nagios Plugins 2.0.3为例:

下载 Nagios 4.0.8

wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-4.0.8.tar.gz

下载 Nagios Plugins 2.0.3插件

wget http://www.nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

4.编译安装 Nagios

cd ~/downloads tar xzf nagios-4.0.8.tar.gz cd nagios-4.0.8 ./configure --with-command-group=nagcmd

make all make install make install-init make install-config make install-commandmode

5.编译安装插件

cd ~/downloads tar xzf nagios-plugins-2.0.3.tar.gz cd nagios-plugins-2.0.3 ./configure --with-nagios-user=nagios --with-nagios- group=nagios make make install

6.启动 Nagios

将 Nagios设置为开机启动

chkconfig --add nagios chkconfig nagios on

检查配置文件是否正确

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

如果没有错误,启动 Nagios

service nagios start

7.修改 linux 的 SElinux 配置(两种方法)

  • 设置linux为混杂模式,该方法重启后不生效

setenforce 0

  • 或直接修改配置文件

vi /etc/selinux/config

设置为 SELINUX=permissive,修改完毕后重启服务器

8.允许 cgi 运行

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/ chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

至此 Nagios 和插件都已经安装完成了。
在这里我们要多讲一句,Nagios 安装的只是服务端,真正监控服务器信息的是 Nagios Plugins 2.0.3插件实现的监控。我们目前仅在本机上安装了插件,因此仅仅监控的是10.128.6.38这台机器,想要监控其他机器的环境,继续向下看。让我们看一下 Nagios的监控界面

Nagios大图
Nagios大图

但是我们知道,如果服务器出现大问题,我们需要第一时间收到报警的通知,此时 OneAlert 就要登场了。让我们看一下如何使用 OneAlert 对 Nagios 进行报警设置。
或参考 OneAlert 集成 Nagios 安装文档

通过OneAlert微信报警

OneAlert 提供 Agent Shell 脚本命令插件, Nagios 通过新增用户通知contacts的方式,调用 Shell命令将告警通知发送至 OneAlert云告警平台,OneAlert 根据通知策略,分派和通知到用户,提供微信、短信、电话和邮件方式。

1.注册并创建应用
猛戳
这里注册,OneAlert支持很多应用,我们现在创建 Nagios 应用,并获取appkey,3adac4c9-3a82-76af-7b33-0a0bdf16334d

见下图


创建应用
创建应用
  • 如果有很多 Nagios,可以新建多个应用,分别接入。
  • 建议告警关闭时间大于 Nagios 告警提醒间隔,如90分钟,即超过90分钟,没有新的告警,就自动关闭告警。

2.安装 OneAlert Agent
在 Nagios 服务器10.128.6.38上下载最新版本 OneAlert Agent。参考官网

下文以 Nagios 默认安装路径 /usr/local/nagios/ 为例,如果你的 Nagios 服务器不是安装在该目录,请自行替换。

tar xvf alert-agent-4.0.1-RC1.tar.gz cp -R alert-agent /usr/local/nagios/libexec/ cp alert-agent/plugin/nagios-plugin/nagios /usr/local/nagios/libexec/ chmod +x /usr/local/nagios/libexec/nagios cp alert-agent/plugin/nagios-plugin/110monitor.cfg /usr/local/nagios/etc/objects/

3.修改配置

修改默认用户 110monitor 的联系方式,在文件 /usr/local/nagios/etc/objects/110monitor.cfg 中,设置pager为上面应用的 appkey: 例如 3adac4c9-3a82-76af-7b33-0a0bdf16334d

vi /usr/local/nagios/etc/objects/110monitor.cfg

define contact{        
contact_name                    110monitor                 ; The name of this contact template        
alias                           110monitor                 ;        
service_notification_period     24x7                    ;service notifications can be sent anytime        
host_notification_period        24x7                    ; host notifications can be sent anytime          
service_notification_options    w,u,c,r,f,s             ; send notifications for all service states, flapping events, and scheduled downtime events        
host_notification_options       d,u,r,f,s               ; send notifications for all host states, flapping events, and scheduled downtime events        
service_notification_commands   notify-service-by-110monitor ; send service notifications via email          
host_notification_commands      notify-host-by-110monitor    ; send host notifications via email        
pager                           3adac4c9-3a82-76af-7b33-0a0bdf16334d ; your nagios app key       
}

修改/usr/local/nagios/etc/objects/contacts.cfg,新增110monitor到默认联系组.

vi /usr/local/nagios/etc/objects/contacts.cfg

define contactgroup{        
contactgroup_name       admins        
alias                   Nagios Administrators      
members                 nagiosadmin,110monitor        
}

修改 /usr/local/nagios/etc/nagios.cfg,将 110monitor.cfg 新增到 nagios.cfg 中

vi /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/110monitor.cfg
可选为了让告警信息显示更友好,建议修改 nagios.cfg 由原先 us 更改为 iso8601
date_format=iso8601

4.重启 Nagios

重启前检查下配置是不是正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

如果没有报错,就可以重启 Nagios 了

service nagios restart

5.完成

基本上按照上面配置就 OK 了,后面需要验证下是否正常发送。最简单的方式是将禁 Ping Nagios 服务器。

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 禁ping echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all 恢复ping

禁 Ping 后,Nagios 服务器会发生告警,默认尝试3次后发送告警通知。我们通过跟踪 OneAlert Agent 日志就可以看出来:

tail -f /usr/local/nagios/libexec/alert-agent/log/agent.log

10-05-2015 15:48:53,056 CST INFO  [main] [com.upyoo.agent.NagiosClient@45] start to call alert 
...
10-05-2015 15:48:53,775 CST INFO  [main] [com.upyoo.agent.CommandClient@68] result:{"result":"success","message":null,"data":"3516","totalCount":0,"code":"200"}`

恭喜你,已经完成 Nagios 的安装集成,登录到 OneAlert 控制台,用微信进行扫码即可用微信实现报警。


微信扫一扫
微信扫一扫
Nagios 安装及微信短信提醒
Nagios 安装及微信短信提醒

好了,后续可以接着安装 Nagios 被监控服务器了。

安装 Nagios 被监控服务器

之前是安装了 Nagios Server,接下来我们可以在其他应用服务器,被监控节点10.128.14.102上安装 Nagios Agent 了。

1、提前准备

使用 root 权限

yum install gcc glibc glibc-common yum install gd gd-devel yum install openssl openssl-devel yum install xinetd

2、新增 Nagios 用户

/usr/sbin/useradd -m nagios passwd nagios

/usr/sbin/groupadd nagcmd /usr/sbin/usermod -a -G nagcmd nagios

3、安装插件

wget http://www.nagios-plugins.org/download/nagios-plugins-2.0.3.tar.gz

./configure --with-nagios-group=nagcmd make make install chown -R nagios:nagcmd /usr/local/nagios/

安装 nrpe 插件

wget http://downloads.sourceforge.net/project/nHYPERLINK "http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fnagios%2Ffiles%2Fnrpe-2.x%2Fnrpe-2.15%2F&ts=1440644699&use_mirror=jaist"agios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz

./configure —with-nagios-group=nagcmd

make all make install-plugin make install-daemon make install-daemon-config make install-xinetd

4、修改配置
修改 only_from= 127.0.0.1 10.128.6.38(10.128.6.38为 nagios 服务端ip地址)

vi /etc/xinetd.d/nrpe

在 Nagios 服务器上增加对被监控机器的监控,先看看被监控机器上的 nrpe 配置
more /usr/local/nagios/etc/nrpe.cfg

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

以上命令[check_hda1]就是检测被监控机器 10.128.14.102 的磁盘空间,20% 空闲时警告,10% 空闲时严重告警。那么 Nagios 服务器 10.128.6.38 就要通过 nrpe 调用监控对应命令。

现在进入 Nagios 服务器 10.128.6.38,编写对应的监测命令,加入一个 linux-server,和对应监控命令。
vi /usr/local/nagios/etc/objects/localhost.cfg 加入机器:

配置如下图:

Nagios 安装及微信短信提醒
Nagios 安装及微信短信提醒
Nagios 安装及微信短信提醒
Nagios 安装及微信短信提醒

红色为添加项(对图片的文字描述,一个意思。)

define host{
    use                     linux-server            
                                        
    host_name               localhost
    alias                   localhost
    address                 127.0.0.1
    }

define host{
    use                     linux-server            
                                                         
    host_name              ligehost
    alias                   ligehost
    address                 10.128.14.102
    }


define hostgroup{
    hostgroup_name  linux-servers 
    alias            Linux Server
    members         localhost,ligehost          
}


define service{
    use                             local-service        
    host_name                       localhost,ligehost
    service_description                PING
    check_command                  check_ping!100.0,20%!500.0,60%
    }

define service{
    use                             local-service        
    host_name                       localhost,ligehost
    service_description                Root Partition
    check_command                  check_local_disk!20%!10%!/
    }

修改完毕后,重新加载配置

service nagios reload

可看到监控如图所示:

好了 ,现在全部配置完毕,Nagios 监控正常,如果服务故障,会通过 OneAlert 平台统一告警。

OneAlert 是北京蓝海讯通科技有限公司旗下产品,中国首个 SaaS 模式的云告警平台,集成国内外主流监控/支撑系统,实现一个平台上集中处理所有IT事件,提升IT可靠性。想了解更多信息,请访问 OneAlert 官网

本站以现代、古代情诗为主,情诗网创办于2013年,以原创爱情诗歌、经典情诗、现代情诗、古代情诗、英文情诗、情诗绝句为主并收集古诗、古诗词、诗歌大全、诗词名句的文学门户。方便您下次继续阅读;可以放在浏览器的收藏夹中(快捷键Ctrl+D);或者看到喜欢或者有趣的诗词可以通过分享按钮给你的好友分享;情诗网是目前最全情诗大全网站之一。并欢迎广大诗歌爱好者阅览投稿!喜欢本站的话请大家把本站告诉给你朋友哦!地址是 www.qingshiwang.com !