此次使用kafka代替redis,elk集群搭建过程请参考:https://www.cnblogs.com/dmjx/p/9120474.html

kafka名词解释:

  • 1、话题(Topic):是特定类型的消息流。消息是字节的有效负载(Payload),话题是消息的分类名或种子(Feed)名;
  • 2、生产者(Producer):是能够发布消息到话题的任何对象;
  • 3、服务代理(Broker):已发布的消息保存在一组服务器中,它们被称为代理(Broker)或Kafka集群;
  • 4、消费者(Consumer):可以订阅一个或多个话题,并从Broker拉数据,从而消费这些已发布的消息;

系统环境信息:

CentOS Linux release 7.3.1611 (Core)

基础环境准备:

关闭防火墙:systemctl stop firewalld

SeLinux设为disabled: setenforce 0

jdk版本:jdk_1.8

kafka版本:kafka_2.12-2.1.0

本次搭建使用了三个节点,kafka下载地址:http://mirror.rise.ph/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz

环境搭建

zookeeoer配置部署:

1. 修改配置文件:zookeeper.properties

dataDir=/apps/product/zookeeper/data
clientPort=
maxClientCnxns=
tickTime=
initLimit=
syncLimit= server.=10.20.88.199::
server.=10.20.88.200::
server.=10.20.88.201::

2. 创建zookeeper所需要的目录

mkdir /apps/product/zookeeper/data

3. 创建myid文件用于标识主机

echo  > /apps/product/zookeeper/data/myid

以上就时zookeeper的配置,将上边的配置复制到其他两个节点就可以了,注意修改myid文件。

4. 启动zookeeper并查看状态

./bin/zookeeper-server-start.sh config/zookeeper.properties >> /apps/product/kafka_2.-2.1./logs/zookeeper.log &

netstat -nlpt | grep -E "2181|2888|3888"
tcp 10.20.88.200: 0.0.0.0:* LISTEN /java
tcp 0.0.0.0: 0.0.0.0:* LISTEN /java
tcp 10.100.67.62: 0.0.0.0:* LISTEN /java

kafka的配置部署:

1. 修改配置文件:server.properties(以下为本次的配置)

broker.id=
prot=
host.name=10.20.88.199
num.network.threads=
num.io.threads=
socket.send.buffer.bytes=
socket.receive.buffer.bytes=
socket.request.max.bytes=
log.dirs=/apps/product/kafka_2.-2.1./kafka_data
num.partitions=
offsets.topic.replication.factor=
transaction.state.log.replication.factor=
transaction.state.log.min.isr=
log.cleanup.policy=delete
log.retention.hours=
log.segment.bytes=
log.retention.check.interval.ms=
zookeeper.connect=10.20.88.199:,10.20.88.200:,10.20.88.201:
zookeeper.connection.timeout.ms=
log.cleaner.backoff.ms=
group.initial.rebalance.delay.ms=

2. 创建kafka所需要的数据目录

/apps/product/kafka_2.-2.1./kafka_data

3. kafka启动

./bin/kafka-server-start.sh config/server.properties >> /dev/null &

kafka的操作:

1. 创建一个topic

kafka-topics.sh --create --zookeeper 10.20.88.200: --replication-factor  --partitions  --topic test_wx
--partitions          # 4个分区
--replication-factor    # 3个副本
# 将分区被复制到三个broker上

2. 查看有哪些topic

bin/kafka-topics.sh --zookeeper 127.0.0.1: --list

3. 查看主题的详情

./bin/kafka-topics.sh --describe --zookeeper 10.20.88.199: --topic test_wx
Topic:test_wx PartitionCount: ReplicationFactor: Configs:
Topic: test_wx Partition: Leader: Replicas: ,, Isr: ,,
Topic: test_wx Partition: Leader: Replicas: ,, Isr: ,,
Topic: test_wx Partition: Leader: Replicas: ,, Isr: ,,
Topic: test_wx Partition: Leader: Replicas: ,, Isr: ,,

4. 输入输出测试

# 输入
./bin/kafka-console-producer.sh --topic test_wx --broker-list 10.20.88.199:
# 输出
./bin/kafka-console-consumer.sh --bootstrap-server 10.20.88.199: --topic test_wx --from-beginning

5.  修改操作

# 增加分区数
./bin/kafka-topics.sh --zookeeper zk_host:port --alter --topic my_topic_name --partitions
# 增加配置
./bin/kafka-topics.sh --zookeeper zk_host:port --alter --topic my_topic_name --config flush.messages=
# 删除配置
./bin/kafka-topics.sh --zookeeper zk_host:port --alter --topic my_topic_name --delete-config flush.messages

6. 删除topic

# 删除topic
目前删除操作默认情况下只是打上一个删除的标记,再重新启动kafka后才删除。如果需要立即删除,则需要在server.properties中配置:delete.topic.enable=true ./bin/kafka-topics.sh --zookeeper zk_host:port --delete --topic my_topic_name

filebeat中输出至kafka配置

filebeat:
prospectors:
-
paths:
- /var/log/named/namequery.log output.kafka:
hosts: ["10.20.88.199:9092","10.20.88.200:9092","10.20.88.201:9092"]
topic: 'dns_ct'
partition.round_robin:
reachable_only: false
required_acks:
compression: gzip
max_message_bytes:

