服务端目录介绍:
bin | Nagios 可执行程序所在目录 nagios nagiostats nrpe |
etc | Nagios 配置文件所在目录 nagios.cfg 包含其它配置文件 htpasswd.users 密码文件 nrpe.cfg 客户端配置文件 |
sbin | Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录 histogram.cgi showlog.cgi statuswrl.cgi |
share | Nagios网页文件所在的目录 |
libexec | Nagios 外部插件所在目录 check_ifstatus check_nrpe |
var | Nagios 日志文件、lock 等文件所在的目录 nagios.log |
var/archives | Nagios 日志自动归档目录 |
var/rw | 用来存放外部命令文件的目录 |
位置:etc/objects/
commands.cfg 存放nagios命令相关配置(也可以指定commands目录),这里的命令不是系统的命令。而是实现把nagios里的命令和linux系统里的插件命令关联的一个文件
services.cfg 存放具体被监控的服务相关配置内容(上百台以上可以指定services目录,默认无)
hosts.cfg 存放具体被监控的主机相关配置(上百台以上可以指定hosts目录,默认不存在)
contacts.cfg 存放报警联系人相关的配置文件
timeperiods.cfg 存放报警周期时间等相关配置
templates.cfg~ 模版配置文件,模版的存在是为了方便的配置服务配置,类似shell的函数。
服务端主配置文件简介及配置准备
文件生成:
到etc/objects利用localhost.cfg 生成hosts.cfg文件
head -51 localhost.cfg >hosts.cfg
chown -R nagios.nagios hosts.cfg
创建serveses.cfg文件
touch services.cfg
chown -R nagios.nagios services.cfg
注意备份:tar zcvf etc.nagios.tar.gz etc/
vi nagios.cfg +34
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
cfg_file=/usr/local/nagios/etc/objects/templates.cfg
#包含关系,注意是通过cfg_file= 包含的
添加 : cfg_file=/usr/local/nagios/etc/objects/services.cfg
cfg_file=/usr/local/nagios/etc/objects/hosts.cfg
39 #cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
#不使用localhost.cfg(本机的监控):
53 # directive as shown below:
55 #cfg_dir=/usr/local/nagios/etc/servers
#注意:nagios 也可以包含目录
x保存退出
118 status_update_interval=5
#监控状态更新间隔
164command_check_interval=2
#尽可能的检测参数,不要-1
384 max_service_check_spread=30
#最大的服务检查间隔
---------------------------------------------------------------------------------------------
vi /usr/local/nagios/etc/objects、hosts.cfg
#被监控主机的节点
define host{
use linux-server
#->/usr/local/nagios/etc/objects/templates.cfg 基于模版 host_name 主机名
alias 别名
address 节点ip
}
主机分组:
define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members nagios-server22,nagios-server23
}
#逗号,分隔主机
-----------------------------------------------------------------------------------------
vi /usr/local/nagios/etc/objects/serveses.cfg
#定义一个监控的服务:
define service{
use generic-service ;服务模版
host_name nagios;监控主机名
service_description Disk Partition ;监控磁盘分区
check_command check_nrpe!checck_disk ;监控命令
}
------------------------------------------------------------------------------------------
vi /usr/local/nagios/etc/objects/commands.cfg
#定义一个监控的命令
# 'check_nrpe' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
-H 主机地址 -c指定参数(客户端check名,不可以随便更改)
范例:/usr/local/nagios/libexec/check_nrpe -H 10.0.0.22 -c check_disk
检查语法:/etc/init.d/nagios checkconfig (无具体的错误信息)
通过修改:vim /etc/init.d/nagios +183
183 $NagiosBin -v $NagiosCfgFile
#显示错误信息
或者:/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
重启完毕:/etc/init.d/nagios reload
nagios报错Connection refused by host
排查时根据nagios监控原理排查
客户端 /usr/local/nagios/libexec/check_nrpe -H 10.0.0.23 -c check_disk
防火墙关闭
selinux 关闭
nrpe守护进程是否启动
ss检查端口是否正常
nrpe.cfg 中是否允许服务端连接
是否定义检查的命令
检查检测命名是否有x权限
服务端:/etc/init.d/nagios reload
在配置文件问否正确
检测命令名是否正确;
本文出自 “思想大于技术” 博客,谢绝转载!