图文实例讲解nagios介绍和安装

步骤:1.nagios的介绍

2.安装服务端

3.安装客户端

4.服务端添加监控的主机

5.邮箱预警



nagios的介绍

Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。

Nagios 可以监控的功能有: 1、监控网络服务(SMTP、POP3、HTTP、NNTP、PING等); 2、监控主机资源(处理器负荷、磁盘利用率等);

3、简单地插件设计使得用户可以方便地扩展自己服务的检测方法;

4、并行服务检查机制;

5、具备定义网络分层结构的能力,用"parent"主机定义来表达网络主机间的关系,这种关系可被用来发现和明晰主机宕机或不可达状态;

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

7、具备定义事件句柄功能,它可以在主机或服务的事件发生时获取更多问题定位;

8、自动的日志回滚;

9、可以支持并实现对主机的冗余监控;

10、可选的WEB界面用于查看当前的网络状态、通知和故障历史、日志文件等;

nagios:监控服务,只告诉你有哪些服务不正常



服务端操作(192.168.0.25)



1.Centos6默认的yum源里没有nagios相关的rpm包,但是我们可以安装一个epel的扩展源:

安装epel源

wget  www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm

rpm -ivh epel-release-6-8_32.noarch.rpm

yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe

2.设置登录nagios后台的用户和密码:

htpasswd -c /etc/nagios/passwd nagiosadmin

password:123456

3.查看配置文件

vim /etc/nagios/nagios.cfg

nagios -v /etc/nagios/nagios.cfg 检测配置文件

Total Warnings: 0

Total Errors:   0

4.启动服务:service httpd start; service nagios start

5.谷歌浏览器访问: http://192.168.0.25/nagios

services 介绍



客户端的操作(192.168.0.5)



1.安装epel源

wget  www.lishiming.net/data/attachment/forum/epel-release-6-8_32.noarch.rpm

rpm -ivh epel-release-6-8_32.noarch.rpm

yum install -y httpd nagios nagios-plugins nagios-plugins-all nrpe nagios-plugins-nrpe

2.修改配置文件

vim /etc/nagios/nrpe.cfg

找到“allowed_hosts=127.0.0.1” 改为 “allowed_hosts=127.0.0.1,192.168.0.25” 后面的ip为服务端ip;

找到” dont_blame_nrpe=0” 改为  “dont_blame_nrpe=1”

启动客户端 /etc/init.d/nrpe start



服务端操作监控中心(192.168.0.25)添加被监控主机(192.168.0.5)



1.新建监控的参数

cd /etc/nagios/conf.d/

vim 192.168.0.5.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.5

alias                   0.5

address                 192.168.0.5

}

define service{

use                     generic-service

host_name               192.168.0.5

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.5

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.5

service_description     check_http

check_command           check_http

max_check_attempts      5

normal_check_interval 1

}

配置文件的简单说明

我们定义的配置文件中一共监控了三个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。

2.检测是否有错

nagios -v /etc/nagios/nagios.cfg

3.重启服务

service nagios restart

打开浏览器查看nagios的Hosts 和services

nagios 中check_http 拒绝连接 错误解决办法

客户端启动服务即可

/etc/init.d/nginx start



添加服务



服务端操作

1.修改配置文件

vim /etc/nagios/objects/commands.cfg

增加:define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

如何查看check_load文件

客户端打开配置文件  vi /etc/nagios/nrpe.cfg

没有hda1 把/dev/hda1修改为/dev/sda1

在添加一行

2.服务端继续编辑

vim /etc/nagios/conf.d/192.168.0.5.cfg

增加如下内容:

