原理待补充:

kafka依赖于zookeeper集群。

都是基于java 由于源码安装jdk 未声明bin下java 在各自server配置文件中声明

JAVA_HOME=/usr/local/jdk1.8.0_241

引入kafka缓存日志之ZK搭建

之前架构
Filebeat(多台) -> Logstash(正则) -> Elasticsearch(入库) -> Kibana展现 架构优化,流行的架构
Filebeat(多台) -> Kafka(或Redis) -> Logstash(正则多台) -> Elasticsearch(入库) -> Kibana展现 Kafka服务器的搭建
Kafka依赖于Zookeeper
依赖于Java环境 Kafka依赖于Zookeeper
官方网站:https://zookeeper.apache.org/
下载ZK的二进制包
解压到对应目录完成安装/usr/local/zookeeper
JAVA_HOME="/usr/local/jdk1.8.0_241" Java环境安装
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
java -version 数据目录准备
mkdir -pv /usr/local/zookeeper/data zk配置
cd /usr/local/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg 更改配置/usr/local/zookeeper/conf/zoo.cfg
dataDir=/usr/local/zookeeper/data
autopurge.snapRetainCount=3
autopurge.purgeInterval=1 zk使用systemctl管理/usr/lib/systemd/system/zookeeper.service
[Unit]
Description=zookeeper
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
User=root
[Install]
WantedBy=multi-user.target 启动zk
systemctl enable zookeeper
systemctl restart zookeeper 启动zk集群查看状态
./zkServer.sh start
./zkServer.sh status

zk单实例

        引入kafka缓存日志之ZK集群搭建
集群配置/usr/local/zookeeper/conf/zoo.cfg
server.1=192.168.238.90:2888:3888
server.2=192.168.238.92:2888:3888
server.3=192.168.238.94:2888:3888 更改zk集群的id
/usr/local/zookeeper/data/myid
分别为1 2 3 zk使用systemctl管理/usr/lib/systemd/system/zookeeper.service
[Unit]
Description=zookeeper
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/zookeeper/bin/zkServer.sh start
User=root
[Install]
WantedBy=multi-user.target 启动zk
systemctl enable zookeeper
systemctl restart zookeeper 启动zk集群查看状态
./zkServer.sh start
./zkServer.sh status 验证zk集群,创建一个节点,验证
./zkCli.sh
create /sjg
create /sjg/sjg

zk集群部署

引入kafka缓存日志之Kafka集群搭建

Kafka下载地址
Kafka官网:http://kafka.apache.org/
下载Kafka的二进制包
解压到对应目录完成安装 Kafka下载
http://kafka.apache.org/downloads 修改Kafka配置server.properties
=0
listeners=PLAINTEXT://xxx:9092
log.retention.hours=1
zookeeper.connect=192.168.238.90:2181,192.168.238.92:2181,192.168.238.94:2181 Jvm内存修改/usr/local/kafka_2.12-2.5.0/bin/kafka-server-start.sh
KAFKA_HEAP_OPTS Kafka使用systemctl管理/usr/lib/systemd/system/kafka.service
[Unit]
Description=kafka
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/kafka_2.12-2.5.0/bin/kafka-server-start.sh /usr/local/kafka_2.12-2.5.0/config/server.properties
User=root
[Install]
WantedBy=multi-user.target 创建topic
/usr/local/kafka_2.12-2.5.0/bin/kafka-topics.sh --create --zookeeper 192.168.238.90:2181 --replication-factor 2 --partitions 1 --topic sjg
/usr/local/kafka_2.12-2.5.0/bin/kafka-topics.sh --describe --zookeeper 192.168.238.90:2181 --topic sjg Filebeat和Logstash间引入Kafka集群
架构演进
filebeat -> logstsash -> es
filebeat -> kafka(集群) -> logstash(多台) -> es Logstash读取Kafka
input {
kafka {
bootstrap_servers => "192.168.238.90:9092,192.168.238.92:9092"
topics => ["sjg"]
group_id => "sjggroup"
codec => "json"
}
} Filebeat日志发送到Kafka
filebeat.inputs:
- type: log
tail_files: true
backoff: "1s"
paths:
- /var/log/nginx/access.json.log
processors:
- drop_fields:
fields: ["agent","ecs","log","input"]
output:
kafka:
hosts: ["192.168.238.90:9092", "192.168.238.92:9092"]
topic: sjg Kafka查看队列信息
查看Group: ./kafka-consumer-groups.sh --bootstrap-server 172.17.166.217:9092 --list
查看队列:./kafka-consumer-groups.sh --bootstrap-server 172.17.166.217:9092 --group test2 --describe

kafka集群搭建测试

Filebeat和Logstash间引入Kafka集群多日志分析

Filebeat配置
filebeat.inputs:
- type: log
tail_files: true
backoff: "1s"
paths:
- /var/log/nginx/access.log
fields:
type: access
fields_under_root: true - type: log
tail_files: true
backoff: "1s"
paths:
- /var/log/secure
fields:
type: system
fields_under_root: true
processors:
- drop_fields:
fields: ["agent","ecs","log","input"]
output:
kafka:
hosts: ["192.168.238.90:9092", "192.168.238.92:9092"]
topic: sjg Logstash配置
input {
kafka {
bootstrap_servers => "192.168.238.90:9092,192.168.238.92:9092"
topics => ["sjg"]
group_id => "sjggroup"
codec => "json"
}
}
filter {
if [type] == "access" {
grok {
match => {
"message" => '%{IP:remote_addr} - (%{WORD:remote_user}|-) \[%{HTTPDATE:time_local}\] "%{WORD:method} %{NOTSPACE:request} HTTP/%{NUMBER}" %{NUMBER:status} %{NUMBER:body_bytes_sent} %{QS} %{QS:http_user_agent}'
}
remove_field => ["message"]
}
date {
match => ["time_local", "dd/MMM/yyyy:HH:mm:ss Z"]
target => "@timestamp"
}
}
else if [type] == "system" {
}
}
output {
if [type] == "access" {
elasticsearch {
hosts => ["http://192.168.238.90:9200", "http://192.168.238.92:9200"]
user => "elastic"
password => "sjgpwd"
index => "sjgaccess-%{+YYYY.MM.dd}"
}
}
else if [type] == "system" {
elasticsearch {
hosts => ["http://192.168.238.90:9200", "http://192.168.238.92:9200"]
user => "elastic"
password => "sjgpwd"
index => "sjgsystem-%{+YYYY.MM.dd}"
}
}
}

