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


相关推荐
努力发光的程序员6 小时前
互联网大厂Java面试场景:微服务与Spring Cloud技术点解析
spring cloud·grafana·prometheus·微服务架构·jwt·api网关·jaeger
天生励志1232 天前
【Linux系统运维】软件安装部署实战--软件安装4-运维监控
运维·zabbix·grafana
DreamLife☼4 天前
Docker-日志与监控:集中采集与性能分析实战
docker·grafana·efk·可观测性·容器监控·cadvisor·prometheus 监控
心一信息6 天前
通过 Grafana 与 Zabbix 实现水暖 / 空调系统控制的详细步骤
zabbix·grafana
yunson_Liu6 天前
grafana+alertmanager配置sendgrid发送邮箱提示
grafana
siriuuus6 天前
Ubuntu Zabbix 安装部署及简单使用
zabbix·grafana
q***48319 天前
【监控】Spring Boot+Prometheus+Grafana实现可视化监控
spring boot·grafana·prometheus
时空无限9 天前
grafana 切换 org 导致的页面跳转不可访问处理
grafana
wniuniu_9 天前
testground local-grafana 环境排查
grafana
梁正雄11 天前
17、grafana安装
运维·grafana·prometheus·监控