使用Filebeat和Logstash集中归档日志

方 案

  • Filebeat->Logstash->Files
  • Filebeat->Redis->Logstash->Files
  • Nxlog(Rsyslog、Logstash)->Kafka->Flink(Logstash->ES-Kibana)
  • 其他方案(可根据自己需求,选择合适的架构,作者选择了第二种方案)

注释: 由于Logstash无法处理输出到文件乱序的问题,可通过不同的文件使用不同的Logstash;或者直接写入ES(不存在乱序问题)、通过Flink输出到文件

部 署

系统环境
  • Debian8 x64
  • logstash-6.1.1
  • filebeat-6.1.1-amd64
  • Redis-3.2
Filebeat配置
/etc/filebeat/filebeat.yml
 
filebeat.prospectors:
- type: log
paths:
- /home/data/log/*
- /home/data/*.log
scan_frequency: 20s
encoding: utf-8
tail_files: true
harvester_buffer_size: 5485760
fields:
ip_address: 192.168.2.2
env: qa
output.redis:
hosts: ["192.168.1.1:6379"]
password: "geekwolf"
key: "filebeat"
db: 0
timeout: 5
max_retires: 3
worker: 2
bulk_max_size: 4096
Logstash配置
input {
#Filebeat
# beats {
# port => 5044
# }
#Redis
redis {
batch_count => 4096
data_type => "list"
key => "filebeat"
host => "127.0.0.1"
port => 5044
password => "geekwolf"
db => 0
threads => 2
}
}
filter {
ruby {
code => 'event.set("filename",event.get("source").split("/")[-1])'
}
}
output {
 
if [filename] =~ "nohup" {
file {
path => "/data/logs/%{[fields][env]}/%{+YYYY-MM-dd}/%{[fields][ip_address]}/%{filename}"
flush_interval => 3
codec => line { format => "%{message}"}
}
} else {
file {
path => "/data/logs/%{[fields][env]}/%{+YYYY-MM-dd}/%{[fields][ip_address]}/logs/%{filename}"
flush_interval => 3
codec => line { format => "%{message}"}
}
}
#stdout { codec => rubydebug }
 
}

生产日志目录

├── prod
│   └── 2018-01-13
│   └── 2.2.2.2
│   ├── logs
│   │   ├── rpg_slow_db_.27075
│   └── nohup_service.log
└── qa
├── 2018-01-12
│   ├── 192.168.3.1
└── 2018-01-13
├── 192.168.3.2

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

分区表可以使用不同BLOCK_SIZE的表空间吗?

编辑手记:Oracle数据库中有两种类型的块,标准块和非标准块。非标准块的引入给数据库的管理带来了方便,但在使用的时候也有一些限制。本文将会详细解读块大小对于分...

33011
来自专栏Albert陈凯

2018-11-18 swagger2 自动生成API

作者:小莫 链接:https://www.zhihu.com/question/28119576/answer/134580038 来源:知乎 著作权归作...

1083
来自专栏专注于主流技术和业务

REST API文档工具Swagger2,以及与SpringBoot的集成

swagger是一个API框架,号称世界上最流行的API工具。它提供了API管理的全套解决方案,比如API在线编辑器,APIUI展示界面,代码生成器等诸多功能。...

872
来自专栏小尘哥的专栏

美化一下你的API文档吧(springboot集成swagger及遇到的问题)

微服务的流行提供了诸多的方便,随着也带来了N多的API,而swagger2正是一个对API管理的很好的“工具”,本文主要介绍springboot对swagger...

1583
来自专栏运维一切

hbase数据清理 原

上面是基本的操作,如果你的表已经很满,满到几乎快把hadoop撑爆的时候,上面的方法是慢慢删除的方法,下面是具体的解释:

1643
来自专栏知无涯

Apache多站点配置及禁止IP访问网站

48216
来自专栏ImportSource

微服务RESTful接口文档生成神器Swagger初探

在微服务构建的过程中,你也许发现写的那些restful风格的接口需要编写文档。 文档一般包括要输入哪些参数,哪些参数是必填的,哪些是选填的。还有返回结果的格式...

3517
来自专栏菩提树下的杨过

mac 10.9.4下配置apache

启动后,访问 http://localhost/ 应该能看到"It works!"的初始页面,如果对初始页面的内容感到好奇,可以打开"/etc/apache2/...

682
来自专栏xingoo, 一个梦想做发明家的程序员

Apache虚拟主机-解惑篇

    有很多平时喜欢钻研的童鞋会发现,为什么有时候自己访问某XXse网站时,总是更新IP地址,内容却与以前一样。这个时候就要了解虚拟主机的概念了。了解这个概...

2625
来自专栏狂码一生

linux服务器Apache绑定多个域名

一、配置httpd.conf   vim /etc/etc/httpd/conf/httpd.conf   1、将 ServerName www.example...

4369

扫码关注云+社区