3 个版本

0.1.2 2019 年 1 月 24 日
0.1.1 2018 年 12 月 23 日
0.1.0 2018 年 12 月 22 日

#4 in #healthcheck

MIT 许可证

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。然后定义您的通知器,类型为 slackwebhook_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 - 检查器 ID
  • HELLCHECK_URL - 检查器 URL
  • HELLCHECK_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 等)

许可证

MIT © Sergey Potapov

贡献者

  • greyblake Potapov Sergey - 创建者,维护者。

依赖关系

约19-30MB
约534K SLoC