zoukankan      html  css  js  c++  java
  • Golang 基于Prometheus Node_Exporter 开发自定义脚本监控

    Golang 基于Prometheus Node_Exporter 开发自定义脚本监控

    img

    公司是今年决定将一些传统应用从虚拟机上迁移到Kubernetes上的,项目多而乱,所以迁移工作进展缓慢,为了建立统一的监控平台,我们使用的是在Kubernetes集群内部署Prometheus-operator,不得不说Prometheus-operator对k8s的监控支持的非常好,helm安装后会把Prometheus、Alertmanger、Grafana、以及NodeExporter都给安装完成,打开Grafana k8s中所有监控指标和图标都已经创建好,大大降低监控部署的复杂性。但是对于我们项目迁移较慢的环境,Promethues只监控k8s集群当然是不行的,所以我们选择使用在虚拟机上部署Node_Exporter来监控虚拟机的各项指标,但是Node_Exporter只能监控系统指标,我们可能想要业务的一些监控,比如(文件状态监控,业务日志监控...都是一些传统软件留下来的坑),这样Node_Exporter就显得力不从心了,而且每个项目监控的一些指标并不相同,所以开发统一Exporter不但耗时还会出现一些兼容性和运维复杂性的问题,所以根据原来zabbix自定义监控项的思路考虑对Node_Exporter进行二次开发,增加一个自定义脚本监控项

    Node_Exporter源码目录结构

    通过collector目录下源码文件名可以看到具体监控项通过单独的代码文件去采集

    img

    新建custom_scripts.go 开始编写自定义脚本监控项采集器

    • 定义struct

    img

    • 定义所要用到的变量

    img

    • 定义init函数去注册collector,NewCoustomScriptCollector 返回CoustomScriptCollector结构体

    img

    • 实现*Unix执行脚本函数

    img

    • 注册Collector接口Update方法

    主要逻辑:遍历目录下的脚本文件,给脚本文件增加执行权限,然后执行脚本,脚本输出格式Key=Value,取key、value生成metrics数据

    img

    在脚本目录放入测试脚本

    img

    编译运行

    img

    查看metrics数据

    img


    最后展示的话可以在grafana中添加图表,也可在alertmanger添加报警规则,具体可以参考Prometheus-Operator实战

  • 相关阅读:
    ASP.NET安全问题-- 创建安全的Web应用程序
    浅谈ASP.NET内部机制(八)
    ASP.NET 配置文件纵横谈(一)
    项目开发-让设计模式成为一种心智
    浅谈ASP.NET内部机制(七)
    ASP.NET 配置文件纵横谈(二)
    GridView的分页是否真的是鸡肋呢?
    SQL开发中容易忽视的一些小地方(四)
    SQL开发中容易忽视的一些小地方( 三)
    怎样才能充分利用SQL索引
  • 原文地址:https://www.cnblogs.com/Serverlessops/p/13802533.html
Copyright © 2011-2022 走看看