ELK不香了!我用Graylog( 二 )


#收集的数据类型-type:logenabled:true#日志文件的路径地址paths:-/var/log/supervisor/app_escape_worker-stderr.log-/var/log/supervisor/app_escape_prod-stderr.logsymlinks:true#包含的关键字信息include_lines:[''WARNING'',''ERROR'']#打上数据标签tags:[''app'',''escape'',''test'']#防止程序堆栈信息被分行识别multiline.pattern:'^[?[0-9]...{3}'multiline.negate:truemultiline.match:after#需要配置多个日志时可加多个type字段-type:logenabled:true需要注意的是 , 针对于不同的日志类型 , filebeat还提供了不同了模块来配置不同的服务日志以及其不同的模块特性 , 比如我们常见的PostgreSQl、Redis、Iptables等 。
#iptables-module:iptableslog:enabled:truevar.paths:[''/var/log/iptables.log'']var.input:''file''#postgres-module:postgresqllog:enabled:truevar.paths:[''/path/to/log/postgres/*.log*'']#nginx-module:nginxaccess:enabled:truevar.paths:[''/path/to/log/nginx/access.log*'']error:enabled:truevar.paths:[''/path/to/log/nginx/error.log*'']Graylog服务介绍
①Graylog日志监控系统
Graylog是一个开源的日志聚合、分析、审计、展现和预警工具 。 在功能上来说 , 和ELK类似 , 但又比ELK要简单很多 。
依靠着更加简洁 , 高效 , 部署使用简单的优势很快受到许多人的青睐 。 当然 , 在扩展性上面确实没有比ELK好 , 但是其有商业版本可以选择 。
②Graylog工作流程介绍
部署Graylog最简单的架构就是单机部署 , 复杂的也是部署集群模式 , 架构图示如下所示 。
我们可以看到其中包含了三个组件 , 分别是Elasticsearch、MongoDB和Graylog 。
其中 , Elasticsearch用来持久化存储和检索日志文件数据(IO密集) , MongoDB用来存储关于Graylog的相关配置 , 而Graylog来提供Web界面和对外接口的(CPU密集) 。
ELK不香了!我用Graylog
文章图片
最小化单机部署
ELK不香了!我用Graylog
文章图片
最优化集群部署
Graylog组件功能
配置Graylog服务的核心就是理解对应组件的功能以及其运作方式!
简单来讲 , Input表示日志数据的来源 , 对不同来源的日志可以通过Extractors来进行日志的字段转换 , 比如将Nginx的状态码变成对应的英文表述等 。
然后 , 通过不同的标签类型分组成不用的Stream , 并将这些日志数据存储到指定的Index库中进行持久化保存 。
ELK不香了!我用Graylog
文章图片
ELK不香了!我用Graylog
文章图片
Graylog中的核心服务组件
Graylog通过Input搜集日志 , 每个Input单独配置Extractors用来做字段转换 。
Graylog中日志搜索的基本单位是Stream , 每个Stream可以有自己单独的ElasticIndexSet , 也可以共享一个IndexSet 。
Extractor在System/Input中配置 。 Graylog中很方便的一点就是可以加载一条日志 , 然后基于这个实际的例子进行配置并能直接看到结果 。
内置的Extractor基本可以完成各种字段提取和转换的任务 , 但是也有些限制 , 在应用里写日志的时候就需要考虑到这些限制 。 Input可以配置多个Extractors , 按照顺序依次执行 。
系统会有一个默认的Stream , 所有日志默认都会保存到这个Stream中 , 除非匹配了某个Stream , 并且这个Stream里配置了不保存日志到默认Stream 。
可以通过菜单Streams创建更多的Stream , 新创建的Stream是暂停状态 , 需要在配置完成后手动启动 。
Stream通过配置条件匹配日志 , 满足条件的日志添加streamID标识字段并保存到对应的ElasticIndexSet中 。
IndexSet通过菜单System/Indices创建 。 日志存储的性能 , 可靠性和过期策略都通过IndexSet来配置 。