nagios部署监控多台client

添加client节点

####添加一台client:新加入的是一台开启了防火墙的阿里云服务器

首先搭建client环境

#监控Linux、Unix主机,安装客户端

添加nagios用户

useradd -m nagios -s /sbin/nologin

#安装插件nagios-plugins

cd /home/huang/tools/

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

tar xfz nagios-plugins-2.1.1.tar.gz

cd nagios-plugins-2.1.1

./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/usr/local/nagios

make

make install

chown -R nagios.nagios /usr/local/nagios/

#安装NRPE

cd /home/huang/tools/

wget https://github.com/NagiosEnterprises/nrpe/archive/3.0.tar.gz

tar xf 3.0.tar.gz

cd nrpe-3.0/

./configure

make all

make install

make install-plugin

make install-daemon

make install-config

#修改配置文件,添加nagios主机

sed -i ‘s#allowed_hosts=127.0.0.1#allowed_hosts=127.0.0.1,192.168.1.155#g‘ /usr/local/nagios/etc/nrpe.cfg

##编辑hosts.cfg配置文件,添加阿里云服务器的信息

vim ../objects/hosts.cfg

1、define host{

use                     linux-server

host_name               client01

alias                   client01

address                 120.26.68.152

}

2、加入组

define hostgroup{

hostgroup_name  linux-servers

alias           Linux Servers

members         nagios_server,client01(client01新加入的)

}

3、定义主动模式(不需要nrpe服务)   此时是主动拉取数据,所以并没有用到nrpe,也就是不使用check_nrpe,也不需要在客户端开启nrpe服务

cd /usr/local/nagios/etc/

mkdir services

chown -R nagios.nagios services

cd services

vim port-client.cfg(nagios服务的services目录下)

define service{

use     generic-service

host_name       client01

service_description     ntp_port

check_period 24x7

check_interval 5

retry_interval 1

max_check_attempts 3

check_command      check_http!-p 123

notification_period 24x7

notification_interval 30

notification_options  w,u,c,r

contact_groups admins

}

3、手动测试数据是否有收集

[[email protected] services]# /usr/local/nagios/libexec/check_tcp -H 120.26.68.152 -p 123

CRITICAL - Socket timeout after 10 seconds

报错如上

解决办法:防火墙的123端口没有向外开放(由于不想开放这个端口,所以不理会这个报错,重新监控其他端口)

这里选择监控sshd服务的端口22389

当监控sshd的端口22389

[[email protected] services]# /usr/local/nagios/libexec/check_tcp -H 120.26.68.152 -p 22389

TCP OK - 0.092 second response time on 120.26.68.152 port 22389|time=0.092055s;;;0.000000;10.000000

修改配置文件的123端口为22389

重启检测语法以及重启服务,在web页面观察到如下错误:

check_tcp: Port must be a positive integer

手动能够收集数据,但是nagios的web界面报错:check_tcp: Port must be a positive integer

解决办法:修改service配置文件:

check_command      check_tcp!22389(不需要加-p了)

#####主动模式小结

一般客户端对外开启的服务,用主动模式监控,例如:port,uri

主动模式的监控配置过程:

1、在服务端的命令行把要监控的命令先调试好

2、在commands.cfg里定义好命令,同时调用命令行的插件,先手动收集一下数据

3、在服务的配置文件里定义要监控的服务,调用commands.cfg里定义的监控命令

创建第二台client服务器,ip为192.168.1.11

首先还是搭建nrpe环境,这里省略

这次选择客户端被动模式收集数据

在client02上操作

[[email protected] ~]# /usr/local/nagios/libexec/check_tcp -H 192.168.1.11 -p 80

TCP OK - 0.001 second response time on 192.168.1.11 port 80|time=0.000810s;;;0.000000;10.000000

手动抓取数据正常,于是配置服务器端:

define service{

use                     generic-service

host_name               client02   ----》已经定义了hosts文件(192.168.1.11为client02)

service_description     web_port

check_command           check_nrpe!check_tcp

}

然后重启服务,出现如下错误:

NRPE: Command ‘check_tcp‘ not defined

解决办法:这是因为客户端配置文件nrpe.cfg并没有定义check_tcp这个命令,编辑配置文件,添加下面一行:

command[check_tcp]=/usr/local/nagios/libexec/check_tcp -H 192.168.1.11 -p 80

然后在服务端进行手动测试抓取数据:

[[email protected] etc]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.11 -c check_tcp

TCP OK - 0.001 second response time on 192.168.1.11 port 80|time=0.000670s;;;0.000000;10.000000

