Linux-监控与安全运维之Nagios
1. Nagios 简介
是一个开源软件,可以监控网络设备网络流量、Linux/windows主机状态,甚至可以监控打印机
它可以运行在Linux上或windows上
基于浏览器的web界面方便运维人员查看监控项目的状态
支持web界面配置、管理操作
支持短信、邮件通知
可以自定义脚本实现自定义化监控
Nagios官网 http://www.nagios.org
2. Nagios安装 - 服务端(192.168.0.11)
Centos6默认的yum源里没有nagios相关的rpm包,但是我们可以安装一个epel的扩展源:
rpm -ivh http://www.aminglinux.com/bbs/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm
yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
设置登录nagios后台的用户和密码:htpasswd -c /etc/nagios/passwd nagiosadmin
vim /etc/nagios/nagios.cfg
nagios -v /etc/nagios/nagios.cfg 检测配置文件
启动服务:service httpd start; service nagios start
浏览器访问: http://ip/nagios
3. Nagios安装 - 客户端(192.168.0.12)
在客户端机器上 rpm -ivh http://www.aminglinux.com/bbs/data/attachment/forum/month_1211/epel-release-6-7.noarch.rpm
yum install -y nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe
vim /etc/nagios/nrpe.cfg 找到“allowed_hosts=127.0.0.1” 改为 “allowed_hosts=127.0.0.1,192.168.0.11” 后面的ip为服务端ip; 找到” dont_blame_nrpe=0” 改为 “dont_blame_nrpe=1”
启动客户端 /etc/init.d/nrpe start
4. 监控中心(192.168.0.11)添加被监控主机(192.168.0.12)
cd /etc/nagios/conf.d/
vim 192.168.0.12.cfg //加入:
- define host{
- use linux-server ; Name of host template to use
- ; This host definition will inherit all variables that are defined
- ; in (or inherited by) the linux-server host template definition.
- host_name 192.168.0.12
- alias 0.12
- address 192.168.0.12
- }
- define service{
- use generic-service
- host_name 192.168.0.12
- service_description check_ping
- check_command check_ping!100.0,20%!200.0,50%
- max_check_attempts 5
- normal_check_interval 1
- }
- define service{
- use generic-service
- host_name 192.168.0.12
- service_description check_ssh
- check_command check_ssh
- max_check_attempts 5
- normal_check_interval 1
- }
- define service{
- use generic-service
- host_name 192.168.0.12
- service_description check_http
- check_command check_http
- max_check_attempts 5
- normal_check_interval 1
- }
复制代码
5. 配置文件的简单说明
我们定义的配置文件中一共监控了三个service:ssh, ping, http 这三个项目是使用本地的nagios工具去连接远程机器,也就是说即使客户端没有安装nagios-plugins以及nrpe也是可以监控到的。其他的一些service诸如负载、磁盘使用等是需要服务端通过nrpe去连接到远程主机获得信息,所以需要远程主机安装nrpe服务以及相应的执行脚本(nagios-plugins)
max_check_attempts 5 #当nagios检测到问题时,一共尝试检测5次都有问题才会告警,如果该数值为1,那么检测到问题立即告警
normal_check_interval 1#重新检测的时间间隔,单位是分钟,默认是3分钟
notification_interval 60 #在服务出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟。如果你认为,所有的事件只需要一次通知就够了,可以把这里的选项设为0。
6. 继续添加服务
服务端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/192.168.0.12.cfg
增加如下内容:
- define service{
- use generic-service
- host_name 192.168.0.12
- service_description check_load
- check_command check_nrpe!check_load
- max_check_attempts 5
- normal_check_interval 1
- }
- define service{
- use generic-service
- host_name 192.168.0.12
- service_description check_disk_hda1
- check_command check_nrpe!check_hda1
- max_check_attempts 5
- normal_check_interval 1
- }
- define service{
- use generic-service
- host_name 192.168.0.12
- service_description check_disk_hda2
- check_command check_nrpe!check_hda2
- max_check_attempts 5
- normal_check_interval 1
- }
复制代码
check_nrpe!check_load :这里的check_nrpe就是在commands.cfg刚刚定义的,check_load是远程主机上的一个检测脚本
在远程主机上vim /etc/nagios/nrpe.cfg 搜索check_load,这行就是在服务端上要执行的脚本了,我们可以手动执行这个脚本
把check_hda1更改一下:/dev/hda1 改为 /dev/sda1
再加一行command[check_hda2]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2
客户端上重启一下nrpe服务: service nrpe restart
服务端也重启一下nagios服务: service nagios restart
7. 配置图形显示 pnp4nagios
(1)安装
yum install pnp4nagios rrdtool
(2)配置主配置文件
vim /etc/nagios/nagios.cfg //修改如下配置
- process_performance_data=1
- host_perfdata_command=process-host-perfdata
- service_perfdata_command=process-service-perfdata
- enable_environment_macros=1
复制代码
(3)修改commands.cfg
vim /etc/nagios/objects/commands.cfg //注释掉原有对process-host-perfdata和process-service-perfdata,重新定义
- define command {
- command_name process-service-perfdata
- command_line /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl
- }
- define command {
- command_name process-host-perfdata
- command_line /usr/bin/perl /usr/libexec/pnp4nagios/process_perfdata.pl -d HOSTPERFDATA
- }
复制代码
(4)修改配置文件templates.cfg
vim /etc/nagios/objects/templates.cfg define host {
name hosts-pnp
register 0
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
process_perf_data 1
}
define service {
name srv-pnp
register 0
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
process_perf_data 1
}
(5)修改host和service配置
vim /etc/nagios/conf.d/192.168.0.12.cfg
把 “define host{
use linux-server”
改为:
define host{
use linux-server,hosts-pnp
修改对应的service,比如
把
define service{
use generic-service
host_name 192.168.0.12
service_description check_disk_hda1
check_command check_nrpe!check_hda1
max_check_attempts 5
normal_check_interval 1
}
改为:
define service{
use generic-service,srv-pnp
host_name 192.168.0.12
service_description check_disk_hda1
check_command check_nrpe!check_hda1
max_check_attempts 5
normal_check_interval 1
}
(6) 重启和启动各个服务:
service nagios restart
service httpd restart
service npcd start
(7) 访问测试
两种访问方法:
ip/nagios/
ip/pnp4nagios/
8. 配置邮件告警
vim /etc/nagios/objects/contacts.cfg //增加:
- define contact{
- contact_name 123
- use generic-contact
- alias aming
- email lishiming2009@139.com
- }
- define contact{
- contact_name 456
- use generic-contact
- alias aaa
- email aminglinux@139.com
- }
- define contactgroup{
- contactgroup_name common
- alias common
- members 123,456
- }
复制代码
然后在要需要告警的服务里面加上contactgroup
- define service{
- use generic-service
- host_name 192.168.0.12
- service_description check_load
- check_command check_nrpe!check_load
- max_check_attempts 5
- normal_check_interval 1
- contact_groups common
- }
复制代码
9. 几个重要参数说明
notifications_enabled : 是否开启提醒功能。1为开启,0为禁用。一般,这个选项会在主配置文件(nagios.cfg)中定义,效果相同。
notification_interval: 之前刚介绍过,表示重复发送提醒信息的最短间隔时间。默认间隔时间是60分钟。如果这个值设置为0,将不会发送重复提醒。
notification_period: 发送提醒的时间段。非常重要的主机(服务)我定义为7×24,一般的主机(服务)就定义为上班时间。如果不在定义的时间段内,无论什么问题发生,都不会发送提醒。
notification_options: 这个参数定义了发送提醒包括的情况:d = 状态为DOWN, u = 状态为UNREACHABLE , r = 状态恢复为OK , f = flapping。,n=不发送提醒。
Linux-监控与安全运维之Nagios的更多相关文章
- Linux监控和安全运维 1.9 zabbix增加客户端监控
1.在客户端安装 zabbix20与服务器相对应. yum install zabbix20-agent 2.修改配置文件 vim /etc/zabbix_agentd.conf Server=127 ...
- Linux监控和安全运维 2.0 zabbix配置邮件告警
1.发邮件启动postfix /etc/init.d/postfix start mail -s @qq.com < /etc/inittab mailq 查看发送结果 2.配置发邮件文件 mk ...
- Linux实战型企业运维工程师试题测评
Linux实战型企业运维工程师试题答案 作者:尹正杰 最近在网上看到了一套有意思的面试题,我们一起来看一下这些题怎么破吧,哈哈~我先放在这里,有时间了一起来看看.多学点东西终究是没有坏处的! ...
- Python Linux系统管理与自动化运维
Python Linux系统管理与自动化运维 前言 第1章Python语言与Linux系统管理1 1.1Python语言有多流行1 1.2Python语言为什么流行3 1.3Python语言有什么缺点 ...
- 监控和安全运维 1.4 nagios安装
1. Nagios 简介是一个开源软件,可以监控网络设备网络流量.Linux/windows主机状态,甚至可以监控打印机它可以运行在Linux上或windows上基于浏览器的web界面方便运维人员查看 ...
- Linux实战型企业运维工程师试题
1.如何通过Linux配置一个局域网或者IDC机房上网网关,请给出步骤及命令?答:上网网关配置(1)开启内核转发:sed -i 's#net.ipv4.ip_forward = 0#net.ipv4. ...
- Linux下性能调试工具运维笔记
作为一名资深的linux运维工程师,为方便了解和追求服务器的高性能,如cpu.内存.io.网络等等使用情况,要求运维工程师必须要熟练运用一些必要的系统性能调试工具,liunx下提供了众多命令方便查看各 ...
- linux平台下server运维问题分析与定位
结合我工作中碰到的运维问题,总结一下Linux下server常见的运维问题以及定位方式.这里的server主要指自主开发的逻辑server,web srv因为通常采用通用的架构所以问题比较少. 逻辑s ...
- linux系列之常用运维命令整理笔录
目录 本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍 ...
随机推荐
- EM算法(expectation maximization)
EM算法简述 EM算法是一种迭代算法,主要用于含有隐变量的概率模型参数的极大似然估计,或极大后验概率估计.EM算法的每次迭代由两步完成: E步,求期望 M步,求极大. EM算法的引入 如果概率模型的变 ...
- centos中搭建nginx环境
原文地址 安装PCRE 源码:ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ cd /usr/local/src wget ftp://f ...
- 交换机/路由器上的 S口 F口 E口
S口是serial接口的意思,也叫高速异步串口,主要是连接广域网的V.35线缆用的,说白了就是路由器和路由器连接时候用的,可以用命令设置带宽,一般也就在10M.8M左右.F口是FastEthernet ...
- 《UNI|X环境高级编程》 源代码配置
代码下载地址:http://www.apuebook.com/ 下的第二版,里面有个readme文件: root@iZ23onhpqvwZ:~/ms/linux/apue/apue.2e# cat R ...
- IDEA中文出现乱码解决
转自:http://lcl088005.iteye.com/blog/2284696 我是个idea的忠实用户,新公司的项目都是用eclipse做的,通过svn拉下代码后发现,注释的内容里,中文内容都 ...
- ETL应用:使用Pro*C实现文件抽取的方法
/******************************************* ***** 函数功能 : ***** 抽取数据库记录 ***** ********************** ...
- Adding Flexcan driver support on Kernel
Adding Flexcan driver support on Kernel On kernel menuconfig, add the following items: [*] Networkin ...
- Cocos2d-x项目移植到WP8系列之八:CCLabelTTF显示中文不换行
原文链接: http://www.cnblogs.com/zouzf/p/3985330.html 在wp8平台上,CCLabeTTF显示中文不会自动换行,看了下源码,原来底层的实现是根据text的空 ...
- Windows10提示“没有权限使用网络资源”的解决方案
1.点击“开始→运行”,在“运行”对话框中输入“GPEDIT.MSC”,打开组策略编辑器 2.依次选择“计算机配置→Windows设置→安全设置→本地策略→用户权利分配” 3.双击“拒绝从网络访问这台 ...
- Cisco学习笔记
目录 1. 路由 1.1 静态路由 1.2 动态路由 2. 访问控制列表 2.1 标准访问控制列表 2.2 扩展访问控制列表 2.3 命名访问控制列表 3. VLAN 3.1 基础知识 3.2 配置实 ...