如何使用 Nagios 监控 VPN 活动会话和温度
之前我们讨论了如何使用Nagios来监控Linux和Windows服务器。在本文中,让我们回顾如何使用 Nagios 监控 VPN 设备的活动会话和温度。您可以使用 nagios check_snmp 插件来监控有关硬件的几乎所有内容。
1. 确定一个 cfg 文件来定义 VPN 设备的主机、主机组和服务
您可以创建一个新的 vpn.cfg 文件或重新使用现有的 .cfg 文件之一。在本文中,我已将 VPN 服务和主机组定义添加到现有的 switch.cfg 文件中。确保 nagios.cfg 文件中的 switch.cfg 行没有被注释,如下所示。
# grep switch.cfg /usr/local/nagios/etc/nagios.cfg
cfg_file=/usr/local/nagios/etc/objects/switch.cfg
2.在switch.cfg中为VPN设备添加新的主机组
将以下 ciscovpn 主机组添加到 /usr/local/nagios/etc/objects/switch.cfg 文件中。
define hostgroup{
hostgroup_name ciscovpn
alias Cisco VPN Concentrator
}
3.在switch.cfg中为VPN设备添加新主机
在此示例中,我在 /usr/local/nagios/etc/objects/switch.cfg 文件中定义了两个主机——一个用于主要 Cisco VPN 集中器,另一个用于辅助 Cisco VPN 集中器。相应地将地址指令更改为您的 VPN 设备 ip-address。
define host{
use generic-host
host_name cisco-vpn-primary
alias Cisco VPN Concentrator Primary
address 192.168.1.7
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
hostgroups ciscovpn
}
define host{
use generic-host
host_name cisco-vpn-secondary
alias Cisco VPN Concentrator Secondary
address 192.168.1.9
check_command check-host-alive
max_check_attempts 10
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
hostgroups ciscovpn
}
4. 在 switch.cfg 中添加新服务以监控 VPN 活动会话和温度
将“Temperature”服务和“Active VPN Sessions”服务添加到/usr/local/nagios/etc/objects/switch.cfg 文件中。
define service{
use generic-service
hostgroup_name ciscovpn
service_description Temperature
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 10
retry_check_interval 2
contact_groups admins
notification_interval 960
notification_period 24x7
check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45
}
define service{
use generic-service
hostgroup_name ciscovpn
service_description Active VPN Sessions
is_volatile 0
check_period 24x7
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
contact_groups admins
notification_interval 960
notification_period 24x7
check_command check_snmp!-l ActiveSessions -o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0 -w :70,:8 -c :75,:10
}
5. 从命令行验证 check_snmp
Check_snmp 插件使用 NET-SNMP 包中的“snmpget”命令。确保 net-snmp 安装在您的系统上,如下所示。如果没有,请从NET-SNMP网站下载。
# rpm -qa | grep -i net-snmp
net-snmp-libs-5.1.2-11.el4_6.11.2
net-snmp-5.1.2-11.el4_6.11.2
net-snmp-utils-5.1.2-11.EL4.10
确保 check_snmp 从命令行工作,如下所示。
# /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \
-P 2c -l Temperature -w :35,:40 -c :40,:45 \
-o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0
Temperature OK - 35 38 | iso.3.6.1.4.1.3076.2.1.2.22.1.29.0=35
iso.3.6.1.4.1.3076.2.1.2.22.1.33.0=38
# /usr/local/nagios/libexec/check_snmp -H 192.168.1.7 \
-P 2c -l ActiveSessions -w :80,:40 -c :100,:50 \
-o 1.3.6.1.4.1.3076.2.1.2.17.1.7.0,1.3.6.1.4.1.3076.2.1.2.17.1.9.0
ActiveSessions CRITICAL - *110* 20 | iso.3.6.1.4.1.3076.2.1.2.17.1.7.0=110
iso.3.6.1.4.1.3076.2.1.2.17.1.9.0=20
在本例中,以下参数被传递给 check_snmp:
- -H、--hostname=ADDRESS主机名、IP 地址或 unix 套接字(必须是绝对路径)
- -P, –protocol=[1|2c|3] SNMP 协议版本
- -l, –label=STRING插件输出的前缀标签。即温度或 ActiveSessions
- -w, –warning=INTEGER_RANGE(s)不会导致警告状态的范围
- -c, –critical=INTEGER_RANGE(s)不会导致 CRITICAL 状态的范围
- -o, –oid=OID(s)您希望查询其值的对象标识符或 SNMP 变量。请务必参阅您的设备手册,以查看您的设备支持和可用的所有 oid。如果您有两个以上的 oid,请用逗号分隔。
在 ActiveSessions 示例中,两个 OID 受到监控。即一个用于 VPN LAN-2-LAN 隧道 (iso.3.6.1.4.1.3076.2.1.2.17.1.7.0) 和另一个用于 PPTP 会话 (iso.3.6.1.4.1.3076.2.1.2.17.1.9.0)。在上面的示例中,VPN LAN-2-LAN 活动会话已超过临界限制 100。
对象标识符 (OID) 根据 Internet 标准排列在具有根和分支的分层管理信息库 (MIB) 树中。
6.验证配置并重启nagios
验证 nagios 配置以确保没有警告和错误。
# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
Things look okay - No serious problems were detected during the pre-flight check
重启nagios服务器,开始监控VPN设备。
# /etc/rc.d/init.d/nagios stop
Stopping nagios: .done.
# /etc/rc.d/init.d/nagios start
Starting nagios: done.
从 Nagios Web UI (http://{nagios-server}/nagios) 验证 VPN 设备的 ActiveSession 和温度状态,如下所示。
图 – Nagios Web UI 显示 VPN 设备状态
7. 故障排除
问题: check_snmp 在 Linux 命令行中运行没有任何问题,但 Nagios Web UI 显示以下错误:
Status Information: SNMP problem - No data received from host
CMD: /usr/bin/snmpget -t 1 -r 5 -m '' -v 1 [authpriv] 192.168.1.7:161
解决方案:确保 switch.cfg 文件中 check_snmp 插件的 check_command 定义正确定义。check_snmp 命令的参数应该与 /usr/local/nagios/etc/commands.cfg 中的 check_snmp 定义匹配
check_command check_snmp!Temperature!.1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0!37,:40!:40,:45
[注: 40,:45错误,因为它向 check_snmp 命令传递了 4 个参数感叹号后的值被视为一个参数。]
check_command check_snmp!-l Temperature -o .1.3.6.1.4.1.3076.2.1.2.22.1.29.0,.1.3.6.1.4.1.3076.2.1.2.22.1.33.0 -w 37,:40 -c :40,:45
[注意:这是正确的,因为它向 check_snmp 命令传递了 1 个参数,感叹号后的值被视为一个参数。]
在如下所示的 check_snmp 命令定义中,只有一个 $ARG1$ 参数。因此,在 switch.cfg 中,在定义 check_snmp 时,您只需要传递一个参数,如上所示。
# 'check_snmp' command definition
define command{
command_name check_snmp
command_line $USER1$/check_snmp -H $HOSTADDRESS$ $ARG1$
}
- 点赞
- 收藏
- 关注作者
评论(0)