成功解决

然后被动模式成功

#########对每个服务进行分组(好几台服务器监控的服务都是load负载)

新建:vim /usr/local/nagios/etc/services/servicegroup.cfg

define servicegroup{

servicegroup_name  load    ----》这里对应service配置文件的service_description

alias           Linux Servers

members         nagios_server,load,client01,load,client02,load

}

将三个主机(nagios_server、client01、client02)的监控的load服务定义到一个服务组中,

修改server.cfg中的description如下:

vim ../objects/services.cfg

define service{

use                     generic-service

host_name               nagios_server    由于这里只定义了一个主机,所以还是显示了一个

service_description     load      -----》这里改成和服务组定义的名称一致

check_command           check_nrpe!check_load

}

#####模板选择与修改

编辑的services.cfg

define service{

use     generic-service      ----》这里使用的是generic-service这个模板,在配置文件templates.cfg中有定义,自己可以在模板中定义一个别的service模板,然后这里修改就行

host_name       client01

service_description     ntp_port

check_period 24x7

check_interval 5

retry_interval 1

max_check_attempts 3

check_command      check_http!22389

notification_period 24x7

notification_interval 30

notification_options  w,u,c,r

contact_groups admins

}    ----》后面这些和模板中相同的参数配置都可以省略掉,因为和模板配置文件一样,刚好就调用了模板文件

模板定义:vim templates.cfg

define service{

name                            generic-service        这个名词可以修改的

active_checks_enabled           1

passive_checks_enabled          1

parallelize_check               1

obsess_over_service             1

check_freshness                 0

notifications_enabled           1

event_handler_enabled           1

flap_detection_enabled          1

process_perf_data               1

retain_status_information       1

retain_nonstatus_information    1

is_volatile                     0

check_period                    24x7

max_check_attempts              3

normal_check_interval           10          这个可以稍微改小一点

retry_check_interval            2

contact_groups                  admins

notification_options            w,u,c,r        warning unknown critical recovery

notification_interval           60

notification_period             24x7

register                        0

}

########定义分组报警

vim contacts.cfg

以下是默认联系人

define contact{

contact_name                    nagiosadmin

use                             generic-contact

alias                           Nagios Admin

email                           [email protected]

}

自定义联系人:

define contact{

contact_name                    huang

use                             generic-contact

alias                           Nagios Admin

email                           [email protected]

}

define contact{        ---》联系中可以加入手机登设参数

contact_name                    huangsir

use                             generic-contact      ---》这里使用的模板就是模板文件中的contact定义

alias                           Nagios Admin

email                           [email protected]

}

将定义好的联系加到联系组中:

define contactgroup{   -----------》默认联系组

contactgroup_name       admins

alias                   Nagios Administrators

members                 nagiosadmin

}

新增联系组:

define contactgroup{

contactgroup_name       sas

alias                   Nagios Administrators

members                 huang,huangsir

}

然后修改模板中service的定义,将

contact_groups                  admins改为

contact_groups                  admins,sas

提示:根据不同的监控内容将报警设置分配不同,这时候模板就可以删掉这个参数,依次在监控的内容中定义需要报警的组即可,如下:

define service{

use                     generic-service

host_name               nagios_server

service_description     load

check_command           check_nrpe!check_load

contact_groups          admins,sas    ---》单独报警一个组也行,根据报警的重要性来分配

}

#######联系人的模板

vim templates.cfg

# Generic contact definition template - This is NOT a real contact, just a template!

define contact{

name                            generic-contact

service_notification_period     24x7

host_notification_period        24x7

service_notification_options    w,u,c,r,f,s

host_notification_options       d,u,r,f,s

service_notification_commands   notify-service-by-email     这个命令在commands.cfg配置文件中有定义

host_notification_commands      notify-host-by-email

register                        0

}

vim  commands.cfg

定义了notify-service-by-email、notify-host-by-email这两个命令,如果要使用短信报警

这里就需要在后面用逗号隔开,再者是在commands配置文件中定义命令

新建菜鸟学习交流群:584498750

时间: 2024-08-07 21:20:17

nagios部署监控多台client的相关文章

Nagios通过check_http监控一台web应用服务器上多个tomcat服务

如何在nagios监控tomcat,是一个比较简单又复杂的事情,简单是因为如果只监控web应用服务器的一个tomcat服务是否正常运行,那么比较简单:如果要监控tomcat的其他比如连接数比如jvm内存使用率等就比较复杂,google没有适合的监控脚本:如果要监控web应用上面的多个tomcat服务器,而且很多tomcat服务都是跳转式的,那就需要多做很多事情. 一般通常都使用tcp tomcat端口的方式,不过这有一个bug就是tomcat假死的情况下,tcp 端口是OK的,但是tomcat里

