轻量级日志监控工具LoggiFly
简介
什么是 LoggiFly ?
LoggiFly
是一个轻量级工具,用于监控Docker
容器日志中的预定义关键字或正则表达式模式,并发送通知。它可以帮助用户及时获取安全漏洞、系统错误或自定义模式的实时警报。
主要功能
日志检测:支持简单关键词、正则表达式及多行日志检测。 通知发送:可以通过 Ntfy
或Apprise
将通知发送到100
多种服务(如Slack
、Discord
、Telegram
)。容器控制:可以在检测到特定关键字时触发容器的重启或停止。 日志附加:自动将日志文件包含在通知中,以提供上下文。 自动重载:当配置文件发生变化时,自动重新加载。 可配置警报:可以过滤日志行并使用模板定制消息和通知标题。 支持远程主机:可以连接多个远程 Docker
主机。多平台支持:兼容 Docker
、Docker Swarm
和Podman
。
应用场景
安全监控:捕捉安全漏洞,例如 Vaultwarden
中的失败登录尝试。崩溃调试:附加日志上下文以帮助调试应用程序崩溃。 容器管理:在检测到特定错误时重启或停止容器,确保系统稳定运行。 行为监测:监控应用程序的自定义行为,例如用户在 Audiobookshelf
服务器上下载有声书时的日志。

LoggiFly
是一个理想的容器日志监控解决方案,适用于需要实时监控和响应的各种 Docker
环境。
准备
安装 Apprise
LoggiFly
支持 Ntfy
和 Apprise
两种通知方式,之前老苏都介绍过
文章传送门:
几乎每个平台都可以使用的推送通知apprise 无需注册的通知服务ntfy
因为现在的 Apprise
已经支持 WxPusher
,所以老苏选择了使用 Apprise
做日志通知
# 新建文件夹 apprise 和 子目录
mkdir -p /volume1/docker/apprise/config
# 进入 apprise 目录
cd /volume1/docker/apprise
# 运行容器
docker run -d \
--restart unless-stopped \
--name apprise \
-p 8181:8000 \
-v $(pwd)/config:/config \
caronc/apprise:latest
详细的使用可以参考官方的详细说明: https://github.com/caronc/apprise/wiki/Notify_wxpusher
老苏采用的是 wxpusher://{app_token}@{userid}
格式
示例:wxpusher://AT_123456/UID_789012
config.yaml
老苏没采用环境变量方式,而是用了挂载 config.yaml
的方式,这也是官方推荐的方式,因为这种方式能进行精细控制并访问所有功能,如正则表达式、容器操作、消息格式等。
以监控 bitwarden(vaultwarden)
容器的登录为例

记得需要采用
utf-8
格式保存;
containers:
bitwarden:
# The next 5 settings override the global settings only for this container.
attachment_lines:50
notification_cooldown:2
keywords:
-login
-error
global_keywords:
keywords:
-panic
keywords_with_attachment:
-fatal
notifications:
apprise:
url:"wxpusher://AT_123456/UID_789012" # Any Apprise-compatible URL (https://github.com/caronc/apprise/wiki)
# settings are optional because they all have default values
settings:
log_level:INFO # DEBUG, INFO, WARNING, ERROR
notification_cooldown:5 # Seconds between alerts for same keyword (per container)
attachment_lines:20 # Number of Lines to include in log attachments
multi_line_entries:true # Detect multi-line log entries
disable_restart:false # Disable restart when a config change is detected
disable_start_message:false# Suppress startup notification
disable_shutdown_message:false# Suppress shutdown notification
disable_restart_message:false # Suppress config reload notification
其中:
login
:是关键字,用于捕捉和登录相关的日志;erroe
:也是关键字,用于捕捉和error
相关的日志;
settings | |||
notifications | |||
containers | |||
更详细的说明,请参考官方文档: https://clemcer.github.io/loggifly/guide/config-structure.html
安装
在群晖上以 Docker 方式安装。
本文写作时,
latest
版本对应为v1.4.1
;

docker cli 安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 loggifly
mkdir -p /volume1/docker/loggifly
# 进入 loggifly 目录
cd /volume1/docker/loggifly
# 将 config.yaml 放入当前目录
# 运行容器
docker run -d \
--restart unless-stopped \
--name loggifly \
-v /var/run/docker.sock:/var/run/docker.sock \
-v $(pwd)/config.yaml:/app/config.yaml \
-e TZ=Asia/Shanghai \
ghcr.io/clemcer/loggifly:latest
docker-compose 安装
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: "3"
services:
logsend:
image:ghcr.io/clemcer/loggifly:latest
container_name:loggifly
restart:unless-stopped
volumes:
-/var/run/docker.sock:/var/run/docker.sock
-./config.yaml:/app/config.yaml
environment:
-TZ=Asia/Shanghai
然后执行下面的命令
# 新建文件夹 loggifly
mkdir -p /volume1/docker/loggifly
# 进入 loggifly 目录
cd /volume1/docker/loggifly
# 将 docker-compose.yml 和 config.yaml 放入当前目录
# 一键启动
docker-compose up -d

运行
软件启动后, WxPusher
会收到一条消息,显示开始监控容器 bitwarden

打开 bitwarden
界面,故意输入错误的密码

日志中能看到错误日志

WxPusher
中收到了两条关于 login
的通知

点开分别是

和

因为采用了 login
关键字,所以登录成功也一样会有日志

参考文档
clemcer/loggifly: Monitor Docker Logs and send Notifications
地址:https://github.com/clemcer/loggiflyLoggiFly
地址:https://clemcer.github.io/loggifly/几乎每个平台都可以使用的推送通知apprise | 老苏的blog
地址:https://laosu.tech/2021/09/06/几乎每个平台都可以使用的推送通知apprise
本文链接:https://www.kinber.cn/post/5258.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: