
czerwonk/junos_exporterjunos_exporter是一个针对运行JunOS系统设备的Prometheus指标导出器,通过SSH协议收集设备性能数据。该项目旨在提供一种简洁、高效的监控方案,替代高复杂度的通用SNMP导出器,特别适用于需要快速抓取JunOS设备指标的场景(如网络运维、性能监控)。最初由Freifunk社区成员开发,以解决通用SNMP导出器在性能上的不足,实现对网络设备的高效监控。
0.7版本修复了所有BGP相关指标前缀的拼写错误,使用旧版本的用户需相应更新监控查询语句。
0.5版本用SSH替代了SNMP,这是一个破坏性变更(指标名称保持不变)。所有SNMP相关参数已移除,用户需查看新的SSH相关参数并更新服务配置。
0:EI -- 封装无效 1:MM -- MTU不匹配 2:EM -- 封装不匹配 3:CM -- 控制字不匹配 4:VM -- VLAN ID不匹配 5:OL -- 无出标签 6:NC -- 接口封装非CCC/TCC 7:BK -- 备份连接 8:CB -- 接收的信元束大小错误 9:LD -- 本地站点信号关闭 10:RD -- 远程站点信号关闭 11:XX -- 未知 12:NP -- 接口硬件不存在 13:Dn -- 关闭 14:VC-Dn -- 虚拟电路关闭 15:Up -- 运行中 16:CF -- 呼叫接纳控制失败 17:IB -- TDM比特率不兼容 18:TM -- TDM配置错误 19:ST -- 备用连接 20:SP -- 静态伪线 21:RS -- 远程站点备用 22:HS -- 热备用连接
适用于需要监控运行JunOS系统的Juniper网络设备的场景,尤其适合:
bashgo get -u github.com/czerwonk/junos_exporter
bashdocker run -d --restart unless-stopped \ -p 9326:9326 \ -e SSH_KEYFILE=/ssh-keyfile \ -v /opt/junos_exporter_keyfile:/ssh-keyfile:ro \ -v /opt/junos_exporter_config.yml:/config.yml:ro \ czerwonk/junos_exporter
支持SSH密钥认证和密码认证:
-ssh.keyfile=<文件路径>启用,指定私钥文件-ssh.password=<密码字符串>启用,或在配置文件中设置password: <密码字符串>认证优先级:SSH密钥 > 命令行密码 > 配置文件密码。未指定有效认证方式时,程序将报错退出。
默认情况下,访问/metrics端点时会抓取所有配置的目标。也可通过target参数指定单个目标,例如:http://localhost:9326/metrics?target=1.2.3.4。指定的目标需存在于配置文件或-ssh.targets参数中,或通过-config.ignore-targets标志忽略目标检查。
yamlscrape_configs: - job_name: 'junos' static_configs: - targets: - 192.168.1.2 # 目标设备 relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: 127.0.0.1:9326 # junos_exporter的地址和端口
支持通过YAML配置文件定义目标和特性开关,示例:
yamldevices: - host: router1 # 设备主机名或IP key_file: /path/to/key # SSH私钥文件路径 - host: router2 username: exporter # SSH用户名 password: secret # SSH密码 features: # 启用/禁用指标采集功能 alarm: true # 告警指标 environment: true # 环境指标(温度、风扇等) bgp: true # BGP指标 ospf: true # OSPF指标 isis: true # ISIS指标 nat: true # NAT指标 l2circuit: true # L2电路指标 ldp: true # LDP指标 routes: true # 路由指标 routing_engine: true # 路由引擎指标 firewall: false # 防火墙过滤器指标(默认禁用) interfaces: true # 接口指标 interface_diagnostic: true # 接口诊断指标 interface_queue: true # 接口队列指标 storage: true # 存储指标 accounting: true # 计费指标 ipsec: true # IPsec指标 fpc: true # FPC指标 rpki: true # RPKI指标 rpm: false # RPM指标(默认禁用) satellite: true # 卫星指标 system: true # 系统指标 power: true # 电源指标
0.9.5版本引入从接口描述中提取动态标签的功能,标签名需满足:
可通过-dynamic-interface-labels=false禁用该功能。
XYZ [prod] → 标签prod="1"XYZ [peer=202739] → 标签peer="202739"提供示例Grafana仪表盘(grafana_dashboard.json),包含设备/接口选择等变量,可直接导入使用。
使用以下项目组件:
MIT许可证(详见LICENSE)



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务