首页 > 其他分享 >机器硬件监控,最简单的方案,没有之一

机器硬件监控,最简单的方案,没有之一

时间:2023-06-14 17:11:24浏览次数:40  
标签:插件 机器 STRING catpaw MIB INSPUR 硬件 监控 OK

之前新东方的老师分享了他们通过 Telegraf、Loki、Nightingale 等工具来监控机器硬件状态的方案,具备很强的灵活性、平台性。本文会介绍一个相对轻量的方式,只需要一个二进制+一个脚本即可搞定,给各位朋友提供一种新的选择。

新东方的方案

物理机可以通过带外开启 SNMP,通过 SNMP 可以获取各个硬件模块的健康状态,Telegraf 提供了很多 input、output 插件,我们可以使用 Telegraf 的 snmp input 插件采集硬件状态信息,使用 loki output 插件写入 Loki,然后使用 Nightingale 做告警规则配置( Loki 兼容 Prometheus 的 Querying 接口),产出告警事件,之后可以发给钉钉、企微,或者发给 FlashDuty 做告警聚合降噪、排班、认领、升级等后续处理。

20230404143046

实操步骤

1. snmp 插件准备

snmp监控主要通过各种oid节点获取对应信息,分为get(单值)、walk(多值),telegraf的snmp插件默认是取单值,如果需要多值,可以找对应的table类型节点进行采集。

# 单值节点
[[inputs.snmp.field]]
name="uptime"
oid=".1.3.6.1.2.1.1.3.0"
  
# 多值节点,table类型
[[inputs.snmp.table]]
oid = ".1.3.6.1.2.1.31.1.1"
name = "interface"

2. OID节点查找

不同型号的物理机,oid节点不同,可以通过对应型号的MIB文件进行查找。除了单独查找每个硬件的状态oid外,MIB文件中一般还能找到服务器整体状态的OID节点,可以直接取这个值,以下例子为浪潮服务器:

20230404143328

正常取值为"OK"、“Normal”,有报警的话取值为"WARNING"、“CRITICAL”。

采集OID=‘INSPUR-MIB::serverSystemHealthTable’(转换数字为’.1.3.6.1.4.1.37945.2.1.2.13.1’),可以先用snmpwalk命令看下取值:

#正常节点
snmpwalk -v3  1.1.1.1 INSPUR-MIB::serverSystemHealthTable
INSPUR-MIB::serverCurPowerState."" = STRING: "Power On"
INSPUR-MIB::serverUIDState."" = STRING: "UID Off"
INSPUR-MIB::serverCPUState."" = STRING: "OK"
INSPUR-MIB::serverMemoryState."" = STRING: "OK"
INSPUR-MIB::serverHDDState."" = STRING: "OK"
INSPUR-MIB::serverFANState."" = STRING: "OK"
INSPUR-MIB::serverPSUState."" = STRING: "OK"
INSPUR-MIB::serverRAIDState."" = STRING: "OK"
INSPUR-MIB::serverTempState."" = STRING: "OK"
INSPUR-MIB::serverHealthState."" = STRING: "OK"

#异常节点
snmpwalk -v3  2.2.2.2 INSPUR-MIB::serverSystemHealthTable
INSPUR-MIB::serverCurPowerState."" = STRING: "Power On"
INSPUR-MIB::serverUIDState."" = STRING: "UID Off"
INSPUR-MIB::serverCPUState."" = STRING: "OK"
INSPUR-MIB::serverMemoryState."" = STRING: "WARNING"
INSPUR-MIB::serverHDDState."" = STRING: "OK"
INSPUR-MIB::serverFANState."" = STRING: "OK"
INSPUR-MIB::serverPSUState."" = STRING: "OK"
INSPUR-MIB::serverRAIDState."" = STRING: "OK"
INSPUR-MIB::serverTempState."" = STRING: "OK"
INSPUR-MIB::serverHealthState."" = STRING: "WARNING"
INSPUR-MIB::serverCPUStandardStatus."" = STRING: "Normal"
INSPUR-MIB::serverMemoryStandardStatus."" = STRING: "Warning"
INSPUR-MIB::serverHDDStandardStatus."" = STRING: "Normal"
INSPUR-MIB::serverFANStandardStatus."" = STRING: "Normal"
INSPUR-MIB::serverPSUStandardStatus."" = STRING: "Normal"
INSPUR-MIB::serverRAIDStandardStatus."" = STRING: "Normal"
INSPUR-MIB::serverTempStandardStatus."" = STRING: "Normal"
INSPUR-MIB::serverHealthStandardStatus."" = STRING: "Warning"

