Nagios
1. 简介
-
主要功能
- 网络服务监控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
- 主机资源监控(CPU load、disk usage、system logs),也包括Windows主机(使用NSClient++ plugin)
- 可以指定自己编写的Plugin通过网络收集数据来监控任何情况(温度、警告……)
- 可以通过配置Nagios远程执行插件远程执行脚本
- 远程监控支持SSH或SSL加通道方式进行监控
- 简单的plugin设计允许用户很容易的开发自己需要的检查服务,支持很多开发语言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
- 包含很多图形化数据Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
- 可并行服务检查
- 能够定义网络主机的层次, 允许逐级检查, 就是从父主机开始向下检查
- 当服务或主机出现问题时发出通告,可通过email, pager, sms 或任意用户自定义的plugin进行通知
- 能够自定义事件处理机制重新激活出问题的服务或主机
- 自动日志循环
- 支持冗余监控
- 包括Web界面可以查看当前网络状态,通知,问题历史,日志文件等
2. 安装
$ yum install -y nagios nagios-devel nagios-plugins* $ yum install -y gd gd-devel httpd php gcc glibc glibc-common openssl
3. 配置
* 路径
$ cd /etc/nagios/conf.d
* 添加主机组: hostgroup.cfg
$ touch hostgroup.cfg define hostgroup { hostgroup_name vm-server alias vm server members vm1, vm2, vm3, vm4, vm5 }
* 添加主机: {$host}.cfg
$ touch vm1.cfg vm2.cfg vm3.cfg vm4.cfg vm5.cfg $ vim vm1.cfg define host{ use linux-server host_name vm1 alias vm1 address 172.16.64.128 } $ vim vm2.cfg define host{ use linux-server host_name vm2 alias vm2 address 172.16.64.129 } ...
* 添加监控: {$service}.cfg
$ touch PING.cfg define service { use generic-service host_name vm1, vm2, vm3, vm4, vm5 service_description PING check_command check_ping!100.0,20%!500.0,60% max_check_attempts 5 normal_check_interval 1 } $touch HTTP.cfg define service { use generic-service host_name vm1 service_description HTTP check_command check_http notifications_enabled 0 }
* 配置校验
$ nagios -v /etc/nagios/nagios.cfg
4. 启动服务
$ service httpd restart $ service nrpe restart $ service nagios restart
5. 访问
http://172.16.64.128:8080/nagios
User: nagiosadmin
Pass: nagiosadmin
6. 监控远程主机
1)安装NRPE
* 安装
$ yum install -y nrpe
* 配置
$ vim /etc/nagios/nrpe.cfg ... allowed_hosts=127.0.0.1, vm1 #添加运行nagios服务的主机,允许其通过NRPE执行相应监控脚本获取数据
2)安装nagios-plugins
$ yum install -y nagios-plugins-lcgdm-common
nagios-plugins-lcgdm-common集成了如下插件:
* check_cpu
* check_hostcert
* check_network
* check_process
3)设置监控 (vm1)
$ vim /etc/nagios/objects/commands.cfg define command { command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } $ vim /etc/nagios/conf.d/CPU.cfg define service { use generic-service,service-pnp host_name vm1,vm2 service_description CPU check_command check_nrpe!check_cpu max_check_attempts 5 normal_check_interval 1 }
7. KPI
- CPU使用率
- 内存使用率
- 网络流量
- 硬盘空间
8. pnp4nagios
* 安装
$ yum install -y pnp4nagios
* 配置
配置Nagios数据输出接口:
$ vim /etc/nagios.cfg process_performance_data=1 #默认为0,修改为1 host_perfdata_command=process-host-perfdata #注释开头#号 service_perfdata_command=process-service-perfdata #注释开头#号
替换commands.cfg命令process-service-perfdata为以下内容:
$ vim /etc/objects/commands.cfg # 'process-host-perfdata' command definition define command{ command_name process-host-perfdata command_line /usr/libexec/pnp4nagios/process_perfdata.pl -d HOSTPERFDATA } # 'process-service-perfdata' command definition define command{ command_name process-service-perfdata command_line /usr/libexec/pnp4nagios/process_perfdata.pl }
在模板配置文件中添加图表图标模板:
$ vim /etc/objects/templates.cfg define host { name host-pnp action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_ register 0 } define service { name service-pnp action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ register 0 }
复制鼠标悬停图标显示文件:
$ cp /usr/share/doc/pnp4nagios-0.6.20/contrib/ssi/* /usr/share/nagios/html/ssi
在监控主机或服务中调用图表模板:
* 启动服务
$ service npcd restart $ service httpd restart
参考文献:
- 维基百科 - Nagios
- 我用Nagios(技术细节)
- CentOS 6.4上通过yum安装Nagios-3.5.0 [服务端/server端]
- 监控利器Nagios原理教程(即、Nagios怎样报警?)(适合新手阅读)
- Nagios 3.x Nagios在线帮助中文版 form Dr.田朝阳
- nagios利用NRPE监控CPU、负载、磁盘IO
- Nagios网络监控中文版
- nagios全攻略(二)
- nagios监控脚本编写-监控cpu使用率
- Nagios监控故障排除
- NagiosQL添加监控主机及Nagios上启用报警机制
- Linux 系统Nagios配置pnp4nagios支持图表显示
- nagios全攻略(四)----监控LINUX上的”本地信息”
- Nagios监控Linux主机(NRPE安装与应用)