如何用 Zabbix 监控 Radius 服务?

网管小贾
• 阅读 289

如何用 Zabbix 监控 Radius 服务?

网管小贾 / sysadm.cc

Radius 对于搞系统的小伙伴们来说应该并不陌生,它是提供身份认证的服务程序。

Radius 应用广泛,最简单的场景之一就是无线连接,使用用户名密码或者证书等方式通过它的验证后无线网络连接就可以建立起来。

如此重要的一项基础应用服务,我们当然要重视起来,自然也就少不了经常要了解它的运行状况。

那么我们能想到的最简单经济的办法,就是用 zabbix 或是其他的监控软件来监控管理 Radius


不过翻遍了整个互联网,我似乎还没有找到比较完整可行的方案。

想要用 ZabbixRadius 服务给监控起来,粗想想可能感觉简单。

Ping 呗,只要不通就可以判断服务器故障中断了。

可是有时候服务器是 Ping 得通的,网络是好的,但是服务也可能停了。

这种情况下怎么办呢?

要不直接监控 Radius 的后台服务?

只要服务是运行中,就算它是正常工作的。

有道理,不过这样看似解决了问题,实际上仔细再想想,要是服务是运行的,可它无法提供正常的认证验证服务,那也是有可能的,当然也是故障状态啊!

看来问题没有那么简单!


说了这么多,到底怎么做才算合理呢?

我们如果从 Radius 提供服务这个角度来看问题的话,那么自然很容易得出一个结论,那就是只要它能够正常返回认证响应就算它的状态正常,否则就算它处于故障状态。

再说得直白点,你给它发个验证请求 Access-Request ,它如果能正确返回响应信息( SUCCESS 或者 FAILURE ),不管验证是成功还是失败,我们就可以认为它的状态就是OK的,反之则NG。

好,道理讲明白了,具体如何做呢?


首先,我们要让 ZabbixRadius 发出一个请求信号。

怎么整,你说发就能发呀?

是啊,这可不简单,我查遍了互联网,偶然发现有一篇老外的文章,多少对我有点启发。

大概的做法是,通过调用 Shell 脚本来实现,这在 Zabbix 中叫作外部检查。

不过他用的是 Ncat 这类的网络工具程序,发送 UDP 包到 Radius 服务器的 1812 端口。

理论是可行的,我也做了很多尝试,但是操作非常复杂,不太容易实现。


原因有二,一是 Ncat 只是个网络工具,它并不了解如何构造 Access-Request 请求包。

然而按照老外作者的意思,直接使用抓包后的数据包来模拟发送,这完全是行不通的。

因为现在一般的身份验证方法不会使用较低安全级别的验证方法,所以用这种简陋方法发送请求无法处理多次返回的响应信息。


另一个原因是,即使你能成功发送合法的请求包,但是 Radius 返回的响应包要你自己去抓取,它并没有获取返回信息的功能,这个要想通过简单的操作来实现几乎不太可能。

基于以上原因,以及根据我实际操作实验结果,最终放弃了此类方案。


虽然失败了,但是老外文章的想法却开启了我新的思路。

一是,可以利用 zabbix 的外部检查脚本。

二是,既然 Ncat 不行,那么我换一个可以正常请求的 Radius 客户端程序不就行了嘛!

事实证明,我的新思路完全行的通!


最终效果图展示, ZabbixNPSFreeRadius ,使用 MSCHAPv2 验证环境下测试通过。

如何用 Zabbix 监控 Radius 服务?


同时当服务器故障时,触发器也能正常触发问题报警。

如何用 Zabbix 监控 Radius 服务?


本文相关脚本及程序文末下载。

