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日 |
461 在 Web编程
每月 35次下载
49KB
888 行
Vigil Local
Vigil Local守护进程。用作防火墙后主机的从属服务,并将它们的状态报告给Vigil。
Vigil Local是一个(可选)从属守护进程,您可以使用它将内部服务健康状态报告给您的Vigil状态页面的主服务器。它设计用于在防火墙后使用,并且可以监控绑定到本地环或LAN网络的宿主机,这些宿主机对于您的主Vigil状态页面不可用。如果您希望将Vigil状态页面与内部服务完全隔离,它也很有用。
在您的服务器上安装Vigil Local,并使用您的Vigil端点URL和令牌进行配置;然后它将开始监控所有配置的节点并将它们报告给Vigil。请确保您在Vigil中将所有本地节点预先配置为 local
,然后在Vigil Local中相应地配置为 poll
或 script
。服务标识符和节点标识符在两边必须匹配,因为它们将用于从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位软件包(代号:buster
、bullseye
和bookworm
)。您仍然可以在其他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
(类型:字符串,允许:debug
、info
、warn
、error
,默认:error
)—— 日志详细程度,在生产环境中设置为error
[报告]
endpoint
(类型:字符串,允许:URL,无默认值)—— 维护状态页面的主报告URL(可以是通过例如HTTPS公开的公共URL,或者通过局域网私密连接;没有尾随斜杠,例如https://status.example.com
)token
(类型: 字符串, 允许: 任何字符串, 默认值: 无) — 您的主 Vigil Reporter 令牌(在 Vigil 中配置)
[指标]
interval
(类型: 整数, 允许: 秒, 默认值:120
) — 用于poll
和script
模式下探测节点的时间间隔(即所有节点)poll_retry
(类型: 整数, 允许: 秒, 默认值:2
) — 在poll
模式下尝试第二次探测节点的时间间隔(仅在第一次检查失败时)poll_delay_dead
(类型: 整数, 允许: 秒, 默认值:10
) — 在poll
模式下,节点被认为死亡
的时间延迟(即检查响应延迟)poll_delay_sick
(类型: 整数, 允许: 秒, 默认值:1
) — 在poll
模式下,节点被认为有病
的时间延迟(即检查响应延迟)
[探测]
id
(类型: 字符串, 允许: 任何唯一的小写字符串, 默认值: 无) — 被探测服务的唯一标识符
id
(类型: 字符串, 允许: 任何唯一的小写字符串, 默认值: 无) — 被探测服务节点的唯一标识符mode
(类型: 字符串, 允许:poll
,script
, 默认值: 无) — 此节点的探测模式(例如,poll
是直接对replicas
中设置的 URL 进行 HTTP、TCP 或 ICMP 探测,而script
用于执行 shell 脚本)replicas
(类型: 字符串数组, 允许: TCP、ICMP 或 HTTP URL,默认值: 空数组) — 要探测的节点副本 URL(仅在mode
为poll
时使用)scripts
(类型: 字符串数组, 允许: shell 脚本源代码,默认值: 空数组) — 作为 Vigil Local 子进程在系统上执行的 shell 脚本;它们用于构建自定义探测很有用(仅在mode
为script
时使用)
运行
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