部署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,查看日志


相关推荐
mask哥1 天前
详解springcloudalibaba采用prometheus+grafana实现服务监控
java·nacos·springboot·grafana·prometheus·springcloud·微服务监控
wish3662 天前
【APM】How to enable Trace to Logs on Grafana?
经验分享·grafana·devops
奈斯ing3 天前
【prometheus+Grafana篇】从零开始:Linux 7.6 上二进制安装 Prometheus、Grafana 和 Node Exporter
运维·grafana·prometheus
Debug_TheWorld4 天前
Prometheus+Grafana实时监控系统各项指标
grafana·prometheus
云原生的爱好者9 天前
Prometheus+Grafana+K8s构建监控告警系统
kubernetes·grafana·prometheus
INFINI Labs10 天前
如何使用 Grafana 连接 Easyearch
grafana·easysearch
dmonstererer10 天前
【grafana原生告警中心配置飞书机器人告警】
机器人·飞书·grafana
奈斯ing11 天前
【prometheus+Grafana篇】Prometheus与Grafana:深入了解监控架构与数据可视化分析平台
信息可视化·grafana·prometheus
被一米六支配的恐惧14 天前
k8s部署grafana
容器·kubernetes·grafana