通过采集状态可以看出 2.2.2.2 这个机子memory为报警状态。具体如何配置 Telegraf,如何配置夜莺和 Loki 对接,请参看文章:新东方老师教你使用 Telegraf + Loki + Nightingale 实现硬件监控

既然 snmpwalk 可以拿到具体内容了,也知道要告警的关键字是 WARNING、CRITICAL,实际不用这么复杂也可以告警。下面我们介绍使用 catpaw 的方案。

catpaw 的方案

20230614092422

catpaw 是一个事件监控工具,提供了多种插件,从 v0.4.0 版本开始,提供了 sfilter 插件,具体逻辑是:通过执行脚本或命令获取输出(stdout),然后对输出的内容做字符串匹配,如果匹配到了,就可以产生告警事件。把告警事件推给 FlashDuty 即可。

1. 安装 catpaw

catpaw 的安装非常简单,只需要下载二进制文件即可,下载地址:https://download.flashcat.cloud/catpaw-v0.4.0-linux-amd64.tar.gz,目前提供的是 linux-amd64 的安装包,如果有其他平台的安装包的需求,可以联系我。

2. 配置 sfilter 插件

sfilter 插件的配置在 conf.d/p.sfilter/sfilter.toml,样例如下:

[[instances]]
command = "/path/to/sfilter-scripts/system-health.sh"
# # script timeout
timeout = "10s"
# check rule name
check = "Check system health state"

# support glob
filter_include = ["*WARNING*", "*CRITICAL*"]
filter_exclude = []

# # gather interval
interval = "30s"

[instances.alerting]
## Enable alerting or not
enabled = true
## Same functionality as Prometheus keyword 'for'
for_duration = 0
## Minimum interval duration between notifications
repeat_interval = "5m"
## Maximum number of notifications
repeat_number = 3
## Whether notify recovery event
recovery_notification = true
## Choice: Critical, Warning, Info
default_severity = "Warning"

3. 编写脚本

system-health.sh 脚本是需要我们准备的,比如就简单的探测一下 192.168.3.4 机器的系统健康状态(以浪潮机器举例),脚本内容如下:

#!/bin/sh
snmpwalk -v2c -c public 192.168.3.4 INSPUR-MIB::serverSystemHealthTable

4. 配置事件推送地址

catpaw 只负责产生事件,不负责事件的后续处理(告警聚合降噪、认领升级、排班、多渠道触达等),这些功能交由 FlashDuty,在 FlashDuty 的协作空间中创建一个自定义事件的集成,点击就可以看到推送地址了:

20230614090405

把截图中这个 URL 配置到 catpaw 的 config.toml 中。

5. 启动 catpaw

nohup ./catpaw --configs conf.d &> catpaw.log &

如果服务器有硬件故障,就会产生告警了,完活!enjoy…make a better world :)

标签:插件,机器,STRING,catpaw,MIB,INSPUR,硬件,监控,OK
From: https://www.cnblogs.com/ulricqin/p/17480805.html

