服务日志收集工具Filebeat介绍可以参考:ELK+Filebeat搭建日志系统Graylog服务介绍Graylog-日志监控系统Graylog是一个开源的日志聚合、分析、审计、展示和预警工具。从功能上来说,它和ELK差不多,但是比ELK要简单的多。凭借着更加简洁、高效、易于部署和使用等优势,迅速受到了很多人的青睐。当然在扩展性上它并不比ELK好,但是它有商业版本可以选择。Graylog-工作流程介绍部署graylog最简单的架构是单机部署,比较复杂的是集群部署。架构图如下所示。我们可以看到它包含三个组件,分别是Elasticsearch、MongoDb和Graylog。其中,Elasticsearch用于持久化存储和检索日志文件数据(IO密集型),MongoDb用于存储Graylog的相关配置,Graylog用于提供web接口和对外接口(CPU密集型)。尽量减少单机部署优化集群部署Graylog组件功能配置Graylog服务的核心是了解对应组件的功能及其工作原理!简单来说,Input代表日志数据的来源。对于不同来源的日志,可以使用Extractors对日志字段进行转换,比如将Nginx状态码转换成相应的英文表达。然后将不同的流按照不同的标签类型进行分组,将这些日志数据存储到指定的索引库中进行持久化存储。Graylog通过Input收集日志,每个Input单独配置Extractor进行字段转换。Graylog中日志搜索的基本单位是Stream,每个Stream可以有自己独立的ElasticIndexSet,也可以共享一个IndexSet。提取器在系统/输入中配置。Graylog有一个很方便的地方就是可以加载一个日志,然后根据这个实例进行配置,直接看到结果。内置的Extractor基本可以完成各种字段的提取和转换任务,但是也有一些局限性,需要在应用中写日志时考虑。Input可以配置多个Extractor,这些Extractor按顺序执行。系统会有一个默认的Stream,所有的日志都会默认保存到这个Stream中,除非匹配到某个Stream,而这个Stream配置为不将日志保存到默认的Stream中。您可以通过菜单Streams创建更多的Streams。新创建的Stream处于暂停状态,配置完成后需要手动启动。Stream通过配置条件匹配日志,满足条件的日志添加流ID标识字段并保存到对应的ElasticIndexSet中。索引集通过菜单系统/索引创建。通过IndexSet配置日志存储的性能、可靠性和过期策略。性能和可靠性是配置ElasticIndex的一些参数。主要参数包括分片和副本。除了上面提到的日志处理流程,Graylog还提供了使用Pipeline脚本的更灵活的日志处理方案。这里就不细说了,只介绍如何使用Pipelines来过滤不需要的日志。下面是一个PipelineRule的例子,丢弃所有level>6的日志。从数据采集(输入),现场分析(提取器),分流到流,再到管道清洗,一气呵成,无需二次处理在其他方面。Sidecar是一个轻量级的日志收集器,通过接入graylog进行集中管理,支持linux和windows系统。Sidecar守护进程会定期访问graylogRESTAPI接口,获取Sidecar配置文件中定义的标签。Sidecar首次运行时,会从graylog服务器拉取配置文件中指定标签(tag)的配置信息,同步到本地。目前Sidecar支持NXLog、Filebeat和Winlogbeat。它们都是通过graylog中的web界面统一配置的,支持Beats、CEF、Gelf、JsonAPI、NetFlow等输出类型。Graylog最强大的地方在于,你可以在配置文件中指定Sidecar将日志发送到哪个graylog集群,并在graylog集群中对多个input进行负载均衡,这样graylog在遇到日志量非常大的时候也能轻松应对.rule"discarddebugmessages"whento_long($message.level)>6thendrop_message();end日志集中保存到Graylog后,可以很容易地进行搜索。但是,有时需要对数据进行进一步处理。主要有两种方式,直接访问Elastic中存储的数据,或者通过Graylog的Output转发给其他服务。服务安装部署主要介绍部署Filebeat+Graylog的安装步骤和注意事项!部署Filebeat工具官方提供了多种部署方式,包括通过rpm和deb包安装服务,通过源码编译安装服务,以及使用Docker或kubernetes安装服务。我们可以根据自己的实际需要进行安装。#Ubuntu(deb)$curl-L-Ohttps://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.8.1-amd64.deb$sudodpkg-ifilebeat-7.8.1-amd64.deb$sudosystemctlenablefilebeat$sudoservicefilebeatstart#使用dockerrun-d--name=filebeat--user=root--volume="./filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro"--volume="/var/lib/docker/containers:/var/lib/docker/containers:ro"--volume="/var/run/docker.sock:/var/run/docker.sock:ro"docker.elastic.co/beats/filebeat:7.8.1filebeat-e-strict.perms=false-Eoutput.elasticsearch.hosts=["elasticsearch:9200"]部署Graylog服务这里主要介绍使用的Docker容器用于部署服务。如需使用其他方式部署,请参考官方文档相应章节的安装部署步骤。在部署服务之前,我们需要为Graylog服务生成相关信息。生成的部署如下:#生成password_secret密码(最少16个字符)$sudoaptinstall-ypwgen$pwgen-N1-s16zscMb65...FxR9ag#生成后续web登录需要的密码$echo-n"回车密码:"&&head-1
