ELK、Kafka

filebeat轻量级日志采集器

ansibe剧本:实现es的批量部署

ELK集群

ELK、Kafka_第1张图片

kibana安装filebeat

上传filebeat

解压,改名

ELK、Kafka_第2张图片

vi filebeat.yml

ELK、Kafka_第3张图片

ELK、Kafka_第4张图片

修改配置

ELK、Kafka_第5张图片

ELK、Kafka_第6张图片

ELK、Kafka_第7张图片

修改

ELK、Kafka_第8张图片

ELK、Kafka_第9张图片

添加

ELK、Kafka_第10张图片

ELK、Kafka_第11张图片

注意:不加*会出不来但不报错

运行

案例:搜集nginx的日志:metricbeat(要搜集哪台服务器的日志就安装在哪,这台有nginx)

kibana服务器

上传meticbeat

参考官方文档

ELK、Kafka_第12张图片

vi /etc/metricbeat/metricbeat.ymlELK、Kafka_第13张图片ELK、Kafka_第14张图片

ls /etc/metricbeat/modules.d

参考官方文档的下一步

vi /etc/metricbeat/modules.d/nginx.ymlELK、Kafka_第15张图片

vi /etc/nginx/nginx.conf

ELK、Kafka_第16张图片

nginx -t

nginx -s reload

官方文档的下一步

浏览器访问:kibana的ip地址:xingdian

根据官方文档启动metricbeat

cd /var/log/metricbeat

cat metricbeat

Kafka

Kafka的特性:

- 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consumer操作。
- 可扩展性:kafka集群支持热扩展
- 可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失
- 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败)
- 高并发:支持数千个客户端同时读写

ELK、Kafka_第17张图片
Kafka部署

本地解析

scp ....  kafaka-2:/etc/hosts

kafka-1,kafka-2,kafka-3

三台kafka节点:

安装jdk

解压

vi /etc/profile

source /etc/profile

java -version

上传kafka安装包

安装kafka(解压即安装)

将配置文件中的内容都添加为注释

修改配置文件

vi /usr/local/kafka/config/zookeeper.properties

dataDir=/opt/data/zookeeper/data
dataLogDir=/opt/data/zookeeper/logs
clientPort=2181
tickTime=2000
initLimit=20
syncLimit=10
server.1=kafka-1:2888:3888   //kafka集群IP:Port
server.2=kafka-2:2888:3888        
 

创建data、log目录
mkdir -p /opt/data/zookeeper/{data,logs}
创建myid文件

ELK、Kafka_第18张图片


 

4.配置kafka

vi /usr/local/kafka/config/server.properties
broker.id=1
listeners=PLAINTEXT://kafka-1:9092
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=/opt/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=kafka-1:2181,kafka-2:2181   //改
zookeeper.connection.timeout.ms=6000
group.initial.rebalance.delay.ms=0
 

创建log目录 

先运行zookeeper(两个节点都运行)

cd  /usr/local/kafka

ELK、Kafka_第19张图片

安装nc命令

yum provides nc

yum -y install 

验证:

echo conf | nc 127.0.0.1 2181

echo stat | nc 127.0.0.1 2181  //返回zookeeper的相关信息

启动kafka(两个节点都启动)

ss -antpl : 可以看到端口9092和2181

以上是已经创建好的集群框架

ELK、Kafka_第20张图片

验证kafka:

创建ELK、Kafka_第21张图片

在kafka第3个节点(任何一个终端)查看

ELK、Kafka_第22张图片

节点1模拟生产者产生数据:给话题test写入数据

生产者产生数据

输入hello

节点3消费者获取数据

filebeat部署

cd /etc/filebeat

配置

ELK、Kafka_第23张图片

ELK、Kafka_第24张图片

关掉nginx模块

kafka端:创建话题

排错:查看已有话题

logstash端:创建输入输出

vi /opt/kafak.conf

排错:删掉consumer消费者线程数、类型、auto

           es-1改为ip地址

ELK、Kafka_第25张图片

排错:pkill -9 杀掉正在运行的

先启动logstash,再启动filebeat

ELK、Kafka_第26张图片

排错:更换logstash版本

           在filebeat上加上kafka本地解析          ELK、Kafka_第27张图片

           清理环境:cd /usr/local/logstash/data

                             ll -a

                             rm -rf .lock

然后,运行filebeat

执行filebeat.yml文件

./filebeat -c filebeat.yml

刷新elasticsearch插件出现cloud-xingdain的索引就成功运行,并传入数据成功

kibana的web界面,创建索引cloud-xingdain 

为什么用filebeat作为搜集日志,而不选logstash?

logstash占用大量资源,而filebeat是轻量级

logstash数据过滤----grok插件

官网:elasti.co----->文档

案例:

停掉logstash和filebeat

filebeat端:

kafka端:创建话题

回到filebeat

vi filebeat.yml

ELK、Kafka_第28张图片

ELK、Kafka_第29张图片

vi /opt/grok.conf

ELK、Kafka_第30张图片

运行logstash:

filebeat端:

启动filebeat

模拟数据

el插件中刷新,出现grok的索引

查看日志:

模拟数据

kibana的web界面,创建索引grok

查看10.9.12.222的访问量

ELK、Kafka_第31张图片

你可能感兴趣的:(kafka)