警告
本文最后更新于 2023-07-08,文中内容可能已过时。
Docker 安装 nagios4
安装 nagios
1
2
3
4
5
6
|
docker pull jasonrivers/nagios
docker run --rm --name nagios4 -p 0.0.0.0:8080:80 jasonrivers/nagios:latest
## 我们需要配置一个用户,我们让docker容器中的nagios配置文件跟虚拟机磁盘建立联系
mkdir -p /opt/nagios4/etc
docker cp nagios4:/opt/nagios/etc /opt/nagios4/
|
然后退出这个 docker
(ctl-c)。接下来我们需要给账户设置密码,使用了 htpasswd
这个工具。
安装 apache2 与 httpd
1
2
3
4
5
6
7
8
9
10
11
12
|
## ubuntu
sudo apt install apache2
## CentOS
sudo yum install httpd
## 生成密码
sudo htpasswd -c /opt/nagios4/etc/htpasswd.users nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin
|
启动服务
1
|
docker run -d --name nagios4 -p 0.0.0.0:8080:80 -v /opt/nagios4/etc:/opt/nagios/etc jasonrivers/nagios:latest
|
现在可以使用账号访问网页:http://127.0.0.1:8080/。
使用
配置 nagios4/etc
通过指定目录,实现以任意添加 *.cfg
文件的方式来增加客户端监控项目。
1
2
3
4
5
6
7
8
9
10
11
|
mkdir -p /opt/nagios4
sudo docker cp nagios4:/opt/nagios/etc /opt/nagios4
vim /opt/nagios4/etc/nagios.cfg
#cfg_dir=/opt/nagios/etc/servers
#cfg_dir=/opt/nagios/etc/printers
#cfg_dir=/opt/nagios/etc/switches
#cfg_dir=/opt/nagios/etc/routers
cfg_dir=/opt/nagios/etc/colo-machines
cfg_dir=/opt/nagios/etc/research-machines
|
添加 host
可以参考 /opt/nagios/etc/objectes/localhost.cfg
, 比如这个客户端 /opt/nagios4/etc/research-machines/m2.cfg
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# 中间的内容块是用于设置设备信息的
define host {
# use 关键字表示使用的模版,模版将在后续讲解,此处使用的是 linux-server 模版
use linux-server
# host_name 关键字表示机器的名字,也是在 Web 界面中显示的名字
host_name M2
# alias 表示机器的别名,一般用作机器别名的描述
alias M2@WuyaCapital
# address 设置该机器的 IP 地址,以便与数据的获取与被动监控的请求
address 192.168.1.162
# 最大的尝试次数,也就是在某服务监控出错再次运行监控命令获取数据的次数
max_check_attempts 3
# 检测的时间段
check_period 24x7
# 发送消息提醒的时间间隔
notification_interval 30
# 发送消息提醒的时间段
notification_period 24x7
}
define service{
use local-service,graphed-service ; Name of service template to use
host_name M2
service_description Current Users
check_command check_nrpe!check_users
check_interval 1
retry_interval 1
check_period 24x7
notification_interval 1
notification_period 24x7
notifications_enabled 1
register 1
}
define service{
use local-service,graphed-service ; Name of service template to use
host_name M2
service_description Total Procs
check_command check_nrpe!check_total_procs
check_interval 1
retry_interval 1
check_period 24x7
notification_interval 1
notification_period 24x7
notifications_enabled 1
register 1
}
|
同时,我们需要修改命令
1
2
3
4
5
6
7
|
vim /opt/nagios4/etc/objects/command.cfg
# 'check_NRPE' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
|
客户端安装 nrpe
配置
1
2
3
4
5
6
7
8
9
|
vim /etc/nagios/nrpe.cfg
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
allowed_hosts=127.0.0.1,192.168.1.82
|
1
2
|
systemctl enable nrpe
systemctl start nrpe
|
测试
1
2
3
4
|
## 服务器测试
/opt/nagios/libexec/check_nrpe -H 192.168.1.162 -p 5666 -c check_total_procs
PROCS CRITICAL: 605 processes | procs=605;150;200;0;
|
Ref