前言
微服务情况下,通常会有一台日志服务器,专门存放日志,我们在查看日志的时候,通过指定的目录加上项目名称为路径,就可以找到我们想找的目录。
环境
- centos7
- kafak
- logstash
- demo项目
步骤
安装及配置logstash
- 从官网上下载l
ogstash
,https://artifacts.elastic.co/downloads/logstash/logstash-7.5.2.tar.gz - 解压,使用
tar -xzvf [file]
文件解压 - 创建
logstash
的配置文件目录
mkdir -p /etc/logstash/
cd /etc/logstash
mkdir conf.d
touch logstash.yml
cd conf.d
touch kafka.yml
配置logstash.yml
文件
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
配置kafka.yml
文件
input {
kafka {
bootstrap_servers => "192.168.56.124:9092"
topics_pattern => ".*"
group_id => "logstash2_servivce"
consumer_threads => 10
auto_offset_reset => "earliest"
decorate_events => "true"
}
}
filter {
mutate {
remove_field => ["@version", "@timestamp"]
}
}
output {
file {
path => "/data/log/kafka/%{[@metadata][kafka][topic]}/%{[@metadata][kafka][topic]}.log"
codec => line {
format => "%{message}"}
}
}
- 启动
logstash
/root/elk-a/logstash-7.5.2/bin/logstash --path.settings /etc/logstash/ -f /etc/logstash/conf.d/
安装kafka
- 这是使用
docker-compose.yml
部署,这里只需要替换下ip
即可。
version: '2'
services:
zookeeper:
image: wurstmeister/zookeeper ## 镜像
ports:
- "2181:2181" ## 对外暴露的端口号
kafka:
image: wurstmeister/kafka ## 镜像
volumes:
- /etc/localtime:/etc/localtime ## 挂载位置(kafka镜像和宿主机器之间时间保持一直)
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.56.124 ## 修改:宿主机IP
KAFKA_ZOOKEEPER_CONNECT: 192.168.56.124:2181 ## 卡夫卡运行是基于zookeeper的
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://192.168.56.124:9092
kafka-manager:
image: sheepkiller/kafka-manager ## 镜像:开源的web管理kafka集群的界面
environment:
ZK_HOSTS: 192.168.56.124 ## 修改:宿主机IP
ports:
- "9000:9000"
- 启动
docker-compose up -d
搭建java服务
这里可以直接查看源码, demo项目
测试
- 可以看到已经生成日志文件
- 访问
http://localhost:8080/hello?name=aa
3. 查看生成的日志文件,日志生成成功。