部署loki,grafana 以及springcloud用法举例

文章目录

场景

小公司缺少运维岗位,需要研发自己部署日志系统,elk太过笨重,对于研发来说部署也有困难.下面演示下快速部署loki,grafana 以及在springcloud项目的使用方法

docker 部署grafana

docker run -d --name grafana -p 3000:3000 grafana/grafana:latest

docker-compose部署loki

维护配置文件 local-config.yaml
yaml 复制代码
auth_enabled: false

server:
  http_listen_port: 3100

ingester:
  lifecycler:
    ring:
      kvstore:
        store: inmemory
      replication_factor: 1
  chunk_idle_period: 3m
  chunk_retain_period: 1m

limits_config:
  reject_old_samples: true
  reject_old_samples_max_age: 168h
  allow_structured_metadata: false

schema_config:
  configs:
    - from: 2024-12-01
      store: boltdb-shipper  # 使用 boltdb-shipper 作为存储
      object_store: filesystem
      schema: v11  # 选择受支持的 schema 版本
      index:
        prefix: index_
        period: 24h

storage_config:
  boltdb_shipper:  # 使用 boltdb-shipper 作为存储后端
    active_index_directory: /loki/index/active
    cache_location: /loki/cache
  filesystem:  # 文件系统配置
    directory: /loki/chunks  # 使用 chunks 存储目录

compactor:
  working_directory: /loki/boltdb-shipper-compactor

table_manager:
  retention_deletes_enabled: false
  retention_period: 0s

common:
  path_prefix: /loki  # 设置路径前缀      
维护docker-compose.yml配置
yml 复制代码
version: '3.8'

services:
  loki:
    image: grafana/loki:latest
    container_name: loki
    ports:
      - "3100:3100"
    volumes:
      # 挂载配置文件到容器内
      - ./local-config.yaml:/etc/loki/local-config.yaml
    command:
      - '--config.file=/etc/loki/local-config.yaml'
启动

docker-compose up -d

grafana 添加loki数据源



springcloud用法举例

  1. 定义版本管理
pom 复制代码
            <dependency>
                <groupId>com.github.loki4j</groupId>
                <artifactId>loki-logback-appender</artifactId>
                <version>${loki-logback-appender.version}</version>
            </dependency>
  1. 引入到微服务
pom 复制代码
       <!--  使用loki管理日志       -->
        <dependency>
            <groupId>com.github.loki4j</groupId>
            <artifactId>loki-logback-appender</artifactId>
        </dependency>
  1. 在 logback-spring.xml 添加LOKI的appender
xml 复制代码
<!-- 引入应用名称 -->
<springProperty name="name" source="spring.application.name"/>


    <!-- Loki输出器 -->
    <appender name="LOKI" class="com.github.loki4j.logback.Loki4jAppender">
        <http>
            <url>http://100.64.0.4:3100/loki/api/v1/push</url>
        </http>
        <format>
            <label>
                <pattern>application=${name},level=%level</pattern>
                <readMarkers>true</readMarkers>
            </label>
            <message>
                <pattern>
                    {"timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}", "level": "%level", "logger": "%logger{36}.%method", "method":"%M", "line":"%line", "thread": "%thread", "message": "%msg%n"}
                </pattern>
            </message>
            <sortByTime>true</sortByTime>
        </format>
    </appender>


    <!-- 本地环境 -->
    <springProfile name="local">
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="LOKI"/>  
        </root>
    </springProfile>

查看loki的explore,查看日志


相关推荐
国产化创客1 天前
ESP32 (ESPectre)+Grafana构建专业级CSI监控面板
物联网·grafana·信息与通信·智能硬件
鬼先生_sir2 天前
Spring Cloud 微服务监控实战:SkyWalking + Prometheus+Grafana 全栈解决方案
运维·spring cloud·grafana·prometheus·skywalking
SkyWalking中文站3 天前
使用 TraceQL 查询 SkyWalking 和 Zipkin 链路追踪数据并在 Grafana 中可视化
运维·grafana·监控
安审若无4 天前
运维监控及可视化工具Prometheus和grafana
运维·grafana·prometheus
却话巴山夜雨时i5 天前
Java面试实录:从Spring Boot到Kafka的技术探讨
spring boot·微服务·kafka·grafana·prometheus·java面试
阿杜杜不是阿木木5 天前
authentik开源身份认证与管理平台-与 Grafana 集成(12)
grafana·authentik
人人常欢笑8 天前
Grafana 表格自定义下载样式。
javascript·react.js·grafana
Luke~9 天前
已上架阿里云计算巢!Loki AI 事故分析引擎正式开放一键部署,帮 SRE 快速完成故障复盘
人工智能·阿里云·云计算·loki·devops·aiops·sre
何中应10 天前
Grafana列表如何设置固定排序
运维·数据分析·grafana
何中应10 天前
Grafana如何设置中文界面
运维·数据分析·grafana