此次使用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. PHP的htmlspecialchars、strip_tags、addslashes解释

    第一个函数:strip_tags,去掉 HTML 及 PHP 的标记 注意:本函数可去掉字串中包含的任何 HTML 及 PHP 的标记字串.若是字串的 HTML 及 PHP 标签原来就有错,例如少了大 ...

  2. Tomcat启动时报错:“ Error starting static Resources”问题解决

    部署测试环境的时候,需要用到Tomcat.故在Linux上部署了Tomcat,并将开发提供的工程包部署到Tomcat的webapps目录下,启动Tomcat,部署成功.第二天修改工程配置文件时,发现w ...

  3. HDU 4612——Warm up——————【边双连通分量、树的直径】

    Warm up Time Limit:5000MS     Memory Limit:65535KB     64bit IO Format:%I64d & %I64u Submit Stat ...

  4. JQ学习总结之选择器

    一.window.onload 和 $(document).ready()区别 1)window.onload   执行时机:必须等待网页中所有的内容加载完毕后(包括图片)才能执行. 编写个数:不能同 ...

  5. easyui combobox with checkbox item

    $('#cc').combobox({ url:'combobox_data1.json', method:'get', valueField:'id', textField:'text', pane ...

  6. poj 1155 输入输出问题

    http://acm.hust.edu.cn/vjudge/problem/16417 重做了一遍poj 1155 题目大意:给定一棵树,1为根结点表示电视台,有m个叶子节点表示客户,有n-m-1个中 ...

  7. 使用axios请求发送数据

    之前一直没有用成功,今天看了一些博客,学会了使用axios插件 1.首先就是下载依赖啦 2.main.js import axios from 'axios'Vue.prototype.$axios ...

  8. <Android开源库 ~ 1> GitHub Android Libraries Top 100 简介

    转载自GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitH ...

  9. Android 接入支付宝支付实现

    接上篇android接入微信支付文章,这篇我们带你来接入支付宝支付服务 简介 首先要说明的是个人感觉接入支付宝比微信简单多了,很轻松的,所以同学们不要紧张~ 当然还是老规矩啦,上来肯定的贴上官网地址, ...

  10. Android - 页面返回上一页面的三种方式

    今年刚刚跳槽到了新公司,也开始转型做Android,由此开始Android的学习历程. 最近在解很多UI的bug,在解bug过程中,总结了在UI的实现过程中,页面返回上一页面的几种实现方式. 一. 自 ...