jjlu521016

分享知识的点点滴滴

  • 主页
  • 所有文章
目录 关于我

jjlu521016

分享知识的点点滴滴

  • 主页
  • 所有文章

ELK+filebeat+kafka+zooKeeper搭建(单机版)

2018-05-09

文章导航

× 文章目录
  1. 1. 1. elk安装
  2. 2. 2. kafka及zookeeper安装
    1. 2.1. 2.1. 安装kafka:
    2. 2.2. 2.2. 安装zookeeper:
    3. 2.3. 2.3 启动zookeeper
    4. 2.4. 2.4 启动kafka
  3. 3. 3. 集成logstash与kafka
  4. 4. 4. 安装filebeat

本教程中使用的ELK和filebeat版本是 6.2.4

1. elk安装

关于elk的配置参考我之前的一篇文章,不在累述:
elk安装地址:
https://jjlu521016.github.io/2018/05/01/springboot-logback-log4j-elk.html#2-elk%E9%85%8D%E7%BD%AE

2. kafka及zookeeper安装

参考我之前的文章、把对应的配置改成单机即可:

2.1. 安装kafka:

https://jjlu521016.github.io/2018/01/12/%E8%BF%90%E7%BB%B4/Kafka%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA%E6%AD%A5%E9%AA%A4.html#more

2.2. 安装zookeeper:

https://jjlu521016.github.io/2018/01/01/%E8%BF%90%E7%BB%B4/zookeeper%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA%E6%AD%A5%E9%AA%A4.html#more

2.3 启动zookeeper

我本地zookeeper配置了环境变量

1
zkServer.sh start

2.4 启动kafka

启动kafka

1
# bin/kafka-server-start.sh config/server.properties

创建topic

1
# bin/kafka-topics.sh --create --zookeeper 192.168.188.110:2181 --replication-factor 1 --partitions 1 --topic test

创建生产者

1
# bin/kafka-console-producer.sh --broker-list 192.168.188.110:9092 --topic test

创建消费者

1
bin/kafka-console-consumer.sh --zookeeper 192.168.188.110:2181 --topic test --from-beginning

此时生产者输入的内容可以在消费者输出,证明kafka调用通了。

3. 集成logstash与kafka

参考:
https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html
vi logstash_agent.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
input {
kafka {
bootstrap_servers => "192.168.188.110:9092"
#topic id
topics => "test"
codec => "json"
}
}
filter {
json {
source => "message"
remove_field => "message"
}
}
output {
elasticsearch{
hosts => ["192.168.188.110:9200"]
index => "kafka-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}

启动elk之后,在kafka生产者输入一条信息之后logstash打印出对应的内容,说明集成成功了
。在kibana设置对应的日志。

4. 安装filebeat

解压

1
tar -zxvf filebeat-6.2.3-linux-x86_64.tar.gz

配置filebeat.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
filebeat.prospectors:
# 这里面配置实际的日志路径
- type: log
enabled: true
paths:
- /var/log/test1.log
fields:
log_topics: test1
- type: log
enabled: true
paths:
- /var/log/test2.log
fields:
log_topics: test2
output.kafka:
enabled: true
hosts: ["10.112.101.90:9092"]
topic: '%{[fields][log_topics]}'

运行

1
./filebeat -e -c filebeat.yml

把logstash停止,修改配置文件,添加filebeat配置的topic。重启logstash。打开kibana刷新页面,看到filebeat收集到的日志。

注意:
在logstash中,当input里面有多个kafka输入源时,client_id => “xxx”必须添加且需要不同,否则会报错javax.management.InstanceAlreadyExistsException: kafka.consumer:type=app-info,id=logstash-0。

1
2
3
4
5
6
7
8
9
10
11
input {
kafka {

group_id => "es1"

}

kafka {
client_id => "es2"
}
}

赏

谢谢您的打赏!!

支付宝
微信
  • ELK

扫一扫,分享到微信

微信分享二维码
使用Spring Boot、Multipartfile上传文件路径错误问题
springboot logback(log4j) elk 非集群
  1. 1. 1. elk安装
  2. 2. 2. kafka及zookeeper安装
    1. 2.1. 2.1. 安装kafka:
    2. 2.2. 2.2. 安装zookeeper:
    3. 2.3. 2.3 启动zookeeper
    4. 2.4. 2.4 启动kafka
  3. 3. 3. 集成logstash与kafka
  4. 4. 4. 安装filebeat

0 评论
Powered By Valine
v1.5.2
© 2020 jjlu521016
  • 目录
  • 关于我

标签:

  • redis
  • 中间件
  • elk
  • log
  • rabbitmq
  • 分布式事务
  • java
  • threadlocal
  • dubbo
  • jvm
  • oracle
  • mybatis
  • mysql
  • Mysql
  • JVM
  • exception
  • Mybatis
  • AOP
  • Spring
  • spring
  • hashmap
  • jmap
  • Multipartfile
  • GC
  • jedis
  • 多线程
  • localStorage
  • jquery
  • Kafka
  • 集群
  • ELK
  • -elk
  • 运维
  • zookeeper
  • classloader
  • cat
  • 分布式链路跟踪
  • 翻译
  • 微服务
  • 翻译
  • 并发

    缺失模块。
    1、请确保node版本大于6.2
    2、在博客根目录执行以下命令:
    npm i hexo-generator-json-content --save

    3、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: false
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

一个坚持不懈的码农