zabbix6.4配置监控k8s 1.28集群

1. 说明

1.1 为什么要使用zabbix6.x监控k8s

在选择Zabbix作为Kubernetes监控工具之前,我们问自己:“为什么我们选择使用Zabbix而不是Prometheus、Grafana和alertmanager呢?”

毕竟,它们已经成为云生态系统中的标准监控工具。我们决定对Zabbix的最低要求是,它在监控Kubernetes和云原生应用程序方面至少与Prometheus一样有效。

通过探索,我们得出结论, Zabbix满足(甚至超过)了这一最低要求。 Zabbix提供与Prometheus、alert manager和Grafana相似的指标和触发器,因为它们都使用相同的后端工具来实现这一点。

但是,Zabbix可以在一个产品中完成这一切,同时保持灵活性,并允许您监控几乎任何可以编写代码采集的内容。在应用程序监控方面,Zabbix可以将由Prometheus exporter和端点提供的Prometheus指标转换。

此外,由于Zabbix可以调用任何HTTP端点,因此它可以监控没有专用Prometheus端点的应用程序,而Prometheus不能做到这一点。

上面的内容来自:https://www.163.com/dy/article/J27DVM730538I0ZK.html

对我来说,因为自建的RKE2集群,在上面配置的是有prometheus+grafana+alertmanager监控告警体系的,但是官方开源的版本,在UI界面上没有可以配置钉钉、企业微信、飞书等告警手段的地方,要借助第三方Prometheus Alert组件,又感觉太过麻烦。

当然,也是自己有点菜。。。

在这里吐槽一下,rancher 2.4 2.5的开源版本,还支持直接配置钉钉、微信告警,到了2.6、2.7、2.8,就只有商业版支持了。开源版支持的告警类型,在国内,基本上用不上。

又尝试了夜莺系统,这个告警系统可以对接Pormetheus系统,可以只当做告警系统来用。

夜莺监控是一款开源云原生观测分析工具,采用 All-in-One 的设计理念,集数据采集、可视化、监控告警、数据分析于一体,与云原生生态紧密集成,提供开箱即用的企业级监控分析和告警能力。夜莺于 2020 年 3 月 20 日,在 github 上发布 v1 版本,已累计迭代 100 多个版本。
参考:https://flashcat.cloud/docs/content/flashcat-monitor/nightingale-v7/introduction/
尝试了之后,感觉夜莺监控k8s的文档还是不够完善,还是用zabbix可能更熟悉一些。

1.2 部署环境

首先要配置k8s集群和helm3,我使用的是RKE2部署的三节点集群,然后又配置的rancher。

k8s版本:v1.28.12+rke2r1
Rancher版本:v2.8.4
操作系统:Anolis OS 8.9
内核版本:4.19.91-26.an8.x86_64
zabbix helm版本:6.4(注意跟server版本最好要一致,或者至少大版本一致)
Helm版本:v3.15.3
zabbix server / web:6.x (注意:这个是配置在k8s集群之外的,是单独的主机)

docker镜像拉取的问题:

现阶段,由于docker官方镜像站在国内无法访问,所以需要先把需要的镜像先下载打包,然后进行导入,或者自己搭建镜像站。具体操作根据自己的情况来吧。
可以参考:https://blog.youkuaiyun.com/weixin_43092290/article/details/131004307

1.3 部署前的一些问题

在部署之前,我也搜了一些其他博客,发现写的有些是语焉不详,参考来做,并不能很顺利就成了。
比如,zabbix proxy使用主动模式还是被动模式,数据上报的流程,zabbix web页面怎么配置,自动发现怎么实现的等等,很多问题说的都不详细。
因为之前没有使用过zabbix proxy的配置方式,我还以为这种配置方式比较特殊,又用docker镜像重新搞了一遍,发现并没有那么复杂。
按照别人的博客来,一直卡住,折腾了好几天,反复对比,反复试,才把整个流程跑通。我有时候怀疑,一些博主成功之后,估计自己也没搞清楚为啥就成功了。。。
好了,不说那么多了,下面开始部署,我尽量写的详细一些,里面可能遇到的问题,为什么这样配置,也写一写。

