如何使用 Nagios 监控 VPN 活动会话和温度

举报
Tiamo_T 发表于 2021/11/24 22:20:37 2021/11/24
【摘要】 之前我们讨论了如何使用Nagios来监控Linux和Windows服务器。在本文中,让我们回顾如何使用 Nagios 监控 VPN 设备的活动会话和温度。您可以使用 nagios check_snmp 插件来监控有关硬件的几乎所有内容。

之前我们讨论了如何使用Nagios来监控LinuxWindows服务器。在本文中,让我们回顾如何使用 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 和温度状态,如下所示。

带有 Cisco VPN 设备的 Nagios Web UI
图 – 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$
}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。