#zabbix #json #webhook #proxy #http #log-file #web-server

app zbx-webhook-proxy

接受HTTP GET参数或POST的JSON,并将值作为JSON发送到Zabbix服务器

2个不稳定版本

0.3.0 2022年7月29日
0.2.0 2022年7月18日

#6 in #zabbix

BSD-3-Clause

36KB
662

zbx-webhook-proxy

接受在可配置的URL集合上的请求,然后将GET查询参数或POST的JSON正文转发到Zabbix服务器(作为JSON值),可选的JMESPath转换。

与Zabbix 4.0或更高版本以及类型为logTrapper Items一起使用,然后在Zabbix中使用相关项JSON预处理进一步配置JSON正文的处理。

构建使用

  • warp - 一个超级简单、可组合的Web服务器框架,速度极快
  • zbx-sender - Zabbix Sender客户端的现代化Rust实现
  • trust-dns-resolver - 用于反向DNS解析,不支持std::net
  • clap - 通过定义结构体解析命令行参数
  • fern - “简单,高效的日志记录”;管理控制台日志和可选的访问日志文件
  • serde-json - 用于json!()快乐

版本历史

查看CHANGELOG.md中的更改

构建

先决条件

Rust 2021版

安装

  1. cargobuild --release
  2. target/release/zbx-webhook-proxy复制到任何可执行位置,并配置启动

待办事项

  • 启动脚本和SystemD单元文件
  • makeinstall

配置

config.toml文件

有关完整用法,请参阅example_config.toml

最小配置

zabbix_server = "zabbix.example.com"

[[route]]
path = "/hook"
item_host = "Monitored Host"
item_key = "event.json"

命令行

所有命令行标志都是可选的,但可以指定以覆盖配置文件或默认值

没有默认值的标志

必须在命令行或配置文件中指定

  • -z/--zabbix-server:Zabbix 服务器或代理的地址

具有默认值的标志

  • -c/--config:指向 config.toml 的路径(默认 /etc/zbx-webhook-proxy.toml
  • -p/--zabbix-port:Zabbix trapper 端口(默认:10051)
  • -l/--listen:代理 HTTP 监听端口(默认:3030)

启用额外功能的标志

  • --access-log:包含 Apache Common 日志格式的请求的日志文件路径

仅从命令行启用功能的标志

  • --test-mode:接受 webhooks 并打印将要发送给 Zabbix 服务器的值,而不实际发送
  • -v/--verbose:增加控制台日志以便于故障排除

版本控制

我使用 SemVer 进行版本控制。有关可用的版本,请参阅 此存储库上的标签

作者

许可

本项目采用修改后的 BSD 许可证 - 请参阅 LICENSE 文件以获取详细信息

依赖项

~19–31MB
~480K SLoC