[转帖]ssh_exporter
https://github.com/treydock/ssh_exporter
SSH exporter
The SSH exporter attempts to make an SSH connection to a remote system and optionally run a command and test output.
This exporter is intended to query multiple SSH servers from an external host.
The /ssh metrics endpoint exposes SSH metrics and requires the target parameter. The module parameter can also be used to select which configuration module to use, the default module is default.
The /metrics endpoint exposes Go and process metrics for this exporter.
Configuration
The configuration defines modules that are used to configure the SSH client for a given target.
Example:
modules:
default:
user: prometheus
private_key: /home/prometheus/.ssh/id_rsa
command: uptime
command_expect: "load average"
timeout: 5
password:
user: prometheus
password: secret
certificate:
user: prometheus
private_key: /home/prometheus/.ssh/id_ed25519
certificate: /home/prometheus/.ssh/id_ed25519-cert.pub
verify:
user: prometheus
private_key: /home/prometheus/.ssh/id_rsa
known_hosts: /etc/ssh/ssh_known_hosts
host_key_algorithms:
- ssh-rsa
command: uptime
command_expect: "load average"
timeout: 5
capture:
user: prometheus
private_key: /home/prometheus/.ssh/id_rsa
command: /some/command/with/output
output_metric: true
output_truncate: 50
Example with curl would query host1 with the password module and host2 with the default module.
curl "http://localhost:9312/ssh?target=host1.example.com:22&module=password"
curl http://localhost:9312/ssh?target=host2.example.com:22
Configuration options for each module:
user- The username for the SSH connectionpassword- The password for the SSH connection, required ifprivate_keyis not specifiedprivate_key- The SSH private key for the SSH connection, required ifpasswordis not specifiedcertificate- The SSH certificate for the private key for the SSH connectionknown_hosts- Optional SSH known hosts file to use to verify hostshost_key_algorithms- Optional list of SSH host key algorithms to use- See constants beginning with
KeyAlgo*in crypto/ssh
- See constants beginning with
timeout- Optional timeout of the SSH connection, session and optional command.- The default comes from the
--collector.ssh.default-timeoutflag.
- The default comes from the
command- Optional command to run.command_expect- Optional regular expression of output to expect from the command.output_metric- Iftruethe exporter will expose thecommandoutput viassh_output{output="<output here>"}metric.output_truncate- Sets the max length for a string inssh_outputmetric'soutputlabel. Set to-1to disable truncating.
Docker
Example of running the Docker container
docker run -d -p 9312:9312 -v "ssh_exporter.yaml:/ssh_exporter.yaml:ro" treydock/ssh_exporter
Example of running the Docker container and making SSH private key available. This requires setting private_key value to /.ssh/id_rsa.
docker run -d -p 9312:9312 \
-v "ssh_exporter.yaml:/ssh_exporter.yaml:ro" \
-v "/home/prometheus/.ssh/id_rsa:/.ssh/id_rsa:ro" \
treydock/ssh_exporter
Install
Download the latest release
Add the user that will run ssh_exporter
groupadd -r ssh_exporter
useradd -r -d /var/lib/ssh_exporter -s /sbin/nologin -M -g ssh_exporter -M ssh_exporter
Install compiled binaries after extracting tar.gz from release page.
cp /tmp/ssh_exporter /usr/local/bin/ssh_exporter
Add the necessary config, see configuration section
Add systemd unit file and start service. Modify the ExecStart with desired flags.
cp systemd/ssh_exporter.service /etc/systemd/system/ssh_exporter.service
systemctl daemon-reload
systemctl start ssh_exporter
Build from source
To produce the ssh_exporter binary:
make build
Or
go get github.com/treydock/ssh_exporter
Prometheus configs
The following example assumes this exporter is running on the Prometheus server and communicating to the remote SSH hosts.
- job_name: ssh
metrics_path: /ssh
static_configs:
- targets:
- host1.example.com:22
- host2.example.com:22
labels:
module: default
- targets:
- host3.example.com:22
- host4.example.com:22
labels:
module: verify
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: 127.0.0.1:9312
- source_labels: [module]
target_label: __param_module
metric_relabel_configs:
- regex: "^(module)$"
action: labeldrop
- job_name: ssh-metrics
metrics_path: /metrics
static_configs:
- targets:
- localhost:9312
[转帖]ssh_exporter的更多相关文章
- nginx负载均衡基于ip_hash的session粘帖
nginx负载均衡基于ip_hash的session粘帖 nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除 ...
- [转帖]网络协议封封封之Panabit配置文档
原帖地址:http://myhat.blog.51cto.com/391263/322378
- [转帖]零投入用panabit享受万元流控设备——搭建篇
原帖地址:http://net.it168.com/a2009/0505/274/000000274918.shtml 你想合理高效的管理内网流量吗?你想针对各个非法网络应用与服务进行合理限制吗?你是 ...
- 3d数学总结帖
3d数学总结帖,以下是对3d学习过程中数学知识的简单总结 角度值和弧度制的互转 Deg2Rad 角度A1转弧度A2 => A2=A1*PI/180 Rad2Deg 弧度A2转换角度A1 => ...
- [转帖]The Lambda Calculus for Absolute Dummies (like myself)
Monday, May 7, 2012 The Lambda Calculus for Absolute Dummies (like myself) If there is one highly ...
- [转帖]FPGA开发工具汇总
原帖:http://blog.chinaaet.com/yocan/p/5100017074 ----------------------------------------------------- ...
- [Android分享] 【转帖】Android ListView的A-Z字母排序和过滤搜索功能
感谢eoe社区的分享 最近看关于Android实现ListView的功能问题,一直都是小伙伴们关心探讨的Android开发问题之一,今天看到有关ListView实现A-Z字母排序和过滤搜索功能 ...
- AxureRP7.0各类交互效果汇总帖(转)
了便于大家参考,我把这段时间发布分享的所有关于AxureRP7.0的原型做了整理. 以下资源均有对应的RP源文件可以下载. 当然 ,其中有部分是需要通过完成解密游戏[攻略]才能得到下载地址或者下载密码 ...
- 未能加载文件或程序集“Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=30a [问题点数:40分,结帖人u010259408]
未能加载文件或程序集“Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=30a [问题点数:40分,结帖人u01025 ...
- 转帖-[教程] Win7精简教程(简易中度)2016年8月-0day
[教程] Win7精简教程(简易中度)2016年8月 0day 发表于 2016-8-19 16:08:41 https://www.itsk.com/thread-370260-1-1.html ...
随机推荐
- H3C 存储换盘操作
实际存储型号H3C CF8844 环境说明:H3C存储设备存在一个坏盘需要更换. 更换准备 1. 取出备件检查完毕后放置到安全场所(请严格按照<IT产品现场工程师通用服务规(维修篇)>操作 ...
- 《Span-Based Joint Entity and Relation Extraction with Transformer Pre-Training》阅读笔记
代码 原文地址 预备知识: 1.什么是束搜索算法(beam search)? beam search是一种用于许多自然语言处理和语音识别模型的算法,作为最终决策层,用于在给定目标变量(如最大概 ...
- 电商业务容器化遇瓶颈,公有云Docker镜像P2P加速很安全
当前,电商平台会采用基于Docker的容器技术来承载618大促期间的一些关键业务版块,包括最简单的商品图片展示.订单详情页面等等. 通过容器化改造,电商平台的每个业务版块解耦,可以独立开发.部署和上线 ...
- 震惊!火爆全网的ChatGPT背后使用的数据库居然是……
摘要:ChatGPT承认了自己背后使用的数据库是Cassandra. OpenAI最近发布的AI驱动的智能聊天机器人ChatGPT在互联网上掀起了一阵风暴,热衷于尝试这一新AI成果的网民不在少数.Ch ...
- 昇腾CANN:为你开启机器人开发的Buff 加成
摘要:昇腾AI提供了全栈技术和产品,构筑人工智能的算力基座,赋能上层应用 本文分享自华为云社区<昇腾CANN:为你开启机器人开发的Buff 加成>,作者:华为云社区精选 . 昇腾AI基础软 ...
- gis经纬度坐标转换多格式兼容:支持字符串/数组/GeoJSON
格式 let coordinatesStrReg = /((-*[1][0-9]{0,2}|0)(\.[0-9]{1,6})*),\s{0,2}((-*[1-9][0-9]{0,1}|0)(\.[0- ...
- 火山引擎 ByteHouse:双十一即将到来,如何用数据分析提升电商平台销售转化?
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 "双十一"电商大促脚步渐近,各大平台的战火又将燃起.直播电商以低成本.高转化率等优势备受商家青 ...
- 信创就用国产的生态,Solon v2.6.4 发布
Solon 是什么框架? Java 新的"生态级"应用开发框架.从零开始构建,有自己的标准规范与开放生态(历时六年,具备全球第二级别的生态规模). 相对于 Spring,有什么特点 ...
- Python 获取控制台输入的值
获取控制台输入参数 if __name__ == '__main__': while 1: question = input('用户:') answer = "你的问题是:" + ...
- Lambda 表达式各种用法,你都会了吗
公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 前言 Lambda表达式是 Java 8 中引入的最有影响力的功能之一.它们通过允许简洁而优雅地创建匿名函数来实现 Jav ...