logstash取kafka中的数据

input {
kafka {
bootstrap_servers => ["10.20.88.199:9092,10.20.88.200:9092,10.20.88.201:9092"]
topics => ["dns_ct"]
codec => "plain"
auto_offset_reset => "latest"
consumer_threads =>
decorate_events => true
type => "dns-ct"
}
} output {
file { path => "/apps/logs/output-dns" }
stdout { codec => rubydebug }
}

ELK+kafka日志处理的更多相关文章

  1. 离线部署ELK+kafka日志管理系统【转】

    转自 离线部署ELK+kafka日志管理系统 - xiaoxiaozhou - 51CTO技术博客http://xiaoxiaozhou.blog.51cto.com/4681537/1854684 ...

  2. ELK + kafka 日志方案

    概述 本文介绍使用ELK(elasticsearch.logstash.kibana) + kafka来搭建一个日志系统.主要演示使用spring aop进行日志收集,然后通过kafka将日志发送给l ...

  3. ELK+Kafka学习笔记之搭建ELK+Kafka日志收集系统集群

    0x00 概述 关于如何搭建ELK部分,请参考这篇文章,https://www.cnblogs.com/JetpropelledSnake/p/9893566.html. 该篇用户为非root,使用用 ...

  4. ELK+kafka日志收集分析系统

    环境: 服务器IP 软件 版本 192.168.0.156 zookeeper+kafka zk:3.4.14  kafka:2.11-2.2.0 192.168.0.42 zookeeper+kaf ...

  5. ELK+kafka日志收集

    一.服务器信息   版本 部署服务器 用途 备注 JDK jdk1.8.0_102 使用ELK5的服务器 Logstash 5.1.1 安装Tomcat的服务器 发送日志 Kafka降插件版本 Log ...

  6. .Net Core 商城微服务项目系列(十三):搭建Log4net+ELK+Kafka日志框架

    之前是使用NLog直接将日志发送到了ELK,本篇将会使用Docker搭建ELK和kafka,同时替换NLog为Log4net. 一.搭建kafka 1.拉取镜像 //下载zookeeper docke ...

  7. ELK+Kafka日志收集环境搭建

    1.搭建Elasticsearch环境并测试: (1)删除es的容器 (2)删除es的镜像 (3)宿主机调内存: 执行命令:sudo sysctl -w vm.max_map_count=655360 ...

  8. ELK+Kafka

    kafka:接收java程序投递的消息的日志队列 logstash:日志解析,格式化数据为json并输出到es中 elasticsearch:实时搜索搜索引擎,存储数据 kibana:基于es的数据可 ...

  9. ELK+Kafka集群日志分析系统

    ELK+Kafka集群分析系统部署 因为是自己本地写好的word文档复制进来的.格式有些出入还望体谅.如有错误请回复.谢谢! 一. 系统介绍 2 二. 版本说明 3 三. 服务部署 3 1) JDK部 ...

随机推荐

  1. 关于Mysql数据库的注意点

    1.注意属性为String的数据在JDBC操作语句中要加单引号 例子: conn = DriverManager.getConnection("jdbc:mysql://localhost: ...

  2. linux下常用命令备忘

    转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删 ...

  3. 浅谈windows.onload()与$(document).ready()

    浏览器加载完DOM后,会通过javascript为DOM元素添加事件,在javascript中,通常使用window.onload()方法. 在jquery中,则使用$(document).ready ...

  4. 电路中GND和GROUND、VCC,VDD,VEE,VSS

    电路解析:GND和GROUND.VCC,VDD,VEE,VSS 参考: http://www.elecfans.com/dianzichangshi/20160822432514.html 一.解释版 ...

  5. jquery-validate插件

    jQuery Validation 插件 优点:1.表单验证非常简单方便,并且提供了许多配置项目2.国际化,可以自定义提示信息 命令行安装 //初始化bowerbower init //使用bower ...

  6. linux单机限速工具

    wondershaper是国外人开发的一款在Linux内核下基于TC工具的对整块网卡的限度工具. http://lartc.org/wondershaper/ 安装wondershaper: [roo ...

  7. 分析一点python源代码

    偶然看了一下python的部分源代码,感觉python的作者写的代码真心很美,简洁美观,学习之. 举几个例子抛砖引玉一下: def removedirs(name): ""&quo ...

  8. outlook添加邮箱账户时,测试成功,下一步显示请求失败

    今天在给公司同事添加邮箱账户时,全部设置正常,测试也成功了,但是点击下一步时,出现了请求失败的提示.     1.  看到这个提示,我首先重启了一下outlook,发现进去添加还是不行  2.重启了电 ...

  9. "COM Surrogate 已停止工作"解决方案(windows7 64位及32位)

    根据图示步骤,将以下文件添加至“数据执行保护”的例外列表中. 64位:C:Windows\SysWOW64\dllhost.exe 32位:C:\Windows\System32\dllhost.ex ...

  10. 【js基础修炼之路】- 手把手教你实现bind

    手写bind前我们先回顾一下bind有哪些特性,以便更好的理解bind和实现bind. bind的特性 var obj = { a: 100, say(one, two) { console.log( ...