如何用 Zabbix 监控 Radius 服务?

news2024/9/24 1:27:05

在这里插入图片描述

网管小贾 / 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 相关文件(文末集中下载)

  • Linux

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

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

具体怎么实现的呢?

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

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


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

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


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

网管小贾 / sysadm.cc

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1141160.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1496. 判断路径是否相交

1496. 判断路径是否相交 java代码&#xff1a; class Solution {public boolean isPathCrossing(String path) {int x 0;int y 0;HashSet<String> hashSet new HashSet<>();hashSet.add("0-0");for (int i 0; i < path.length(); i) {switch (pa…

Vue-cli 搭建 SPA 项目,Vue 项目结构说明,开发示例,以及如何修改端口号,install 命令中的 -g,-S,-D 参数,嵌套路由,package.json 详解

目录 1. vue-cli安装 1.1 安装前提 1.2 什么是vue-cli 1.3 安装vue-cli 2. 使用vue-cli构建项目 2.1 使用脚手架创建项目骨架 2.2 到新建项目目录&#xff0c;安装需要的模块 2.3 如何修改端口号 2.4 添加element-ui模块 2.5 package.json详解 3. install命令中的-g…

FLStudio21完整版编曲软件多少钱?要不要购买

水果&#xff0c;全称Fruity Loop Studio&#xff0c;简称FL Studio。是一款全能的音乐制作软件&#xff0c;经过二十多年的演化更迭&#xff0c;其各项功能非常的先进。其开创性的Pat\song模式&#xff0c;也为初学者的学习提供了便利。那么水果音乐制作软件需要多少钱呢&…

修复VS2015没有代码提示的问题【已解决】

问题描述 在Visual Studio 中编写代码时&#xff0c;发现使用库函数的时候&#xff0c;在类对象后输入点后&#xff0c;并没有出现类对应的成员信息的提示。 解决过程 1&#xff09;方法1&#xff1a; 百度“vs 没有代码提示”&#xff0c;搜索解决方案。 方案1&#xff1…

高级路由配置

目录 路由协议认证 Ripv2的认证配置 OSPF认证 BGP认证 OSPF特殊区域 BGP的选路规则 路由策略&#xff08;route-policy和filter-policy&#xff09; IP-Prefix List:前缀列表 Filter-Policy 路由引入&#xff08;import-route&#xff09; Filter-policy和route-pol…

『 基础算法题解 』之双指针(下)

文章目录 和为S的两个数题目解析算法原理代码 三数之和题目解析算法原理代码 四数之和题目解析算法原理代码 和为S的两个数 题目解析 【题目链接】 该题目的原题为和为s的两个数: 即给定一组升序数据(数组price),并给出一个变量target,要求找出和为target的两个数; 算法原理…

第4关:书籍排序

题目&#xff1a; C&C结构体 (educoder.net) 思路&#xff1a; 1.字符串字典序排序---> 利用string.h里面的strcmp&#xff0c;由其返回值确定两字符串大小。&#xff08;pstrcmp(a,b)&#xff0c;若p>1&#xff0c;则a字典序大于b。&#xff09; 2.当不能定义字…

Java练习题2021-1

"从大于等于N的正整数里找到一个最小的数M&#xff0c;使之满足&#xff1a; M和M的逆序数&#xff08;如1230的逆序数为321&#xff09;的差的绝对值为一个[100000,200000]区间内的值。 输入说明&#xff1a;起始数字N&#xff1b; 输出说明&#xff1a;找到的第一个符合…

Java实现Excel导入和导出,看这一篇就够了(珍藏版2.0)

1. 前言 两年前&#xff0c;我发表了一篇自己基于POI实现的工具类 Java实现Excel导入和导出&#xff0c;看这一篇就够了(珍藏版)&#xff0c;也就是1.0版本&#xff0c;受到了不少粉丝和朋友喜欢&#xff0c;谢谢大家认可。在这两年多的时间里&#xff0c;经过粉丝们的建议&am…

0基础学习PyFlink——用户自定义函数之UDTAF

