3 个版本
0.1.2 | 2019 年 1 月 24 日 |
---|---|
0.1.1 | 2018 年 12 月 23 日 |
0.1.0 | 2018 年 12 月 22 日 |
#4 in #healthcheck
51KB
1.5K SLoC
Hellcheck
HTTP 健康检查器。
安装
使用 cargo 安装
安装系统依赖项。
在 Debian/Ubuntu 上
apt-get install libssl-dev pkg-config
安装 hellcheck crate
cargo install hellcheck
配置
基本配置示例
配置文件 hellcheck.yml
可以有以下格式
# Declare what has to be watched
checkers:
example:
url: https://www.example.com
notifiers: [my_team]
localhost8000:
url: https://127.0.0.1:8000
interval: 1500ms
notifiers: [my_team, sound_alarm]
basic_auth:
username: "foo"
password: "bar"
# Declare notification channels
notifiers:
my_team:
type: slack
token: <WEBHOOK_URL>
sound_alarm:
type: command
command: ["./custom.sh", "arg1", "arg2"]
通知器
Slack 通知器
在 Slack 中创建一个 入站 webhook。然后定义您的通知器,类型为 slack
和 webhook_url
notifiers:
notifier_name:
type: slack
webhook_url: <WEBHOOK_URL>
Telegram 通知器
对于 Telegram 通知器,您必须使用 BotFather 创建一个机器人并获取机器人令牌。
聊天 ID 可以通过 GetidsBot 查询。
notifiers:
notifier_name:
type: telegram
token: <BOT-TOKEN>
chat_id: <CHAT-ID>
HipChat 通知器
notifiers:
notifier_name:
type: hipchat
base_url: https://hipchat.com
token: <AUTH_TOKEN>
room_id: <ROOM_NAME_OR_ID>
命令通知器
命令通知器允许您调用任何 shell 命令或自定义脚本来作为通知器。
示例
notifiers:
custom:
type: command
command: ["/path/to/custom-notifier.sh", "arg1", "arg2"]
在脚本中,以下环境变量是可用的
HELLCHECK_ID
- 检查器 IDHELLCHECK_URL
- 检查器 URLHELLCHECK_OK
true
- 当服务正常运行时false
- 当服务关闭时
启动
假设您当前目录中有一个 ./hellcheck.yml
,这将启动对 checkers
配置部分的服务的监控
hellcheck watch --file ./hellcheck.yml
路线图
- 支持通知器
- 命令客户通知器
- Telegram
- HipChat
- Slack
- 检查器
- 自定义间隔
- 验证正文(存在某些给定的文本)
- 自定义 OKish HTTP 状态
- 使用 structopt/clap 为命令行界面提供良好的功能
- 实现
hellcheck test
命令以测试通知器 - 配置 CI
- 运行构建/测试
- 设置 clippy lint
- 设置 rusmft
- 确保具有 http 基本身份验证的端点可以进行健康检查
- 将凭据通过环境变量注入到 yaml 文件中
- 允许为通知器自定义消息
- 允许将自定义脚本作为检查器
- 为控制台生成漂亮的彩色输出
- 验证代码中的意外恐慌(unwrap,panic,expect 等)
许可证
贡献者
- greyblake Potapov Sergey - 创建者,维护者。
依赖关系
约19-30MB
约534K SLoC