使用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 条评论
登录 后参与评论

相关文章

来自专栏Hadoop实操

如何使用Cloudera Manager禁用YARN的HA

前面Fayson写过《如何使用Cloudera Manager启用YARN的HA》。本篇文章主要讲述如何使用Cloudera Manager禁用YARN的HA。

3245
来自专栏挖掘大数据

Hadoop生态圈和各组件的启动、关闭脚本介绍

Hadoop生态圈各组件的启动及关闭脚本,虽然有些使用频率不高,不容易记住,这里特地整理出来,大家可以先保存,用的时候就方便了。

2107
来自专栏个人分享

Flink on Yarn运行机制

从图中可以看出,Yarn的客户端需要获取hadoop的配置信息,连接Yarn的ResourceManager。所以要有设置有 YARN_CONF_DIR或者HA...

1692
来自专栏Albert陈凯

Hadoop数据分析平台实战——170Oozie介绍及环境搭建离线数据分析平台实战——170Oozie介绍及环境搭建

离线数据分析平台实战——170Oozie介绍及环境搭建 Oozie介绍 Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Hive等...

3355
来自专栏运维前线

如何在CentOS 7上使用Packetbeat和ELK收集基础结构指标

介绍 Packetbeat允许您监视应用级协议(如HTTP和MySQL)以及DNS和其他服务的实时网络流量。 要执行此操作,请在客户端计算机上配置代理,称...

2849
来自专栏Hadoop实操

如何在CDH集群中部署Presto

3372
来自专栏Hadoop实操

Cloudera Manager管理控制台

Cloudera Manager管理控制台(Cloudera Manager Admin Console)是一个基于Web的用户界面,用于配置,管理和监控CDH...

6249
来自专栏云计算

在Hadoop YARN群集之上安装,配置和运行Spark

Spark是一种通用的集群计算系统。它可以在从单个节点到数千个分布式节点的集群上部署和运行并行应用程序。Spark最初设计用于运行Scala应用程序,但也支持J...

561
来自专栏Hadoop实操

CDH集群安装YARN无法正常启动及解决办法

在安装5.11.2版本的CDH集群时,或者为5.11.2版本的CDH集群扩容时,可能会遇到YARN的NodeManager实例无法启动的问题。本文主要讲述Nod...

1244
来自专栏运维

Ambari2.6安装部署Hadoop2.7

Apache Ambari是一种基于Web的工具,支持Apache Hadoop集群的供应、管理和监控。Ambari已支持大多数Hadoop组件,包括HDFS、...

512

扫码关注云+社区