SSH Exporter

English | 中文

介绍

SSH Exporter 是一个基于 Prometheus 规范的监控工具,通过 SSH 协议远程收集目标服务器的系统性能数据,如 CPU 使用率、内存使用情况、磁盘和网络 I/O 等,并将这些数据暴露为 Prometheus 格式的 metrics,以便被 Prometheus Server 抓取和存储。

功能特性

  • 远程监控:通过 SSH 协议连接到远程服务器,无需在被监控服务器上安装额外的 agent。
  • 全面的系统监控:支持监控 CPU、内存、磁盘和网络等多个方面的性能指标。
  • 动态配置:支持从 YAML 配置文件中读取监控目标和参数,便于动态管理监控节点。
  • 异步收集:使用线程池异步收集数据,提高数据收集效率。
  • 错误处理与重试机制:对于 SSH 连接失败的情况,提供自动重试机制,确保数据收集的可靠性。
  • 多语言环境支持:在解析某些命令输出时,根据系统语言自动适配,支持中文和英文环境。

使用方法

1. 配置

首先,需要编辑 config.yml 文件,配置需要监控的节点和监控指标。例如:

nodes:
- ip: 192.168.1.101
port: 22
username: <username>
password: <password>
- ip: 192.168.1.102
port: 22
username: <username>
password: <password> metrics:
- ssh_cpu_utilization
- ssh_cpu_utilization_user
- ssh_cpu_utilization_system
- ssh_cpu_utilization_top5
- ssh_cpu_percentage_wait
- ssh_cpu_percentage_idle
- ssh_cpu_count
- ssh_memory_utilization
- ssh_memory_utilization_top5
- ssh_memory_utilization_swap
- ssh_memory_available_bytes
- ssh_memory_available_swap_bytes
- ssh_disk_utilization
- ssh_disk_used_bytes
- ssh_disk_available_bytes
- ssh_disk_read_bytes_total
- ssh_disk_write_bytes_total
- ssh_network_receive_bytes_total
- ssh_network_transmit_bytes_total

2. 运行

直接运行 ssh_exporter.py 脚本即可启动 SSH Exporter 服务。服务将监听默认的 9122 端口,等待 Prometheus Server 的抓取请求。

python3 ssh_exporter.py

支持的Python版本:python>=3.8

3. Prometheus 配置

在 Prometheus 的配置文件中添加一个新的 job,指定 SSH Exporter 的地址,以便 Prometheus 可以抓取数据。

scrape_configs:
- job_name: 'ssh-exporter'
static_configs:
- targets: ['localhost:9122']

注意事项

  • 安全性:请确保 SSH 凭证(用户名和密码)的安全,避免泄露。
  • 网络配置:确保 Prometheus Server 可以访问运行 SSH Exporter 的服务器。
  • 性能影响:频繁的 SSH 连接和数据收集可能会对远程服务器造成一定的性能影响,请根据实际需求调整数据收集频率。

开发与维护

  • 问题反馈:请在 GitHub 仓库中提交 issues。
  • 贡献代码:欢迎提交 PR,共同完善 SSH Exporter。