相关文章

  • hadoop状态和任务监控
    #-*-coding:UTF-8-*-importmysql.connectorimportsysimportdatetimeimportimportlibimportrequestsimportlib.reload(sys)#修改hadoop地址参数为实际地址env_code='生产环境http://172.16.159.75:18888/'hadoop_code='生产环境hadoophttp://172.16.159.75......
  • Linux AV1硬件视频解码将支持Intel Tiger Lake
    AV1硬件解码将在最新的Intel处理器上实现,但AMD却还没有动作。文/YoonChae-kyunghttps://linuxreviews.org/Linux_AV1_Hardware_Video_Decoding_Support_Ready_For_Intel_Tiger_Lake将于2020年9月推出的英特尔TigerLake处理器将是首款具有集成显卡的英特尔处理器,该显卡支持AV1硬......
  • 机器人视觉梳理(上)
    原创|文BFT机器人01 机器人视觉的概念在智能制造过程中,通过传统的编程来执行某一特定动作的机器人(机械手、机械手臂、机械臂等,未作特殊说明时,不作严格区分,统一称为机器人),将难以满足制造业向前发展的需求。很多应用场合下,需要为工业机器人安装一双眼睛,即机器视觉成像感知系统,使......
  • 使用人类棋手棋盘数据训练围棋机器人,实现数据预处理
    知己知彼,百战不殆。我们要打造一个能胜过人类的机器人,就必须要让机器人掌握人类的围棋思维模式,因此我们就需要使用人类棋手留下的棋盘数据训练机器人,让它从数据中掌握人类围棋思维存在的模式和套路。幸运的是,我们能够通过围棋服务器拿到很多由人落子后产生的棋盘数据。很多围棋服务......
  • 搭建promtetheus+grafana性能监控环境
    环境准备CentOSLinuxrelease7.7.1908(Core)prometheus-2.36.2grafana-enterprise-9.0.2-1node_exporter-1.3.1mysqld_exporter-0.14.0备注:软件可以去清华镜像站下载:https://mirrors.tuna.tsinghua.edu.cn/github-release/prometheus/prometheus/或者:https://download......
  • 苹果自研Apple M1芯片对机器学习意味着什么?
    正文字数:3049 阅读时长:4分钟苹果在iPad和iPhone系列中首次推出了基于苹果A系列处理器的苹果硅片台式机/笔记本电脑处理器。他们推出了这一新的处理器的同时,也推出了三款新的Mac,包括新的M1MacBookAir、M1MacBookPro和M1Macmini。作者/ TommyShrovehttps://netflixtechbl......
  • 机器视觉编码技术与标准进展
    正文字数:8411 阅读时长:15分钟整理自中国电信研究院新技术所机器视觉标准与应用研究部主任张园在LiveVideoStack做的线上分享。她详细介绍了VCM、DCM等标准组织机器视觉编码标准化工作最新进展、技术创新思路。文/ 张园整理/LiveVideoStack 各位LVS的小伙伴大家好,非常感谢大......
  • Prometheus 监控
    Prometheus最开始设计是一个面向云原生应用程序的开源的监控&报警工具,在对 Kubernetes服务发现协议分析之前,我们先来梳理下 Prometheus 如何接入云原生,实现对 Kubernetes 集群进行监控。Kubernetes 云原生集群监控主要涉及到如下三类指标:node 物理节点指标、pod&contain......
  • 记ESXi硬件要求
    原文链接:https://docs.vmware.com/cn/VMware-vSphere/6.7/com.vmware.esxi.install.doc/GUID-DEB8086A-306B-4239-BF76-E354679202FC.html 选择的产品版本:VMwarevSphere6.7 确保主机符合 ESXi6.7支持的最低硬件配置。硬件和系统资源要安装或升级 ESXi,您的......
  • 如何使用机器学习提高推荐系统的准确性
    推荐系统是在互联网时代中非常重要的一项技术,它能够通过收集用户的行为数据和偏好,为用户提供个性化的推荐服务。而机器学习则是推荐系统中最为核心的部分,通过机器学习算法可以对大量的用户数据进行挖掘和分析,从而提高推荐系统的准确性和效率。下面,我将介绍一些如何使用机器学习提高......