我正在构建一个日志分析器服务来开始主要监控我们的 pfSense 防火墙、XenServer 管理程序、FreeBSD/Linux 服务器和 Windows 服务器。
互联网上有很多关于 ELK 堆栈以及如何使其正常工作的文档。但我想以不同的方式使用它,但我不知道这是一个好的解决方案还是只是浪费时间/磁盘空间。
我已经有一台 FreeBSD 10.2 机器作为远程系统日志服务器,我的想法是简单地将所有日志集中在这台机器上,系统日志服务器将日志转发logstash-forwarder
给 ELK 服务器。
我很清楚这种方法将提高此设置的磁盘要求,但另一方面,我将只有一台logstash-forwarder
安装了守护程序的机器,这对我来说似乎很好。
但谈问题。该logstash
分析器匹配[host]
与服务器的主机名发送日志消息,并在这种方法只存在对ELK,远程系统日志服务器“服务器”节目的。
我知道我可以自定义logstash
配置文件上的设置,但我不知道(而且我没有经验知道)这是否只是它的解析器上的一个简单设置是否会危及整个 ELK经验。
最后,我只想要一些关于我的日志架构的建议,以及它是否可以工作,或者我是否应该没有其他选择。
提前致谢,
我想知道将我的 docker 容器日志转发到 ELK 服务器的最简单方法是什么,到目前为止,我在搜索互联网后尝试的解决方案根本不起作用。
基本上,我有一个使用 docker-compose 运行的 docker 映像,该容器不会在本地记录任何内容(它由不同的服务组成,但没有一个是 logstash 或其他任何服务),但我看到通过docker logs -tf imageName
或docker-compose logs
. 由于我使用 compose 启动容器,因此我无法使用(或至少我不知道如何使用)--logs-driver
docker 选项。
因此,我想知道是否有人可以启发我,例如如何将该日志转发到 ELK 容器。
提前致谢,
问候
解决方案:
感谢 madeddie,我可以通过以下方式解决我的问题,提到我使用了 madeddie 在他的帖子中建议的基本 ELK-stack-in-containers。
首先,我更新了docker-compose.yml
我的容器文件,以按照 madeddie 告诉我的那样为日志记录引用添加条目,我为每个服务添加了一个条目,我的 docker-compose 片段如下所示
version: '2'
services:
mosquitto:
image: ansi/mosquitto
ports:
- "1883:1883" # Public access to MQTT
- "12202:12202" #mapping logs
logging:
driver: gelf
options:
gelf-address: udp://localhost:12202
redis:
image: redis
command: redis-server --appendonly yes
ports:
- "6379:6379" # …
Run Code Online (Sandbox Code Playgroud)