filebeat,kafka,clickhouse,ClickVisual搭建轻量级日志平台
创始人
2024-11-12 01:09:01
0

springboot集成链路追踪

  • springboot版本
 	org.springframework.boot 	spring-boot-starter-parent 	2.6.3 	    	 		org.springframework.boot 		spring-boot-starter-web 	  
  • 添加链路追踪sleuth依赖
    链路追踪有很多优秀的中间件,比如skywalking等,但是skywalking需要部署oap服务生成追踪id,为了减少架构复杂度,决定采用sleuth。
 	org.springframework.cloud 	spring-cloud-starter-sleuth 	3.1.1  

想进一步减少架构复杂度,也可以自定义生成traceId,可以参考之前的文章实现
https://blog.csdn.net/qq_41633199/article/details/127482748?spm=1001.2014.3001.5502

kafka2.7.1设置

  • windows下载kafka
    https://archive.apache.org/dist/kafka/2.7.1/kafka_2.13-2.7.1.tgz
  • zk设置
    • 修改数据存储路径
      在这里插入图片描述在这里插入图片描述
    • 启动zk
      kafka安装目录执行以下命令
bin\windows\zookeeper-server-start.bat config\zookeeper.properties 
  • kafka设置
    • 配置数据存储
      在这里插入图片描述在这里插入图片描述
    • 配置zk连接
      在这里插入图片描述
    • 启动
## 启动kafka bin\windows\kafka-server-start.bat config\server.properties ## 创建主题 bin\windows\kafka-topics.bat --zookeeper localhost:2181 --create --replication-factor 1 --partitions 1 --topic app_log ## 查看主题 bin\windows\kafka-topics.bat --list --zookeeper localhost:2181 # 生产消息 bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic app_log # 消息消费 bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic app_log --group app_log --from-beginning 

应用日志logback配置

由于java异常日志输出堆栈的换行符会影响kafka engine日志解析(会当成多条日志分别解析导致报错),因此在FILE_FORMAT配置输出到日志文件的时候去除换行符。

                                 INFO                                            ${LOG_HOME}/info/bill_log.%d{yyyy-MM-dd_HH}.log                          168             true                               ${FILE_FORMAT}                                                               ${CONSOLE_FORMAT}                                                                         

filebeat7.16.2收集应用日志推送kafka

  • 下载
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.16.2-windows-x86_64.zip 
  • 修改配置
    kafka配置官网参考地址
https://www.elastic.co/guide/en/beats/filebeat/7.16/kafka-output.html 

在这里插入图片描述
在这里插入图片描述

设置传输kafka
在这里插入图片描述确保output只有一个

  • 启动filebeat
    在安装目录执行启动命令
filebeat -e -c filebeat.yml 

访问应用查看kafka消费效果
在这里插入图片描述

在这里插入图片描述

clickhouse设置

  • 宿主机配置host
172.27.x.x host.docker.internal 

由于clickhouse容器需访问本机kafka,需要解决通信问题

  • 启动
docker run -d --network=bridge -p 8123:8123 -p 9000:9000 -p 9009:9009 --name clickhouse-svr --add-host="host.docker.internal:172.27.xx.x" clickhouse/clickhouse-server:24.4.3.25 
  • 进入容器,执行命令设置分隔符保存到users.xml配置文件,以便重启容器后也能生效
    这里的设置主要取决于日志格式,我的项目是|号作为字段分隔符
set format_csv_delimiter = '|'; 
  • 连接clickhouse,设置允许查询引擎表
clickhouse-client --stream_like_engine_allow_direct_select 1 
  • 选择数据库
use log; 
  • 创建kafka引擎表
CREATE TABLE LOG_KAFKA (     time DateTime64(3, 'Asia/Shanghai'), 	level String, 	trace_id String, 	thread String, 	logger String, 	method String, 	msg String ) ENGINE = Kafka() SETTINGS kafka_broker_list = 'host.docker.internal:9092', 	kafka_topic_list = 'app_log', 	kafka_group_name = 'app_log', 	kafka_num_consumers = 1, 	kafka_format = 'CSV', 	format_csv_delimiter  = '|'; 
  • 创建分区日志表,存储日志消息