大纲 UDTAFTableAggregateFunction的实现累加器定义创建累加 返回类型计算 完整代码 在前面几篇文章中&#xff0c;我们分别介绍了UDF、UDTF和UDAF这三种用户自定义函数。本节我们将介绍最后一种函数&#xff1a;UDTAF——用户自定义表值聚合函数。 UDTAF UDTAF函数即具备了…

归一化一维时序信号,针对上下幅值波动不均问题

目的&#xff1a;如下图&#xff0c;信号上包络和下包络都有无规律的起伏&#xff0c;如何进行有效归一化&#xff0c;步骤如下&#xff1a; 步骤1. 信号初步归一化 data mapminmax(data,-1,1); 步骤2. 希尔伯特变换获得该时序信号的包络 z hilbert(data);figure;plot(data…

【VUE】ArcoDesign之自定义主题样式和命名空间

前言 Arco Design是什么&#xff1f; Arco Design 是由字节跳动推出的企业级产品的完整设计和开发解决方案前端组件库 官网地址&#xff1a;https://arco.design/同时也提供了一套开箱即用的中后台前端解决方案&#xff1a;Arco Design Pro(https://pro.arco.design/) Arco De…

基于SSM的高校勤工助学系统

基于SSM的高校勤工助学系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 管理员界面 摘要 基于SSM&#xff08;Spring、SpringMVC、MyBatis&#xff…

560. 和为 K 的子数组(前缀和 + 哈希表)

这道题的思路就是&#xff1a; 前缀和的差值可以表示一个区间内的元素的总和。 所以index1处的前缀和如果为sum&#xff0c;那么前面只要出现过 k - sum 的前缀和就表示&#xff0c;有和为k的子数组存在。 因为&#xff0c;sum - &#xff08;sum - k&#xff09; k class Sol…

ATFX汇市:美国9月PCE数据来袭,高通胀问题或已不构成威胁

ATFX汇市&#xff1a;今日20:30&#xff0c;美国商务部将公布9月核心PCE物价指数年率&#xff0c;前值为3.9%&#xff0c;金融机构预期为3.7%&#xff0c;预期将出现小幅下降。核心PCE数据与核心CPI数据的走势共振性较强&#xff0c;9月份核心CPI数据显示&#xff0c;最新值4.1…

【机器学习可解释性】3.部分依赖图

机器学习可解释性 1.模型洞察的价值2.特征重要性排列3.部分依赖图4.SHAP Value5.SHAP Value 高级使用 正文 每个特征怎么样影响预测结果&#xff1f; 部分依赖图 Partial Dependence Plots 虽然特征重要性显示了哪些变量对预测影响最大&#xff0c;但部分依赖图显示了特征如…

CorelDRAW和AI哪个更好用?

设计软件市场中&#xff0c;CorelDRAW和Adobe Illustrator&#xff08;简称AI&#xff09;无疑是两大重量级选手。它们各自拥有庞大的用户群和丰富的功能&#xff0c;但究竟哪一个更好用&#xff1f;本文将从多个角度出发&#xff0c;对这两款软件进行全面而深入的比较&#xf…

mysql基本操作命令

1、数据库的分类 mysql&#xff1a;关系型数据库 redis&#xff1a;非关系型数据库 关系型数据库&#xff1a;存储数据的结构是一个二维表格 表&#xff1a;行 列 行&#xff1a;记录&#xff0c;用来描述一个对象的信息 列&#xff1a;字段&#xff0c;用来描述对象的一个…

基于SSM的二手车交易系统

基于SSM的二手车交易系统的设计与实现~ 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringSpringMVCMyBatis工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 主页 登录界面 管理员界面 摘要 基于SSM&#xff08;Spring、SpringMVC、MyBatis&a…

高效管理文件夹名称:如何批量修改指定多样化的文件夹名称

在文件管理工作中&#xff0c;文件夹名称的管理对于整体的文件管理体系有着至关重要的作用。然而&#xff0c;往往我们会在文件夹名称的管理上遇到一些难题&#xff0c;如&#xff1a;需要修改的文件夹名称多样化&#xff0c;无法一次性满足所有需求。为了解决这个问题&#xf…