做视频网站都需要什么,互联网招聘网站排行,最新新闻播报,专门做进口零食的网站文章目录 Loki下载Loki下载安装Loki添加Loki数据源springboot日志推送 Loki下载
下载地址#xff1a;https://github.com/grafana/loki/releases/ 找到loki-windows-amd64.exe.zip点击开始下载#xff0c;我这里下载的2.9.9版本
Loki下载
下载地址#xff1a;https://gr… 文章目录 Loki下载Loki下载安装Loki添加Loki数据源springboot日志推送 Loki下载
下载地址https://github.com/grafana/loki/releases/ 找到loki-windows-amd64.exe.zip点击开始下载我这里下载的2.9.9版本
Loki下载
下载地址https://grafana.com/grafana/download?platformwindows 下载grafana-enterprise-11.1.0.windows-amd64.zip
安装Loki
将下载的loki-windows-amd64.exe.zip压缩包解压得到loki-windows-amd64.exe文件进入文件夹创建config文件夹在config文件夹下创建配置文件loki-config.yaml 注意wal文件夹是运行Loki后自动生成的
server:# Loki 服务监听的 HTTP 端口号http_listen_port: 3100schema_config:configs:- from: 2024-07-01# 使用 BoltDB 作为索引存储store: boltdb# 使用文件系统作为对象存储object_store: filesystem# 使用 v11 版本的 schemaschema: v11index:# 索引前缀prefix: index_# 索引周期为 24 小时period: 24hingester:lifecycler:# 设置本地 IP 地址address: 127.0.0.1ring:kvstore:# 使用内存作为 kvstorestore: inmemory# 复制因子设置为 1replication_factor: 1# 生命周期结束后的休眠时间final_sleep: 0s# chunk 的空闲期为 5 分钟chunk_idle_period: 5m# chunk 的保留期为 30 秒chunk_retain_period: 30sstorage_config:boltdb:# BoltDB 的存储路径directory: F:/work/Loki/store/indexfilesystem:# 文件系统的存储路径directory: F:/work/Loki/store/chunkslimits_config:# 不强制执行指标名称enforce_metric_name: false# 拒绝旧样本reject_old_samples: true# 最大拒绝旧样本的年龄为 168 小时reject_old_samples_max_age: 168h# 每个用户每秒的采样率限制为 32 MBingestion_rate_mb: 32# 每个用户允许的采样突发大小为 64 MBingestion_burst_size_mb: 64chunk_store_config:# 最大可查询历史日期为 28 天672 小时这个时间必须是 schema_config 中 period 的倍数否则会报错max_look_back_period: 672htable_manager:# 启用表的保留期删除功能retention_deletes_enabled: true# 表的保留期为 28 天672 小时retention_period: 672h
运行Loki服务
cmd进入文件目录后执行命令
loki-windows-amd64.exe --config.fileconfig/loki-config.yaml运行Grafana服务
解压grafana-enterprise-11.1.0.windows-amd64.zip压缩包得到grafana-v11.1.0文件进入bin目录找到grafana-server.exe程序双击运行 程序运行成功后访问http://localhost:3000初始账户 admin/admin 登录后需重置密码
添加Loki数据源 进入设置界面添加Loki服务地址http://localhost:3100, 在Header上添加X-Scope-OrgID参数参数值可以自定义默认tenant1, 然后点击savetest看看是否成功。
注如果savetest报错可能是Loki服务初始化还未完成验证Loki初始化是否完成访问http://localhost:3100/ready如果显示ready即初始化完成 springboot日志推送
pom文件添加依赖
!--Loki 日志收集--
dependencygroupIdcom.github.loki4j/groupIdartifactIdloki-logback-appender-jdk8/artifactIdversion1.5.1/version
/dependency
!--Loki 日志发送http请求和响应工具--
dependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactIdversion4.5.13/version
/dependencylogback-spring.xml
?xml version1.0 encodingUTF-8?
configuration!-- 彩色控制台控制 --substitutionProperty namelog.pattern value%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) ${PID:-} %clr(---){faint} %clr(%-80.80logger{79}){cyan} %clr(:){faint} %m%n%wEx/substitutionProperty namelog.pattern.no value%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) ${PID:-} %clr(---){faint} %clr(%-80.80logger{79}){cyan} %clr(:){faint} %m%n%wEx/conversionRule conversionWordclr converterClassorg.springframework.boot.logging.logback.ColorConverter/conversionRule conversionWordwex converterClassorg.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter/conversionRule conversionWordwEx converterClassorg.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter/springProperty scopecontext nameLOG_FILE_DIR sourcelogback.log-file-dir defaultValuelog/!-- 控制台输出 --appender nameSTDOUT classch.qos.logback.core.ConsoleAppenderencoder classch.qos.logback.classic.encoder.PatternLayoutEncoderpattern${log.pattern}/pattern/encoder/appenderspringProperty scopecontext nameurl sourceloki.url defaultValuehttp://localhost:3100/loki/api/v1/push/springProperty scopecontext nameenv sourceloki.label.env defaultValuedev/springProperty scopecontext namejobName sourceloki.label.job-name defaultValuemy-app/springProperty scopecontext namehostIp sourceloki.label.host-ip defaultValuelocalhost/springProperty scopecontext nameorgId sourceloki.org-id defaultValuedefault-org/appender nameLOKI classcom.github.loki4j.logback.Loki4jAppenderhttp classcom.github.loki4j.logback.ApacheHttpSenderurl${url}/urltenantId${orgId}/tenantId/httpformatlabelpatternapplication${jobName},env${env},host${hostIp},level%level/pattern/labelmessagepattern{timestamp: %d{yyyy-MM-dd HH:mm:ss.SSS}, level: %level, logger: %logger{36}, thread: %thread, message: %msg%n}/pattern/messagesortByTimetrue/sortByTime/format/appender!-- 使用异步方式将日志推送至Loki --appender nameASYNC_LOKI classch.qos.logback.classic.AsyncAppender!-- 队列大小设置根据实际需要调整 --queueSize512/queueSize!-- 丢弃策略当队列满时采取的操作 --discardingThreshold0/discardingThresholdneverBlocktrue/neverBlock!-- 实际的Loki Appender --appender-ref refLOKI //appenderappender namefileInfoLog classch.qos.logback.core.rolling.RollingFileAppenderfilter classch.qos.logback.classic.filter.LevelFilterlevelERROR/levelonMatchDENY/onMatchonMismatchACCEPT/onMismatch/filterencoder classch.qos.logback.classic.encoder.PatternLayoutEncoderpattern${log.pattern.no}/pattern/encoder!--滚动策略--rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--路径--fileNamePattern${LOG_FILE_DIR}/info.%d.log/fileNamePattern!--保留30天日志--maxHistory30/maxHistory/rollingPolicy/appenderappender namefileErrorLog classch.qos.logback.core.rolling.RollingFileAppenderfilter classch.qos.logback.classic.filter.ThresholdFilterlevelERROR/level/filterencoder classch.qos.logback.classic.encoder.PatternLayoutEncoderpattern${log.pattern.no}/pattern/encoder!--滚动策略--rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!--路径--fileNamePattern${LOG_FILE_DIR}/error.%d.log/fileNamePattern!--保留30天日志--maxHistory30/maxHistory/rollingPolicy/appenderroot levelinfoappender-ref refSTDOUT /appender-ref reffileInfoLog /appender-ref reffileErrorLog /appender-ref refASYNC_LOKI //root/configuration
yml文件配置
# Loki 日志配置
loki:# Loki 服务的 URL用于推送日志数据url: http://localhost:3100/loki/api/v1/push# 标签配置用于标识日志来源的额外信息label:# 环境标签标识当前运行的环境例如开发环境env: dev# 服务名称标签标识日志来源的服务名称job-name: my-service# 主机 IP 标签标识日志来源的主机 IP 地址host-ip: 192.168.0.1# 组织 ID用于多租户环境中标识日志所属的组织org-id: tenant1
运行springboot程序后日志都会发送到 Loki就可以在 Grafana 查看了