EFK 收集messages日志
- 原理介绍
- kafka
- 特性:
- 基本概念
- ZooKeeper
- ZooKeeper的基本运转流程:
- 环境准备
- 1. 关闭防火墙 selinux
- 2. 修改主机名称
- 3. 修改vim /etc/hosts文件
- 4. 安装jdk
- 5. 安装zookeeper
- 6. 改名移动
- 7. 修改配置文件
- 服务器编号,2888:通信端口 3888: 选举端口
- 7. 创建myid文件
- 8. 开启zk服务
- 9. 安装kafka
- 10. 进入目录编辑配置文件
- 11. 开启kafka 服务
- 12. 创建topic 【一台创建模拟生产,一台模拟消费】
- 13. 安装服务 【192.168.112.153端】
- 14. 查看列表
- 15. 安装elasticsearch
- 16. 安装服务 【192.168.112.154端】
- 17. 启动服务
- 18. 安装服务 【192.168.112.155端】
- 问题剖析
- 没有index 怎么办?【有filebeat端操作/153】
- 最后验证消费
- 查看索引的日志
原理介绍
kafka
一种高吞吐量的分布式发布订阅消息系统
特性:
- 数据是按照 一定 顺序持久化保存的,可以按需读取
- 高吞吐量【可支持每秒数十万的消息】
- 支持通过kafka服务器和消费机集群来分区消息
- 支持Hadoop并行数据加载
基本概念
topic: 主题
partition: 分区,一个topic会有若干个数据分区
offset: 偏移量,标识分区每条记录的位置
broker: 服务的节点
ZooKeeper
是一个开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务
ZooKeeper的基本运转流程:
- 选举Leader
- 同步数据
- 选举Leader过程中算法有很多,但要达到的选举标准是一致的。
- Leader要具有最高的执行ID,类似root权限
- 集群中大多数的机器得到响应并接受选出的Leader
环境准备
centos7【最小化,运行和核心数都为2】
192.168.112.153
jdk, zookeeper, kafka, filbeat, elasticsearch
192.168.112.154
jdk, zookeeper, kafka, filebeat,logstash
192.168.112.155
jdk, zookeeper, kafka, filbebeat,kibana
同步时间——命令
yum -y install ntpdate
ntpdate -u ntp.aliyun.com
1. 关闭防火墙 selinux
systemctl stop firewalld
setenforce 0
2. 修改主机名称
hostnamectl set-hostname kafka01
hostnamectl set-hostname kafka02
hostnamectl set-hostname kafka03
3. 修改vim /etc/hosts文件
192.168.112.153 kafka01
192.168.112.154 kafka02
192.168.112.155 kafka03
4. 安装jdk
rpm -ivh jdk-8u131-linux-x64_.rpm
5. 安装zookeeper
tar xzf zookeeper-3.4.14.tar.gz
6. 改名移动
mv zookeeper-3.4.14 /usr/local/zookeeper
进入目录,修改配置文件名
cd /usr/local/zookeeper/conf/
mv zoo_sample.cfg zoo.cfg
7. 修改配置文件
tickTime=2000 # zk服务器之间的心跳时间
initLimit=10 # zk连接失败的时间
syncLimit=5 # zk的同步通信时间
dataDir=/tmp/zookeeper #zk的数据目录
clientPort=2181 # zk的监听端口号
server.1=192.168.112.153:2888:3888
server.2=192.168.112.154:2888:3888
server.3=192.168.112.155:2888:3888
服务器编号,2888:通信端口 3888: 选举端口
7. 创建myid文件
mkdir /tmp/zookeeper
kafka01:
echo “1” > /tmp/zookeeper/myid
kafka02:
echo “2” > /tmp/zookeeper/myid
kafka03:
echo “3” > /tmp/zookeeper/myid
8. 开启zk服务
/usr/local/zookeeper/bin/zkServer.sh start
验证服务转态
/usr/local/zookeeper/bin/zkServer.sh status
Mode: follower
Mode: leader
端口验证
ss -nlpt|grep java 【2888/3888】
补充说明——
1、2181:对cline端提供服务
2、3888:选举leader使用
3、2888:集群内机器通讯使用
9. 安装kafka
tar xf kafka_2.11-2.2.0.tgz
移动/重命名
mv kafka_2.11-2.2.0 /usr/local/kafka
10. 进入目录编辑配置文件
cd /usr/local/kafka/ config/
vim server.properties
kafka01:
broker.id=0
advertised.listeners=PLAINTEXT://kafka01:9092
zookeeper.connect=192.168.112.153:2181,192.168.112.154:2181,192.168.112.155:2181
kafka02:
broker.id=1
advertised.listeners=PLAINTEXT://kafka02:9092
zookeeper.connect=192.168.112.153:2181,192.168.112.154:2181,192.168.112.155:2181
kafka03:
broker.id=2
advertised.listeners=PLAINTEXT://kafka03:9092
zookeeper.connect=192.168.112.153:2181,192.168.112.154:2181,192.168.112.155:2181
11. 开启kafka 服务
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
验证
ss -nlpt | grep 9092
12. 创建topic 【一台创建模拟生产,一台模拟消费】
/usr/local/kafka/bin/kafka-topics.sh --create --zookeeper 192.168.112.153:2181 --replication-factor 2 --partitions 3 --topic wg007
查看当前的topic
/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper 192.168.112.136:2181
模拟生产者
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list 192.168.1.7:9092 --topic wg007
模拟消费者
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.112.153:9092 --topic wg007 --from-beginning
13. 安装服务 【192.168.112.153端】
rpm -ivh filebeat-6.8.12-x86_64.rpm
编辑配置文件
cd /etc/filebeat/
mv filebeat.yml filebeat.yml.bat
vim filebeat.yml
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
output.kafka:
enabled: true
hosts: ["192.168.112.153:9092","192.168.112.154:9092","192.168.112.155:9092"]
topic: msg
启动服务
systemctl start filebeat
14. 查看列表
/usr/local/kafka/bin/kafka-topics.sh--list--zookeeper192.168.112.153:2181
__consumer_offsets
msg
wg007
15. 安装elasticsearch
rpm -ivh elasticsearch-6.6.2.rpm
修改配置文件,启动服务
systemctl start elasticsearch
验证端口
ss -nlpt |grep java 【9200/9300】
16. 安装服务 【192.168.112.154端】
rpm -ivh logstash-6.6.0.rpm
编辑配置文件
vim /etc/logstash/conf.d/msg.conf
input{
kafka{
bootstrap_servers => ["192.168.112.153:9092,192.168.112.154:9092,192.168.112.155:9092 "]
group_id => "logstash"
topics => "msg"
consumer_threads => 5
}
}
output{
elasticsearch{
hosts => "192.168.112.153:9200"
index => "msg_log-%{+YYYY.MM.dd}"
}
17. 启动服务
systemctl start logstash
验证端口
ss -nlpt | grep 9600
18. 安装服务 【192.168.112.155端】
rpm -ivh kibana-6.6.2-x86_64.rpm
编辑配置文件
vim /etc/kibana/kibana.yml
第二行端口 ——5601
第七行本机ip ——192.168.112.155
第二十七行es的ip ——192.168.112.153
启动服务
systemctl start kibana
验证端口
ss -nlpt | grep 5601
问题剖析
没有index 怎么办?【有filebeat端操作/153】
1: chmod 777
2: echo “test” >> /var/log/messages
最后验证消费
/usr/local/kafaka/bin/kafka-console-consumer.sh --bootstrap-server 192.168.112.153:9092 --topic msg --from-beginning
查看索引的日志
tailf /var/log/filebeat/filebeat