filebeat+kafka+logstash

建两个索引来说明用户管理
可设置某个索引只读 观察elastic角色
super角色 创建角色
给予某个索引的读权限read-sjgaccess,给某个索引只读权限read
创建用户sjg, 给kibana_user、read-sjgaccess 角色 删除索引测试
删除索引
给all权限就能删除索引

kibana用户管理

ELK集群之kafka(7)的更多相关文章

  1. 【拆分版】Docker-compose构建Zookeeper集群管理Kafka集群

    写在前边 在搭建Logstash多节点之前,想到就算先搭好Logstash启动会因为日志无法连接到Kafka Brokers而无限重试,所以这里先构建下Zookeeper集群管理的Kafka集群. 众 ...

  2. 通过docker搭建ELK集群

    单机ELK,另外两台服务器分别有一个elasticsearch节点,这样形成一个3节点的ES集群. 可以先尝试单独搭建es集群或单机ELK https://www.cnblogs.com/lz0925 ...

  3. Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用

    前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...

  4. Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用

    前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境,我们已经部署好了一个Spark的开发环境. 本文的目标是写一个Spark应用,并可以在集群中测试. ...

  5. Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境

    目标 配置一个spark standalone集群 + akka + kafka + scala的开发环境. 创建一个基于spark的scala工程,并在spark standalone的集群环境中运 ...

  6. Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka + Spark的应用

    前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...

  7. Centos7中ELK集群安装流程

    Centos7中ELK集群安装流程   说明:三个版本必须相同,这里安装5.1版. 一.安装Elasticsearch5.1   hostnamectl set-hostname elk vim /e ...

  8. ansible playbook部署ELK集群系统

    一.介绍 总共4台机器,分别为 192.168.1.99 192.168.1.100 192.168.1.210 192.168.1.211 服务所在机器为: redis:192.168.1.211 ...

  9. Kibana安装(图文详解)(多节点的ELK集群安装在一个节点就好)

    对于Kibana ,我们知道,是Elasticsearch/Logstash/Kibana的必不可少成员. 前提: Elasticsearch-2.4.3的下载(图文详解) Elasticsearch ...

随机推荐

  1. Nginx系列(6)- nginx: [error] CreateFile() "D:\nginx-1.20.1/logs/nginx.pid" failed (2: The system cannot find the file specified)

    背景 修改nginx配置文件nginx.conf后,想要重启nginx使配置生效.cmd进入nginx安装目录,输入命令: nginx -s reload 报错:nginx: [error] Crea ...

  2. 获取用户id的方法

    /** 获取ip */function getip() { if(getenv("HTTP_X_FORWARDED_FOR")!=''){ $cip = getenv(" ...

  3. 『GoLang』语法基础

    标识符 字母或下划线开头 之后只能出现数字.字母.下划线 大小写敏感 Go语言关键字 break default func interface select case defer go map str ...

  4. P7099-[yLOI2020]灼【数学期望,结论】

    正题 题目链接:https://www.luogu.com.cn/problem/P7099 题目大意 给出\(n\)个坐标轴上的点,\(q\)次询问从某点出发每次等概率向左或者向右一格求到达某个给出 ...

  5. P4199-万径人踪灭【FFT】

    正题 题目链接:https://www.luogu.com.cn/problem/P4199 题目大意 给出一个只包含\(a,b\)的字符串 求有多少个不连续的回文子序列(字母回文,位置对称) \(1 ...

  6. 使用VisualStudioCode开发Vue

    前言 本文主要介绍在VisualStudioCode下开发Vue. Nodejs.Npm.Vue的项目搭建参考下面文章. 用后台开发的逻辑理念学习VUE 在Windows下学习Nodejs.Npm和V ...

  7. java文件上传工具包

    java 文件上传工具包 主要有两个方法:单文件上传和多文件上传 @Slf4j public class UploadFileUtil { //上传单张图片 public String uploadP ...

  8. Android 开发进程 0.35 升级编译版本Android12

    Android12升级 工作需要升级到编译版本31 在这里记录一下遇到的问题. 错误:Manifest merger failedManifest merger failed 这个问题通常搜到的答案是 ...

  9. VUE自学日志02-应用与组件实例

    准备好了吗? 我们刚才简单介绍了 Vue 核心最基本的功能--本教程的其余部分将更加详细地涵盖这些功能以及其它高阶功能,所以请务必读完整个教程! 应用 & 组件实例 创建一个应用实例创建一个应 ...

  10. 题解 「2017 山东一轮集训 Day7」逆序对

    题目传送门 Description 给定 $ n, k $,请求出长度为 $ n $ 的逆序对数恰好为 $ k $ 的排列的个数.答案对 $ 10 ^ 9 + 7 $ 取模. 对于一个长度为 $ n ...