#状态 #监控 #基础设施 #网络

应用 vigil-local

Vigil Local守护进程。用作防火墙后主机的从属服务,并将它们的状态报告给Vigil。

8个稳定版本

1.1.6 2023年9月1日
1.1.4 2023年2月3日
1.1.3 2022年7月25日
1.1.0 2021年11月4日
1.0.0 2020年7月24日

461Web编程

每月 35次下载

MPL-2.0 许可证

49KB
888

Vigil Local

Test and Build Build and Release dependency status Buy Me A Coffee

Vigil Local守护进程。用作防火墙后主机的从属服务,并将它们的状态报告给Vigil。

Vigil Local是一个(可选)从属守护进程,您可以使用它将内部服务健康状态报告给您的Vigil状态页面的主服务器。它设计用于在防火墙后使用,并且可以监控绑定到本地环或LAN网络的宿主机,这些宿主机对于您的主Vigil状态页面不可用。如果您希望将Vigil状态页面与内部服务完全隔离,它也很有用。

在您的服务器上安装Vigil Local,并使用您的Vigil端点URL和令牌进行配置;然后它将开始监控所有配置的节点并将它们报告给Vigil。请确保您在Vigil中将所有本地节点预先配置为 local,然后在Vigil Local中相应地配置为 pollscript。服务标识符和节点标识符在两边必须匹配,因为它们将用于从Vigil Local从属服务识别复制品状态并将其报告给Vigil主服务器。

多个从属守护进程可以在不同的服务器或网络上运行,并将一组服务和节点报告给同一个Vigil主服务器。确保多个从属服务器不会对同一个监控的服务/节点对进行重复报告。

测试于Rust版本: rustc 1.62.0 (a8314ef7d 2022-06-27)

🇧🇬 在保加利亚索非亚制作。

什么是Vigil?

Vigil是一个开源状态页面,您可以在自己的基础设施上托管它,用于监控所有服务器和应用程序,并对用户可见。

它允许您使用各种方法监控关键系统:使用Vigil Reporter库的push,用于Vigil可访问的HTTP、TCP & ICMP服务poll,执行自定义探测的script,以及用于非Vigil可访问的私有服务的local

本地守护程序允许您监视在本地模式(在守护程序中)配置的节点,除了其他不需要本地守护程序工具的监视方法(因此可以直接在守护程序上运行)。

如何使用它?

安装

从二进制文件安装

Vigil Local的预构建二进制文件已共享在GitHub的发行版中。您可以从发行版页面下载最新版本的二进制文件,并在您的服务器上运行。

您仍然需要提供配置文件给二进制文件,所以请确保您有Vigil Local的config.cfg文件准备就绪。

提供的二进制文件是静态链接的,这意味着它可以在任何基于Linux的服务器上运行。然而,它不会在MacOS或Windows机器上工作。

👉 每个发行版二进制文件都附带一个.asc签名文件,可以使用@valeriansaliou GPG公钥进行验证:🔑valeriansaliou.gpg.pub.asc

从软件包安装

Vigil Local为基于Debian的系统(Debian、Ubuntu等)提供了预构建软件包

重要:目前Vigil Local只提供针对Debian 10、11和12的64位软件包(代号:busterbullseyebookworm)。您仍然可以在其他Debian版本以及Ubuntu上使用它们。