2. 使用helm3部署zabbix proxy和zabbix agent

直接按照官方文档来就行

https://git.zabbix.com/projects/ZT/repos/kubernetes-helm/browse?at=refs%2Fheads%2Frelease%2F6.0

注意,这里面选择的版本,最好是跟zabbix server版本一致,至少大版本一致

2.1 添加仓库

添加helm仓库

helm repo add zabbix-chart-6.0  https://cdn.zabbix.com/zabbix/integrations/kubernetes-helm/6.0

2.2 修改配置

输出默认配置文件

helm show values zabbix-chart-6.0/zabbix-helm-chrt > $HOME/zabbix_values.yaml

修改配置文件

# vim $HOME/zabbix_values.yaml

# zabbix proxy配置段
zabbixProxy:
  image:
    ## Tag of Docker image of Zabbix proxy
    tag: ubuntu-6.4-latest   #  镜像标签改了
  env:
   
<think>我们正在配置Zabbix6.4监控锐捷AP设备。锐捷设备通常支持SNMP协议,因此我们可以通过SNMP来监控。以下是配置步骤:1.**确保锐捷AP已开启SNMP服务**:-登录锐捷AP的管理界面,启用SNMP(通常使用SNMPv2c或v3版本)。-设置SNMPcommunity(对于v2c)或用户认证(对于v3)。例如,设置community为`public`(请根据实际情况设置,生产环境建议使用复杂字符串)。2.**在ZabbixServer上安装SNMP工具**(如果尚未安装):-在ZabbixServer所在的服务器上安装`snmp`和`snmp-mibs-downloader`(对于Ubuntu/Debian)或`net-snmp`和`net-snmp-utils`(对于CentOS/RHEL)。-安装后,可以测试一下:`snmpwalk-v2c-cpublic<AP_IP地址>`3.**在Zabbix前端配置SNMP监控**:-创建主机:在ZabbixWeb界面中,进入“配置”->“主机”,点击“创建主机”。-主机名称:填写锐捷AP的主机名。-可见名称:可填写相同的名称。-群组:选择一个群组,例如“NetworkDevices”。-接口:添加一个SNMP接口,填写AP的IP地址,端口161,选择SNMP版本(如SNMPv2c)。-在主机配置中,进入“宏”选项卡,添加宏(如果使用communitystring):-宏名称:`{$SNMP_COMMUNITY}`-值:填写你设置的community字符串(例如`public`)。-为主机添加模板:-点击“模板”选项卡,在“链接新模板”中搜索并添加模板。锐捷设备通常可以使用通用的SNMP模板,如`TemplateModuleGenericSNMPv2`。如果没有专用模板,可能需要自定义模板。4.**自定义监控项(如果需要监控特定指标)**:-锐捷AP的特定OID需要查阅锐捷的MIB文档。例如,监控在线用户数、AP状态等。-在主机上创建监控项:-键值:`snmp.get[<OID>]`-SNMPOID:填写从MIB文档中查到的OID。-其他配置:根据需要设置更新间隔、历史存储周期等。5.**自动发现(如果需要发现AP下的客户端等)**:-如果锐捷AP支持通过SNMP返回多个实体(如多个射频接口、多个客户端),可以使用Zabbix的SNMP自动发现功能。-创建自动发现规则:在主机配置中,进入“自动发现规则”,创建规则,填写发现OID和键值。-使用预处理:如果返回的值是十六进制字符串(如示例引用中提到的Hex-string),可以使用JavaScript预处理将其转换为可读字符串(如示例引用中的方法)。6.**示例:转换Hex-string的预处理**:如引用[^1]中所示,我们可以使用JavaScript预处理将十六进制字符串转换为ASCII字符串。例如,在监控项预处理中添加:-步骤1:选择“JavaScript”预处理。-参数:编写转换函数,例如:```javascriptvarhex=value.match(/[0-9A-Fa-f]{2}/g);returnhex?hex.map(function(h){returnString.fromCharCode(parseInt(h,16));}).join(''):'';```7.**配置触发器**:-根据监控项的值创建触发器,例如当AP状态为down时触发告警。8.**配置图形和聚合图形**:-将监控项添加到图形中,以便在监控面板中查看趋势。**注意事项**:-确保ZabbixServer可以访问锐捷AP的SNMP端口(UDP161)。-如果使用SNMPv3,需要在主机接口中配置安全参数(认证协议、加密协议、用户名、密码等)。由于锐捷设备的MIB可能不同于其他厂商,建议从锐捷官网下载对应的MIB文件,并使用工具(如`snmpwalk`或`snmpget`)测试获取所需的OID。§§相关问题§§1.如何获取锐捷AP的MIB文件?2.Zabbix中如何配置SNMPv3监控?3.如何编写Zabbix的自动发现规则?4.如何使用JavaScript预处理转换SNMP返回的十六进制字符串?</think>### 配置 Zabbix 6.4 监控锐捷 AP 设备 锐捷 AP 设备通常通过 SNMP 协议进行监控,以下是详细配置步骤: #### 1. **锐捷 AP 基础配置** - **启用 SNMP 服务**: ```bash # 登录锐捷 AP CLI(示例命令) enable configure terminal snmp-server enable # 启用SNMP snmp-server community public ro # 设置只读Community snmp-server host <Zabbix_Server_IP> traps # 配置告警接收地址 ``` - **确认 OID 支持**:锐捷设备常用 OID(需参考官方 MIB 文档): - 系统信息:`1.3.6.1.2.1.1.1.0` (sysDescr) - AP 在线状态:`1.3.6.1.4.1.4881.1.1.10.2.35.1.1.0`(示例 OID) #### 2. **Zabbix 服务器配置** - **安装 SNMP 工具包**: ```bash # Ubuntu/Debian sudo apt install snmp snmp-mibs-downloader # CentOS/RHEL sudo yum install net-snmp net-snmp-utils ``` - **测试 SNMP 连通性**: ```bash snmpwalk -v2c -c public <AP_IP> 1.3.6.1.2.1.1.1.0 ``` #### 3. **Zabbix Web 控制台配置** - **创建主机**: - *配置 → 主机 → 创建主机* - **主机名称**:`Ruijie_AP` - **SNMP 接口**:AP 的 IP 地址,端口 `161` - **宏**:添加 `{$SNMP_COMMUNITY}` = `public` - **链接模板**: - 使用通用模板:`Template SNMP Device` - 或锐捷专用模板(需手动导入 MIB) #### 4. **监控配置示例** - **AP 在线状态监控项**: ```yaml 名称:AP Status 类型:SNMP agent SNMP OID:1.3.6.1.4.1.4881.1.1.10.2.35.1.1.0 数据类型:整型 预处理:自定义脚本(如需要 HEX 解码) ``` - **流量监控项**: ```yaml 名称:AP Traffic SNMP OID:1.3.6.1.2.1.31.1.1.1.6.<INTERFACE_INDEX>(ifHCInOctets) 数据单位:bps ``` #### 5. **十六进制数据处理(如需要)** 若 SNMP 返回 HEX 数据(如引用[^1]),使用 **JavaScript 预处理**: ```javascript var hexArray = value.match(/\w\w/g); // 分割十六进制 return hexArray.map(h => String.fromCharCode(parseInt(h,16))).join(''); ``` #### 6. **验证与调试** - 在 **监控 → 最新数据** 中查看 AP 数据 - 使用 `snmpwalk` 命令行验证 OID 返回值 - 检查 Zabbix 服务器日志:`tail -f /var/log/zabbix/zabbix_server.log` > **注意**:锐捷设备 OID 需参考官方 MIB 文档,不同型号 OID 可能不同[^1]。 --- ###
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值