ELK不香了!我用Graylog

当我们公司内部部署很多服务以及测试、正式环境的时候 , 查看日志就变成了一个非常刚需的需求了 。
ELK不香了!我用Graylog
文章图片
图片来自包图网
是多个环境的日志统一收集 , 然后使用Nginx对外提供服务 , 还是使用专用的日志收集服务ELK呢?这就变成了一个问题!
ELK不香了!我用Graylog
文章图片
而Graylog作为整合方案 , 使用Elasticsearch来存储 , 使用MongoDB来缓存 , 并且还有带流量控制的(throttling) , 同时其界面查询简单易用且易于扩展 。 所以 , 使用Graylog成为了不二之选 , 为我们省了不少心 。
filebeat工具介绍
①Filebeat日志文件托运服务
Filebeat是一个日志文件托运工具 , 在你的服务器上安装客户端后 , Filebeat会自动监控给定的日志目录或者指定的日志文件 , 追踪读取这些文件 , 不停的读取 , 并且转发这些信息到Elasticsearch或者Logstarsh或者Graylog中存放 。
②Filebeat工作流程介绍
当你安装并启用Filebeat程序的时候 , 它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件 。
对于探测器找出的每一个日志文件 , Filebeat都会启动一个收割进程(harvester) 。
每一个收割进程读取一个日志文件的最新内容 , 并发送这些新的日志数据到处理程序(spooler) , 处理程序会集合这些事件 。
最后Filebeat会发送集合的数据到你指定的地址上去(我们这里就是发送给Graylog服务了) 。
③Filebeat图示理解记忆
我们这里不适用Logstash服务 , 主要是因为Filebeat相比于Logstash更加轻量级 。
当我们需要收集信息的机器配置或资源并不是特别多时 , 且并没有那么复杂的时候 , 还是建议使用Filebeat来收集日志 。
日常使用中 , Filebeat的安装部署方式多样且运行十分稳定 。
ELK不香了!我用Graylog
文章图片
图示服务架构理解记忆
Filebeat配置文件
配置Filebeat工具的核心就是如何编写其对应的配置文件!
对应Filebeat工具的配置主要是通过编写其配置文件来控制的 , 对于通过rpm或者deb包来安装的情况 , 配置文件默认会存储在 , /etc/filebeat/filebeat.yml这个路径下面 。
而对于 , 对于Mac或者Win系统来说 , 请查看解压文件中相关文件 , 其中都有涉及 。
下面展示了Filebeat工具的主配置文件 , 注释信息中都对其各个字段含义进行了详细的解释 , 我这里就不再赘述了 。
需要注意的是 , 我们将日志的输入来源统统定义去读取Inputs.d目录下的所有yml配置 。
所以 , 我们可以更加不用的服务(测试、正式服务)来定义不同的配置文件 , 根据物理机部署的实际情况具体配置 。
#配置输入来源的日志信息#我们合理将其配置到了inputs.d目录下的所有yml文件filebeat.config.inputs:enabled:truepath:${path.config}/inputs.d/*.yml#若收取日志格式为Json的log请开启此配置#json.keys_under_root:true#配置Filebeat需要加载的模块filebeat.config.modules:path:${path.config}/modules.d/*.ymlreload.enabled:falsesetup.template.settings:Index.number_of_shards:1#配置将日志信息发送那个地址上面output.logstash:hosts:[''11.22.33.44:5500'']#output.file:#enable:trueprocessors:-add_host_metadata:~-rename:fields:-from:''log''to:''message''-add_fields:target:''''fields:#加Token是为了防止无认证的服务上Graylog服务发送数据token:''0uxxxxaM-1111-2222-3333-VQZJxxxxxwgX''下面展示一个简单的inputs.d目录下面的yml配置文件的具体内容 , 其主要作用就是配置单独服务的独立日志数据 , 以及追加不同的数据tag类型 。