ELK系列传送门
ELK系列(一) ElasticSearch 8.9.2集群搭建
ELK数据流规划
ELK接入nginx-acces日志数据流规划
数据流向
filebeat -------> kafka ----> logstash ----> ES --------> kibana
收集 mq 处理日志 存储、搜索 展示、分析
|
|
elastalert2---钉钉告警
ES集群搭建已完成 可见传送门ELK系列(一) ElasticSearch 8.9.2集群搭建
主机规划
主机名 内网地址 搭建程序
ELK8-1 192.168.0.1 elasticsearch+kafka+zookeeper
ELK8-2 192.168.0.2 elasticsearch+kafka+zookeeper
ELK8-3 192.168.0.3 elasticsearch+kafka+zookeeper
logstash1 192.168.0.4 kibana+logstash
ES集群已搭建完成 接下来搭建kafka集群完善ELK8-1 ELK8-2 ELK8-3规划
Kafka集群搭建
所需操作主机:ELK8-1 ELK8-2 ELK8-3
解压kafka_2.13-3.4.0.tgz到/usr/local
tar xf kafka_2.13-3.4.0.tgz -C /usr/local/
kafka本身无法组成集群依赖于ZK集群的组成
Kafka官网提供的tar包中,已经包含了ZK,这里不再额下载ZK程序
vim /usr/local/kafka_2.13-3.4.0/config/zookeeper.properties
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181 #2181端口 ZooKeeper 服务器的客户端访问端口
tickTime=2000
initLimit=20
syncLimit=10
server.1=192.168.0.1:2888:3888 #2888 ZooKeeper服务器之间用于Leader选举 3888备用
server.2=192.168.0.2:2888:3888
server.3=192.168.0.3:2888:3888
ZK目录配置
mkdir -p /data/zookeeper/{data,logs}
mkdir -p /data/kafka/{data,logs}
ZK节点通过myid标识 保持唯一性
echo 1 > /data/zookeeper/data/myid #ELK8-1
echo 2 > /data/zookeeper/data/myid #ELK8-2
echo 3 > /data/zookeeper/data/myid #ELK8-3
以ELK8-1配置为例
vim /usr/local/kafka_2.13-3.4.0/config/server.properties
broker.id=1 #与zk的myid保持一致
listeners=PLAINTEXT://0.0.0.0:9092 #暴露公网9092端口用于后续接收filebeat传输日志
advertised.listeners=PLAINTEXT://公网ip:9092
advertised.host.name=公网ip
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
log.dirs=/data/kafka/logs
num.partitions=6
num.recovery.threads.per.data.dir=1
offsets.topic.replication.factor=2
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
log.retention.hours=168
log.segment.bytes=536870912
log.retention.check.interval.ms=300000
zookeeper.connect=192.168.0.1:2181,192.168.0.2:2181,192.168.0.3:2181 #zk节点
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
ELK8-1 ELK8-2 ELK8-3启动zk集群再启动kafka
此处采用nohup 后台挂起启动zk和kafka 并指定日志输出
nohup bin/zookeeper-server-start.sh config/zookeeper.properties >/data/zookeeper/logs/zookeeper.log 2>&1 &
nohup bin/kafka-server-start.sh config/server.properties >/data/kafka/logs/kafka.log 2>&1 &
kafka集群功能测试
查看topics
[root@ELK8-1 kafka_2.13-3.4.0]# ./bin/kafka-topics.sh --bootstrap-server 192.168.0.2:9092 --list
__consumer_offsets
bournesu.cc
创建topics
./bin/kafka-topics.sh --bootstrap-server 192.168.0.1:9092 --create --replication-factor 1 --partitions 1 --topic syslog_sxdx
模拟生产者 stdin标准输入
bin/kafka-console-producer.sh --broker-list 192.168.0.1:9092 --topic syslog_sxdx
模拟消费者 接收生产者的信息 实时显示输出
./bin/kafka-console-consumer.sh --bootstrap-server 192.168.0.3:9092 --topic syslog_sxdx --from-beginning