SSH Exporter:基于Prometheus的远程系统性能监控神器的更多相关文章

  1. 理解OpenShift(7):基于 Prometheus 的集群监控

    理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...

  2. 基于Prometheus和Grafana的监控平台 - 运维告警

    通过前面几篇文章我们搭建好了监控环境并且监控了服务器.数据库.应用,运维人员可以实时了解当前被监控对象的运行情况,但是他们不可能时时坐在电脑边上盯着DashBoard,这就需要一个告警功能,当服务器或 ...

  3. 基于Prometheus和Grafana的监控平台 - 环境搭建

    相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics. Logging - 用于记录离散的事件.例如,应用程序的调试信息或错误信息.它是我们诊断问题的依据. ...

  4. 基于邮件系统的远程实时监控系统的实现 Python版

    人生苦短,我用Python~ 界内的Python宣传标语,对Python而言,这是种标榜,实际上,Python确实是当下最好用的开发语言之一. 在相继学习了C++/C#/Java之后,接触Python ...

  5. 基于Prometheus+Grafana+AlertManager的监控系统

    一.Prometheus 1.1 简介 Prometheus是一套开源的监控&报警&时间序列数据库的组合,基于应用的metrics来进行监控的开源工具 . 1.2 下载&安装 ...

  6. 基于Android的远程视频监控系统(含源码)

    基本过程是android作为socket客户端将采集到的每一帧图像数据发送出去,PC作为服务器接收并显示每一帧图像实现远程监控.图片如下(后来PC端加了个拍照功能)... (PS.刚学android和 ...

  7. K8S Canal基于Prometheus进行实时指标监控

    文章来源于本人的印象笔记,如出现格式问题可访问该链接查看原文 部署canal的prometheus监控到k8s中 1.grafana的docker部署方式:https://grafana.com/gr ...

  8. OneAPM Cloud Test——系统性能监控神器

    2015 年 8 月,OneAPM 推出了一款系统性能监控产品--Cloud Test,产品上线以来以「两低一高」的特点迅速成为市场增长率最快的一匹黑马.「两低一高」,即低使用成本.低学习成本以及高服 ...

  9. 基于 prometheus 的微服务指标监控

    基于prometheus的微服务指标监控 服务上线后我们往往需要对服务进行监控,以便能及早发现问题并做针对性的优化,监控又可分为多种形式,比如日志监控,调用链监控,指标监控等等.而通过指标监控能清晰的 ...

  10. 基于prometheus监控k8s集群

    本文建立在你已经会安装prometheus服务的基础之上,如果你还不会安装,请参考:prometheus多维度监控容器 如果你还没有安装库k8s集群,情参考: 从零开始搭建基于calico的kuben ...

随机推荐

  1. JS中BOM事件,JS样式特效,表格对象和表单操作

    DOM事件 1.DOM中的事件可以分为两类 1.浏览器行为 如:文档加载完成,图片加载完成 2.用户行为 如:输入框输入数据,点击按钮 (2).常见的DOM事件 onload 浏览器已完成页面的加载 ...

  2. uniapp 添加操作

    1 分析: 2 需要动态的向数据库中插入数据,既然要进行添加操作,就会触发一个点击的事件,所以我们的第一步就是要先绑定事件 3 向服务器进行请求接口操作,请求的方法为 'POST' 4 最后就是在me ...

  3. Java常用的三个方法 `wait ` `notify` `notifyAll`

    常用的三个方法 wait notify notifyAll wait();方法使当前线程进入等待状态,直到另一个线程调用该对象的notify()或notifyAll()方法来唤醒它 notify(); ...

  4. webpack js兼容处理

    webpack在不需要引入任何loader可以对于js进行打包处理,但是它不会对于js兼容性进行任务的处理,而我们编写的项目是需要在不同的浏览器中运行的,此时就需要对于js的兼容性在打包过程中进行对应 ...

  5. cors解决跨域 服务器代理方式

    // cors 方法         // 后端程序员通过定义后端程序,让跨域访问,可以正常执行,可以获取响应体内容         // 前端程序员不需要做任何的调整         // 后端程序 ...

  6. [SWPUCTF 2021 新生赛]include

    打开我们可以看到让我们传入一个file,会出现一串代码,我们去分析一下: 当看到ini_set("allow_url_include","on");设置为on, ...

  7. SELinux 安全模型——MLS

    首发公号:Rand_cs SELinux 安全模型--MLS BLP 模型:于1973年被提出,是一种模拟军事安全策略的计算机访问控制模型,它是最早也是最常用的一种多级访问控制模型,主要用于保证系统信 ...

  8. Unity3D 内存管理非代码技巧

    在场景管理器新建 gameobjct 使用代码在类初始化时 NEW 普肉fai包(包)然后将相同的类NEW够挂载到 gameobjct子节点上 在操控列表中类的时候用for循环遍历操作移动还是怎么样( ...

  9. java redis api及test demo

    1.CacheService.java package com.redis.demo; import com.alibaba.fastjson.JSON; import com.alibaba.fas ...

  10. 工具类——EventManager

    EventManager using UnityEngine; using System.Collections; using System.Collections.Generic; using Un ...