首先,添加Vigil Local APT仓库(例如,对于Debian bookworm

echo "deb https://packagecloud.io/valeriansaliou/vigil-local/debian/ bookworm main" > /etc/apt/sources.list.d/valeriansaliou_vigil-local.list
curl --silent -L https://packagecloud.io/valeriansaliou/vigil-local/gpgkey | apt-key add -
apt-get update

然后,安装Vigil Local软件包

apt-get install vigil-local

然后,编辑预填充的Vigil Local配置文件

nano /etc/vigil-local.cfg

最后,重新启动Vigil Local

service vigil-local restart

从Cargo安装

如果您更喜欢通过Rust的Cargo管理vigil-local,可以直接通过cargo install

cargo install vigil-local

确保您的$PATH已正确配置以源Crate的二进制文件,然后使用vigil-local命令运行Vigil Local。

从源代码安装

最后一个选项是从Git拉取源代码,并通过cargo编译Vigil Local

cargo build --release

您可以在./target/release目录中找到构建的二进制文件。

从Docker Hub安装

您可能会发现通过Docker运行Vigil Local更方便。您可以在Docker Hub上找到预构建的Vigil Local镜像,作为valeriansaliou/vigil-local

首先,拉取valeriansaliou/vigil-local镜像

docker pull valeriansaliou/vigil-local:v1.1.6

然后,提供一个配置文件并运行它(将/path/to/your/vigil-local/config.cfg替换为您配置文件的路径)

docker run -v /path/to/your/vigil-local/config.cfg:/etc/vigil-local.cfg valeriansaliou/vigil-local:v1.1.6

配置

使用示例config.cfg配置文件,并根据您自己的环境进行修改。

以下列出可用的配置选项及其允许值

[服务器]

  • log_level(类型:字符串,允许:debuginfowarnerror,默认:error)—— 日志详细程度,在生产环境中设置为error

[报告]

  • endpoint(类型:字符串,允许:URL,无默认值)—— 维护状态页面的主报告URL(可以是通过例如HTTPS公开的公共URL,或者通过局域网私密连接;没有尾随斜杠,例如https://status.example.com
  • token (类型: 字符串, 允许: 任何字符串, 默认值: 无) — 您的主 Vigil Reporter 令牌(在 Vigil 中配置)

[指标]

  • interval (类型: 整数, 允许: 秒, 默认值: 120) — 用于 pollscript 模式下探测节点的时间间隔(即所有节点)
  • poll_retry (类型: 整数, 允许: 秒, 默认值: 2) — 在 poll 模式下尝试第二次探测节点的时间间隔(仅在第一次检查失败时)
  • poll_delay_dead (类型: 整数, 允许: 秒, 默认值: 10) — 在 poll 模式下,节点被认为 死亡 的时间延迟(即检查响应延迟)
  • poll_delay_sick (类型: 整数, 允许: 秒, 默认值: 1) — 在 poll 模式下,节点被认为 有病 的时间延迟(即检查响应延迟)

[探测]

[probe.service]

  • id (类型: 字符串, 允许: 任何唯一的小写字符串, 默认值: 无) — 被探测服务的唯一标识符

[probe.service.node]

  • id (类型: 字符串, 允许: 任何唯一的小写字符串, 默认值: 无) — 被探测服务节点的唯一标识符
  • mode (类型: 字符串, 允许: poll, script, 默认值: 无) — 此节点的探测模式(例如,poll 是直接对 replicas 中设置的 URL 进行 HTTP、TCP 或 ICMP 探测,而 script 用于执行 shell 脚本)
  • replicas (类型: 字符串数组, 允许: TCP、ICMP 或 HTTP URL,默认值: 空数组) — 要探测的节点副本 URL(仅在 modepoll 时使用)
  • scripts (类型: 字符串数组, 允许: shell 脚本源代码,默认值: 空数组) — 作为 Vigil Local 子进程在系统上执行的 shell 脚本;它们用于构建自定义探测很有用(仅在 modescript 时使用)

运行

Vigil Local 可以这样运行

./vigil-local -c/path/to/config.cfg

🔥 报告一个漏洞

如果您在 Vigil Local 中发现漏洞,欢迎您直接通过发送加密电子邮件到 @valeriansaliou 报告给 [email protected]。请不要在公共 GitHub 问题中报告漏洞,因为这些漏洞可能会被恶意人员利用来针对运行未打补丁的 Vigil Local 守护程序的生产服务器。

⚠️ 您必须使用 @valeriansaliou GPG 公钥加密您的电子邮件:[🔑valeriansaliou.gpg.pub.asc](https://valeriansaliou.name/files/keys/valeriansaliou.gpg.pub.asc)。

依赖项

~16MB
~374K SLoC