filebeat中的filebeat.yml实现的配置信息要素
filebeat.prospectors #用于定义数据原型,检测日志或是发现日志
- input_type: log #指定数据的输入类型,默认为log,另外还可以指定stdin
paths: #自定需要监控的日志文件路径;可以是完整的日志路径也可以是模糊的匹配格式
- /var/log/messages #指定系统日志位置
fields: #定义日志来源,可以添加自定义字段,其实就是定义Kafka消息队列的topic主题名称,如果kafka消息队列中没有该名称,会自动生成
log_topic: test
paths: #与上述一样定义需要监控的日志文件路径,不够这次是定义apache-web服务的日志
- /etc/httpd/logs/
fields: #定义日志来源,生成kafka消息队列topic主题
log_topic: webapache
processors: #这个地方需要注意,此配置是将日志输出格式过滤掉,一般情况下,一些无用的日志字段我们可以删除,只看关键性的信息
- drop_fields:
fields: ["beat", "input_type", "source", "offset",]
name: "192.168.37.134" #设置filebeat收集日志中对应的主机名称,,如果设置为空,这使用该机器的主机名称,这里这是本地IP,便于区分多台主机的日志信息
output.kafka: #多种输出类型,可支持想kafka,logstash,elasticsearch输出日志信,在这里是将日志信息输出到Kafka中,
enabled: true 启动该模块
hosts: ["192.168.37.134:9092", "192.168.37.135:9092", "192.168.37.136:9092"] #指定输出数据到kafka集群上,地址与端口号想对应
version: "0.10"
topic: '%{[fields][log_topic]}' #指定要发送数据到kafka集群的哪个topic,与上述的"fields: log_topic:"相对应,这是6.x的配置
partition.round_robin: #开启kafka的partition分区
reachable_only: true
worker: 2
required_acks: 1
compression: gzip #压缩格式
max_message_bytes: 10000000 #压缩格式字节大小
logging.level: debug #日志类型为debug
0824号:kafka的安装需要注册中心zookeeper
1 解压zookeeper-3.4.13.tar.gz
tar -zxvf zoopeeker-3.4.13.tar.gz
2 进入解压包的conf目录下,修改zoo.sample.cfg文件名为zoo.cfg
mv zoo.sample.cfg zoo.cfg
3 将配置文件的conf/zoo.server.cfg改名为: zoo.cfg,然后编辑vim zoo.cfg
修改 dataDir=/自己定义的文件目录
集群配置的话需要新增节点的ip加端口
server.1 = ip+port
server.2 = ip+port
server.3 = ip+port
然后到自己的定义的文件目录下新建myid文件,在里面修改内容为 1
cd /自己定义的文件目录
vim myid
i 1/2/3(三台机器分别填写1,2,3) esc : wq 保存退出
4 启动zookeeper
进入解压的文件的bin目录
./zkServer.sh start => 启动zookeeper
./zkServer.sh stop => 停止zookeeper
客户端登陆zookeeper进行节点的增删改查
./zkCli.sh -timeout 500 -server 127.0.0.1:2181
查询节点:ls /brokers/ids
删除节点:delete /brokers/ids/1
创建: create /node1
集群配置的情况就是多台节点按上述步骤依次修改即可
Kafka的安装配置
1 解压进入目录
tar -xzf kafka_2.11-2.0.0.tgz
cd kafka_2.11-2.0.0
2 进入config中修改server.config
修改:
broker.id = 1
delete.topic.enable=false
auto.create.topic.enable=true
group.initial.rebalance.delay.ms=0
listeners=PLAINTEXT://ip:9092
zookeeper.connect=单机或则集群zookeeper地址
zookeeper.connnection.timeout.ms=6000
3 启动kafka
./kafka-server-start.sh config/server.properties
4 创建topic
./kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
5 验证topic是否已经创建
./kafka-topics.sh -list -zookeeper localhost:2181
- 删除topic
bin/kafka-topics.sh --zookeeper hadoop102:2181 \
--delete --topic first
需要 server.properties 中设置 delete.topic.enable=true 否则只是标记删除或者直接重启
- 发送消息
bin/kafka-console-producer.sh \
--broker-list hadoop102:9092 --topic first
>hello world
>hello kafka
- 消费消息
bin/kafka-console-consumer.sh \
--zookeeper hadoop102:2181 --from-beginning --topic first
–from-beginning:会把 first 主题中以往所有的数据都读取出来。根据业务场景选择是否增加该配置。
- 查看某个topic消息的情况
bin/kafka-topics.sh --zookeeper hadoop102:2181 \
--describe --topic first
Producer数据的写入流程:
1)producer 先从 zookeeper 的 "/brokers/…/state"节点找到该 partition 的
leader
2)producer 将消息发送给该 leader
3)leader 将消息写入本地 log
4)followers 从 leader pull 消息,写入本地 log 后向 leader 发送 ACK
5)leader 收到所有 ISR 中的 replication 的 ACK 后,增加 HW(high watermark,最后commit 的 offset)并向 producer 发送 ACK
elasticsearch安装部署
1 解压包 tar -zxvf elasticsearch-6.8.5.tar.gz
2 进入对应的解压文件目录,修改配置文件
cd /conf
vim elasticsearch.yml
path.data: /自定义目录
path.logs: /自定义目录
可配置密码修改:
xpack.security.enable: true
xpack.security.transport.ssl.enable: true
重置密码:./bin/elasticsearch-setup-passwords interactive 自定义密码
启动 进入对应的bin目录下:
./elasticsearch -d => 后台启动