define service{

use     generic-service

host_name       192.168.0.5

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.5

service_description     check_disk_sda1

3.服务端重新启动服务

service nagios restart



客户端编辑

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

#主服务器上的 service_description     check_disk_hda2

#改为  service_description     check_disk_sda2

客户端上重启一下nrpe服务: service nrpe restart

服务端也重启一下nagios服务: service nagios restart

服务端查看日志

tail /var/log/nagios/nagios.log



配置图形显示 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.25.cfg


把 “define host{
        use                     linux-server” 
改为:
define host{
        use                     linux-server,hosts-pnp

修改对应的service,比如

define service{
        use     generic-service
        host_name       192.168.0.25
        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.25
        service_description     check_disk_sda1
        check_command           check_nrpe!check_hda1
        max_check_attempts 5
        normal_check_interval 1
}

define service{
        use     generic-service
        host_name       192.168.0.19
        service_description     check_disk_sda2
        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.19
        service_description     check_disk_sda2
        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/

配置邮件告警

1.修改参数

vim /etc/nagios/objects/contacts.cfg

先定义组和用户

添加一些内容

define contactgroup{

contactgroup_name       admins

alias                   Nagios Administrators

members                 nagiosadmin

}

#group的作用是用来区分不同的用户

define contact{

contact_name               123

use                             generic-contact

alias                          lz

email              [email protected]

}

define contact{

contact_name               456

use                             generic-contact

alias                            aaa

email              [email protected]

}

define contactgroup{           #定义的组名,里面包含的用户

contactgroup_name           common

alias                                  common

members                          123,456

}

想要哪个服务报警,就需要添加一行代码

打开

vim /etc/nagios/conf.d/192.168.0.19.cfg

如果需要给load做警告, 需要告警的服务里面加上contactgroup

define service{

use     generic-service

host_name       192.168.0.19

service_description     check_load

check_command           check_nrpe!check_load

max_check_attempts 5

normal_check_interval 1

contact_groups        common   #需要添加的代码

notification_period  24*7

notification_options c,r

}

10.  几个重要参数说明
notifications_enabled : 是否开启提醒功能。1为开启,0为禁用。一般,这个选项会在主配置文件(nagios.cfg)中定义,效果相同。
notification_interval: 之前刚介绍过,表示重复发送提醒信息的最短间隔时间。默认间隔时间是60分钟。如果这个值设置为0,将不会发送重复提醒。
notification_period: 发送提醒的时间段。非常重要的主机(服务)我定义为24×7,一般的主机(服务)就定义为上班时间。如果不在定义的时间段内,无论什么问题发生,都不会发送提醒。

notification_options: 这个参数定义了发送提醒包括的情况:d = 状态为DOWN, u = 状态为UNREACHABLE , r = 状态恢复为OK ,  f = flapping。,n=不发送提醒。

时间: 2024-10-12 13:01:59

图文实例讲解nagios介绍和安装的相关文章

MySQL多实例介绍及安装

一.MySQL多实例介绍 (1)什么是MySQL多实例? 简单的说,就是在一台一台机器上开启多个不同的服务端口(如:3306,3307,3308)等,运行多个MySQL服务进程: 这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务. 这些MySQL多实例公用一套MySQL安装程序,使用不同或相同的my.cnf配置文件,启动程序,数据文件.在提供服务时,多实例 MySQL在逻辑上看来试各自独立的多个实例的自身是根据配置文件对应的设定值:来取得服务器的相关硬件资源的多少. 做个比喻

nagios介绍及Server安装(二)

6).启动相关服务 [[email protected] ~]#/etc/init.d/httpd start [[email protected] ~]#/etc/init.d/mysqld start [[email protected] ~]# mysqladmin -uroot password '111111' [[email protected] ~]#/etc/init.d/ndo2db start 7).WEB界面安装 http://192.168.100.187/centreo

nagios介绍及Server安装(三)

client端服务安装: 监控方式随便,但是常见的有下面几种: 1.使用nagios自带插件监控,也就是nrpe方式:不足之处每台client都需要安装,推荐将编译包进行rpmind,搭建yum源,执行yum即可: 2.snmp方式,好处client端只需要开启snmp服务即可,不足之处每个厂商的oid不尽相同,给监控脚本开发带来不便,推荐开发一个高效率的万能agent: 3.ssh方式,好处监控脚本易于编写,不足频繁执行会对客户端增加不必要的负担. 我这边的Client和Server端系统一样

nagios介绍及Server安装(四)

批量添加主机和服务 centreon的模板功能是做的非常强大的,而且优化过的nagios配置十分简单,加host的时候只需要输入了hostname,alias和ip 地址就可以加一台host上去,service配在hostgroup上,这样只要把host添加到hostgroup上就可以了 只添加host,service和hostgroup自己配.运行脚本之前,要先准备好几件事情:   1.要有一个host的模板,将所有的属性基本上定义完整,使用脚本添加的host会和模板一模一样,只有ip地址和h

nagios介绍及Server安装(五)

用户管理: 下面添加一个test普通用户为例: 1.添加一个test用户:配置->用户->增加 填写全名.别名.邮箱信息: 选择test接收的主机和服务报警: "Centreon验证"标签填写登陆密码,语言等信息: 创建新的访问组:管理->ACL->访问组->增加 填写组名.别名.相关联系人里添加test用户到Guest_View组: 创建新的访问控制:管理->ACL->菜单入口->增加 填写ACL命名.别名.相关组添加上面的访问组,可访

nagios介绍及Server安装(六)

客户端监控: 在此演示下前面提到的三种监控客户端的方式: 方式一:snmp 服务端ip:192.168.100.133 客户端ip:192.168.100.132 重启客户端snmpd 在服务器端snmp命令获取客户端的相关值 在此获取客户端的1分钟5分钟15分钟的load值为例 在此基础上,我们可以使用nagios的插件 方式二:nrpe(此处以检测disk命令为例) 此方法为了传参,我们在之前编译的时候已经加了argument:所以我们可以在服务器端进行参数. 比如: 修改客户端的nrpe.

nagios介绍及Server安装(七)

其他遇到问题 Centreon>Reporting>DashboardUNDETERMINED 100%的解决方法 参考  http://forge.centreon.com/issues/3360 Centreon版本centreon-2.3.8.tar.gz Dashboard的结果依赖于Event Logs的结果,如果Centreon>Monitoring>Event Logs没有结果,那么先解决Event Logs的错误,解决方法 http://www.cnblogs.co

Scrapy-Splash的介绍、安装以及实例

scrapy-splash的介绍 ??在前面的博客中,我们已经见识到了Scrapy的强大之处.但是,Scrapy也有其不足之处,即Scrapy没有JS engine, 因此它无法爬取JavaScript生成的动态网页,只能爬取静态网页,而在现代的网络世界中,大部分网页都会采用JavaScript来丰富网页的功能.所以,这无疑Scrapy的遗憾之处. ??那么,我们还能愉快地使用Scrapy来爬取动态网页吗?有没有什么补充的办法呢?答案依然是yes!答案就是,使用scrapy-splash模块!

模糊测试之实例讲解

什么是模糊测试 ? 模糊测试(Fuzzing),是一种通过向目标系统提供非预期的输入并监视异常结果来发现软件漏洞的方法.测试的基本思想就是通过向程序中输入大量的随机数据,然后观察输入这些数据之后程序的情况,记录下使程序发生异常的数据,从而判断程序是在那些地方发生了异常. 模糊测试之实例讲解   本文作者:i春秋签约作家--天天 模糊测试的实现是一个非常简单的过程: 1. 准备一份插入程序中的正确的文件. 2. 用随机数据替换该文件的某些部分. 3. 用程序打开文件. 4. 观察破坏了什么. Pe