create table APP_LOG( 	time DateTime64(3, 'Asia/Shanghai'), 	level String, 	trace_id String, 	thread String, 	logger String, 	method String, 	msg String ) ENGINE = MergeTree() PARTITION BY toYYYYMM(time) ORDER BY time; ## 创建Metrialized View 抓取数据到日志表 CREATE MATERIALIZED VIEW vw_app_log TO APP_LOG AS SELECT time,level,trace_id,thread,logger,method,msg FROM LOG_KAFKA; 
  • 访问应用生产日志消息并查看clickhouse日志
    在这里插入图片描述

配置ClickVisual

  • windows docker安装
    官方文档地址
    https://clickvisual.net/zh/clickvisual/02install/docker-installation.html
    拉取镜像
    https://hub.docker.com/r/clickvisual/clickvisual/tags

  • 下载配置文件到本地
    https://github.com/clickvisual/clickvisual/tree/master/data/all-in-one/clickvisual/config

  • 配置mysq数据库连接
    在这里插入图片描述在这里插入图片描述*允许mysql用户通过ip连接
    在这里插入图片描述

  • 指定数据卷创建容器

docker run --name clickvisual -e EGO_CONFIG_PATH=/clickvisual/config/docker.toml -e EGO_LOG_WRITER=stderr -p 19001:19001 -v D:\download\clickvisual\config:/clickvisual/config -d clickvisual/clickvisual:latest 
  • 配置数据连接
    用初始账号与密码clickvisual/clickvisual登录管理台http://localhost:19001
    点击初始化数据库后进入日志库配置页
    在这里插入图片描述clickhouse数据源连接格式clickhouse://username:password@host1:9000,host2:9000/database?dial_timeout=200ms&max_execution_time=60,因为我未给clickhouse设置权限认证,因此username:password@可以省略
    在这里插入图片描述创建好实例后回到日志页面,选择刚创建的实例右键接入已有日志库,配置日志数据表
    在这里插入图片描述

查看效果

访问前面写的空指针异常接口,再刷新ClickVisual页面
在这里插入图片描述
通过链路id查询效果
在这里插入图片描述

相关内容

热门资讯

6分钟细节!大连乐达麻将可以设... 6分钟细节!大连乐达麻将可以设置胜率吗,潮汕掌上娱怎么开挂(其实一直都是有挂);1.大连乐达麻将可以...
玩家必用!衢州都莱双扣有没有外... 玩家必用!衢州都莱双扣有没有外挂,八闽十三水有辅助挂吗,雀神广东麻将系统调好(详细教程);1、首先打...
玩家必备教程!wepower使... 玩家必备教程!wepower使用说明书,胡乐麻将有插件吗,必胜教程(有挂教程);亲,关键说明,胡乐麻...
二分钟辅助挂!堆金城棋牌有挂吗... 二分钟辅助挂!堆金城棋牌有挂吗,中至吉安小程序总是真的有挂,辅助教程(有挂详情)堆金城棋牌有挂吗辅助...
二分钟细节!哥哥打大a牌能变好... 二分钟细节!哥哥打大a牌能变好吗,黄山麻将手机有挂么(其实者的有挂);在进入哥哥打大a牌能变好吗辅助...
每日必备!胡乐外挂怎么使用,南... 每日必备!胡乐外挂怎么使用,南通长牌app有没有挂,雀神小程序好牌几率挂(详细教程)1、游戏颠覆性的...
必备攻略!线上德州ai机器人,... 必备攻略!线上德州ai机器人,凡乐湖北麻将有假吗,透视教程(有挂解密)1、金币登录送、破产送、升级送...
七分钟辅助挂!中至510k拿奖... 七分钟辅助挂!中至510k拿奖攻略,开心跑胡子好像真的有挂,2025教程(有挂介绍)该软件可以轻松地...
一分钟解密!大盘山棋牌有没有挂... 一分钟解密!大盘山棋牌有没有挂,同城游跑胡子辅助工具(原来一直是有挂)1)同城游跑胡子辅助工具辅助挂...
科技新动态!aapoker有外... 科技新动态!aapoker有外挂,博雅红河棋牌有没有技巧,靠谱教程(有挂插件)1、任何博雅红河棋牌有...