部署监控三剑客 Nagios 服务器监控

Nagios 简介 : Nagios是一款开源的免费网络监视工具,能有效监控Windows.Linux和Unix的主机状态,交换机路由器等网络设备,打印机等.在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知. Nagios 可以监控的功能有: 1.监控网络服务(SMTP.POP3.HTTP.NNTP.PING等): 2.监控主机资源(处理器负荷.磁盘利用率等): 3.简单地插件设计使得用户可以方便地扩展自己服务的检测方法: 4.并行服务检查机

shell编程之【nagios自定义监控系统磁盘脚本】

之前写了一篇文章主要介绍nagios的搭建使用 http://msiyuetian.blog.51cto.com/8637744/1704346 下面这篇文章主要介绍nagios自定义监控系统磁盘的脚本实现. Nagios可以识别4种状态返回信息,即 0 表示状态正常(OK).1 表示出现警告(WARNING).2 表示出现非常严重的错误(CRITICAL),3 表示未知错误(UNKNOWN).Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来.我们就可以利用上面这个特性

监控多台服务器

主要分系统监控和业务监控两类 系统监控就是每台主机的CPU,内存网络带宽等使用情况以及Mysql, Redis, Nginx等服务的核心指标等这是比较基本的监控必须得有如果这块监控做的好生产环境可以提前发现很多问题防患于未然. 业务监控就是业务相关的指标如某API每秒调用次数每分钟该API的平均响应时间服务的在线人数甚至一些运营相关的数据如七日留存率啦每日新增用户每日流失用户等.这些数据也很重要他是你整个业务的晴雨表为你做一些重要决策提供依据. 对于系统监控有很多开源软件可以拿来用如比较出名的n

搭建基于Nagios的监控系统——之监控远程Windows服务器

分享了如何监控Linux服务器,我们来看看使用Nagios如何监控Windows服务器. 第一部分:配置被监控的Windows服务器   首先,访问 http://sourceforge.net/projects/nscplus/,下载符合自己服务器的 NSClinent++.我下载下来以后的文件名为:NSCP-0.4.1.73-Win32.msi 双击安装程序,选择 Complete Install,并且选择生成实例配置文件,其他的就一路下一步就OK了. 其次,在 NSClient++ 的安装

Nagios 系统监控

Nagios 系统监控 Nagios 是一款免费的开源 IT 基础设施监控系统,功能强大,灵活性强,能有效监控 Windows.Linux.VMware 和 Unix 主机状态,交换机.路由器等网络设置等.一旦主机或服务状态出现异常时,会发出邮件或短信报警第一时间通知 IT 运营人员,在恢复后发出正常的邮件或短信.Nagios 结构简单,可维护性强,提供一个可选的基于浏览器的 Web 界面,方便管理人员查看系统的运行状态,网络状态.服务状态.日志信息,以及其它异常现象. 一.Nagios 结构简

ubuntu16.04安装部署监控系统zabbix2.4

Ubuntu16.04安装部署监控系统Zabbix2.4 第一部分,php+mysql+nginx组件安装 1.系统更新 sudo apt-get update && sudo apt-get upgrade 2.安装php-fpm 检索系统当前自带的PHP版本:apt-cache search php-fpm 安装依赖包:sudo apt-get install make  bison g++ build-essential libncurses5-dev cmake 安装php-fpm

Zabbix 3.0 部署监控 [三]

Zabbix 3.0 部署监控 [三] zabbix 时间:2016年9月22日 笔者QQ:381493251 Abcdocker交流群:454666672 如果遇到什么问题可以进群询问,我们是一个乐于帮助的集体! Dashboard首页信息介绍 Status of Zabbix(Zabbix状态)介绍 Zabbix server is running                           #Zabbix服务器是否运行 Number of hosts (enabled/disabl

awk:nagios流量监控插件

#!/bin/awk -f #function: nagios插件:细定每个网卡的监阀值,指定参数时单位为MB(如果监控周期为1分钟,则指定的参数为1分钟传输的数据大小,非Mbit/s) # #Usage:服务器(WAN:em1;LAN:em2),带宽为下行:100Mbit/s,上行:100/3约等于33.3Mbit/s(一般为下行三分之一),报警阀值按80%计算,nagios每分钟监控一次,如下: #接收(上行):100/8*0.8*60=600(单位MB) #发送(下行):100/3/8*0