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的基本运转流程:

  1. 选举Leader
  2. 同步数据
  3. 选举Leader过程中算法有很多,但要达到的选举标准是一致的。
  4. Leader要具有最高的执行ID,类似root权限
  5. 集群中大多数的机器得到响应并接受选出的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】

kafka常见问题_zookeeper


补充说明——

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

kafka常见问题_elasticsearch_02

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】

kafka常见问题_kafka_03

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

kafka常见问题_kafka_04

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

kafka常见问题_zookeeper_05

问题剖析

没有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

kafka常见问题_elk_06

kafka常见问题_elk_07