当前位置: 首页 > news >正文

SSH Exporter:基于Prometheus的远程系统性能监控神器

SSH Exporter

English | 中文

介绍

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

功能特性

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

使用方法

1.拉取代码

从 GitHub 上拉取代码

git clone https://github.com/2018-11-27/ssh-exporter.git

2. 配置

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

nodes:- ip: 192.168.1.101port: 22username: <username>password: <password>- ip: 192.168.1.102port: 22username: <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

3. 运行

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

# 安装依赖:
pip3 install -r requirements.txt# 启动 SSH Exporter 服务:
python3 ssh_exporter.py

支持的Python版本:python>=3.8

4. 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。
http://www.lryc.cn/news/410937.html

相关文章:

  • Docker基础概念
  • 小白进阶为大神
  • 2024最新Python和PyCharm的安装教程
  • 数据库死锁:深入解析与应对策略
  • Python入门宝藏《看漫画学Python》,495页漫画带你弄清python知识点!简单易懂 | 附PDF全彩版
  • Webshell管理工具:AntSword(中国蚁剑)
  • Java 中的File类
  • java将map转json字符串或者再将json字符串转回map,java将对象转json字符串或者互想转换,对象集合和json字符串互转
  • 数据库管理-第225期 Oracle DB 23.5新特性一览(20240730)
  • 提高生产效率:最佳7大Bug记录工具
  • DDOS攻击学习 - kali初学
  • 【C++】类和对象——流插入和流提取运算符重载
  • Vmware ubuntu20.04 虚拟文件夹
  • 人工智能学习笔记 - 初级篇Ⅱ - 图形可视化 - 第11节: 绘制带填充区域的图表
  • 使用STM32实现一个线性代数计算器
  • 我在高职教STM32——串口通信(4)
  • Redis 缓存中间件 缓存数据库
  • 51、PHP 实现简单的快速排序
  • 如何应对机器视觉软件中时间篡改与许可绕过的挑战?
  • python文件的读写
  • 2024下《网络工程师》案例简答题,刷这些就够了!
  • Astro 实现TodoList网页应用案例
  • 计算机毕业设计Hadoop+Spark旅游景点可视化 旅游景点推荐系统 景区游客满意度预测与优化 Apriori算法 景区客流量预测 旅游大数据 景点规划
  • MySQL存储
  • 手势传感器 - 从零开始认识各种传感器【第十八期】
  • 【未来餐饮】 配送设置
  • 移动式气象设备:灵活应对,精准监测的气象先锋
  • 【AI落地应用实战】DAMODEL深度学习平台部署+本地调用ChatGLM-6B解决方案
  • 英伟达开始引领下一波浪潮:物理AI
  • SQLServer设置端口