ELK的上线之路(五):—— Logstash进阶解耦

利用redis来实现logstash的解耦:

安装redis,直接采用yum安装:

vi /etc/redis.conf (简单的编辑配置)

daemonize yes(后台运行)

bind 192.168.12.74 (修改监听的地址)

启动redis:

systemctl start redis

redis-cli -h 192.168.12.74(访问测试)

编辑logstash的配置文件:

编辑:redis-out.conf(输出到redis)
启动logstash,标准输入测试。
info查看信息,并查看相关内容。
启动logstash,标准输出到elasticsearch。

生产配置文件,输入redis:

input {

file {

path => "/var/log/messages"

type => "system"

start_position => "beginning"

}

syslog {

type => "system-syslog"

host => "192.168.12.74"

port => "514"

}

file {

path => "/var/log/ucdisk/ucdisk-error.log"

type => "ucdisk-error"

start_position => "beginning"

codec => multiline {

pattern => "^[0-9]"

negate => true

what => "previous"

}

}

file {

path => "/var/log/nginx/access.log_json"

codec => "json"

type => "nginx-log"

start_position => "beginning"

}

}

output {

if [type] == "system" {

redis {

host => "192.168.12.74"

port => "6379"

db => "6"

data_type => "list"

key => "system"

}

}

if [type] == "ucdisk-error" {

redis {

host => "192.168.12.74"

port => "6379"

db => "6"

data_type => "list"

key => "ucdisk-error"

}

}

if [type] == "nginx-log" {

redis {

host => "192.168.12.74"

port => "6379"

db => "6"

data_type => "list"

key => "nginx-log"

}

}

if [type] == "system-syslog" {

redis {

host => "192.168.12.74"

port => "6379"

db => "6"

data_type => "list"

key => "system-syslog"

}

}

}

生产配置文件,redis读出:

input {

redis {

host => "192.168.12.74"

port => "6379"

db => "6"

data_type => "list"

key => "system"

type => "system"

}

redis {

host => "192.168.12.74"

port => "6379"

db => "6"

data_type => "list"

key => "ucdisk-error"

type => "ucdisk-error"

}

redis {

host => "192.168.12.74"

port => "6379"

db => "6"

data_type => "list"

key => "nginx-log"

type => "nginx-log"

}

redis {

host => "192.168.12.74"

port => "6379"

db => "6"

data_type => "list"

key => "system-syslog"

type => "system-syslog"

}

}

output {

if [type] == "system" {

elasticsearch {

hosts => [ "192.168.12.74:9200"]

index => "system-%{+YYYY.MM.dd}"

}

}

if [type] == "ucdisk-error" {

elasticsearch {

hosts => [ "192.168.12.74:9200"]

index => "ucdisk-error-%{+YYYY.MM.dd}"

}

}

if [type] == "nginx-log" {

elasticsearch {

hosts => [ "192.168.12.74:9200"]

index => "nginx-log-%{+YYYY.MM.dd}"

}

}

if [type] == "system-syslog" {

elasticsearch {

hosts => [ "192.168.12.74:9200"]

index => "system-syslog-%{+YYYY.MM.dd}"

}

}

}

启动logstash:

[root@elk-node1 conf]# /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/redis.conf

Settings: Default filter workers: 2

Logstash startup completed

[root@elk-node2 conf]# /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/redis.conf

Settings: Default filter workers: 2

Logstash startup completed

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏静默虚空的博客

Elastic 技术栈之 Logstash 基础

Elastic 技术栈之 Logstash 基础 本文是 Elastic 技术栈(ELK)的 Logstash 应用。 如果不了解 Elastic 的安装、...

9666
来自专栏运维

ELK Stack最新版本测试二配置篇

http://jerrymin.blog.51cto.com/3002256/1720109

1041
来自专栏服务端技术杂谈

线程池监控

通过扩展线程池进行监控,通过继承线程池并重写线程池的beforeExecute,afterExecute和terminated方法,我们可以在任务执行前,执行后...

1421
来自专栏性能与架构

快速认识ELK中的L - Logstash

简介 Logstash 是一个开源的数据采集引擎。 Logstash 就像是一个管子,左面接数据源接收数据,右面接存储目的地,管子中间有过滤器,对接收到的数据进...

3838
来自专栏运维

Elastic Stack5.2.2升级到6.0.0注意事项

6.0版本filebeat prospectors中的document_type被禁用,原来的topic: '%{[type]}'获取文档类型的方式不可用,但是...

1173
来自专栏铭毅天下

干货 | Elasticsearch集群黄色原因的终极探秘

绿色——最健康的状态,代表所有的主分片和副本分片都可用; 黄色——所有的主分片可用,但是部分副本分片不可用; 红色——部分主分片不可用。(此时执行查询部分数...

1830
来自专栏腾讯IVWEB团队的专栏

利用 yeoman 构建项目 generator

yoeman 提出一个 yeoman 工作流的概念,通过脚手架工具,构建工具和包管理器的配合使用让开发者专注于业务的解决上而不是其他小事情。

1930
来自专栏娱乐心理测试

微信小程序获取用户信息

12.2K3
来自专栏蘑菇先生的技术笔记

topshelf和quartz内部分享

topshelf是创建windows服务的一种方式,相比原生实现ServiceBase、Install.Installer更为简单方便, 我们只需要几行代码即可...

953
来自专栏Youngxj

AE博客原创 | 开源的短网址程序Myurl

3272

扫码关注云+社区

领取腾讯云代金券