zabbix 监控 Radius 相关文件(文末集中下载)

  • Linux

    • 外部检查脚本( 1K
    • Radius 客户端 MSCHAPV2 验证配置文件( 1K
    • 验证 MSCHAPV2 客户端命令编译源代码( 16K
    • 超时程序编译源代码( 15K
  • Windows

    • 验证 MSCHAPV2 客户端 exe 可执行文件( 6.4M ,可在 Windows 下使用)

具体怎么实现的呢?

在实现的期间又会遇到哪些坑呢?

下面我们就来详细说道说道……


扫码关注网管小贾公众号,发送001053,解锁教程完整内容。

(含20多幅实例插图,5千多字详实讲解,以及脚本程序打包下载)


将技术融入生活,打造有趣之故事

网管小贾 / sysadm.cc

点赞
收藏
评论区
推荐文章
Johnny21 Johnny21
3年前
运维监控系统——Zabbix简介
前言对于运维人员来说,监控是非常重要的,因为如果想要保证线上业务整体能够稳定运行,那么我们则需要实时关注与其相关的各项指标是否正常,而一个业务系统的背后,往往存在着很多的服务器、网络设备等硬件资源,如果我们想要能够更加方便的、集中的监
Stella981 Stella981
3年前
64.监控平台介绍 安装zabbix 忘记admin密码
19.1Linux监控平台介绍19.2zabbix监控介绍19.3/19.4/19.6安装zabbix19.5忘记Admin密码如何做19.1Linux监控平台介绍:常见开源监控软件~1.cacti、nagios、zabbix、smokeping、openfalcon等等~2.cacti、smokeping偏向于基础监
Stella981 Stella981
3年前
MONGO DB too many mongodb page_faults 报错排查step by step
!(https://oscimg.oschina.net/oscnet/23c4624a6bcc4293b67541f639362dc9.png)早上运维的同学,morningcall,说zabbix的MONGO监控报警,图片传给我,报的错误是 toomanymongodbpage\_faults.本来page\_
Stella981 Stella981
3年前
CentoS 7 LNMP 环境部署zabbix监控
本次实验,我们主要在centos7系统上部署zabbix监控,并实现监控交换机,监控Apache服务器,实现邮箱报警等操作LNMP环境构建软件包下载地址nginx1.8.0.tar.gzhttp://nginx.org/download/(https://www.oschina.net/action/GoToL
Wesley13 Wesley13
3年前
5.10 监控介绍 5.11
5.10监控介绍 为什么要做监控?可以提前发现潜在故障隐患,第一时间解决掉。把影响降低。常见的监控软件:cactinagioszaabixopenfalconprometheusgrafana5.115.12 安装zabbix4.0zabbix官网 https://www.zabbi
Stella981 Stella981
3年前
OneAPM 云监控部署与试用体验
作为Zabbix骨灰级粉丝,一直以来对第三方监控(APM)都是拒绝的。一来觉得收费,二来担心数据被人所知,三来觉得Zabbix牛逼到无可取代。但是,随着APM市场的火爆,我决定「放下身段」试用一次,并且会总结出它与开源监控之间差别在哪里。运维经历的磨难虽然都在不同的公司,做着不同的业务,但是大多运维总会经历相同的故事,以及
Stella981 Stella981
3年前
Eg挨蒙—Zabbix监控进程占cpu和内存大小及批量监控端口
监控简介:通过shell脚本的方式,实现对进程占cpu百分比和内存大小的监控,通过python脚本方式,实现批量监控服务器端口。一、监控进程占cpu的百分比和内存的大小1、在agent端编写脚本\root@monitorsbin\$cat/usr/local/zabbix/scripts/processtatus.sh!/
Easter79 Easter79
3年前
StatsD!次世代系统监控的核心
在互联网业务蒸蒸日上的今时今日,系统架构日渐复杂,随着软件产品和工程团队的变革,许多开源的监控工具应运而生,其中有一些相当出名,比如Zabbix、Nagios还有StatsD。也有一些问题被大家不断讨论,例如,监控领域的开源工具Zabbix和Nagios哪个更好?StatsD是否有可能取代Zabbix或Nagios(https://
Wesley13 Wesley13
3年前
OSSIM架构与组成综述
OSSIM架构与组成综述OSSIM布道师李晨光一、背景如果运维工程师手里没有高效的管理工具支持,就很难快速处理故障。市面上有很多运维监控工具,例如商业版的Solarwinds、ManageEngine以及WhatsUp等,开源的MRTG、Nagios、Cacti、Zabbix、OpenNMS、Ganglia等。!wKi
Wesley13 Wesley13
3年前
UAVStack的慢SQL数据库监控功能及其实现
!(https://oscimg.oschina.net/oscnet/4d6e0c184a1cee4f0acc5a7e689fc556ec7.png)UAVStack是一个全维监控与应用运维平台。UAV.Monitor具备监控功能,包含基础监控、应用/服务性能监控、日志监控、业务监控等。在应用监控中,UAV可以根据应用实例画像;其中应用实例