zoukankan      html  css  js  c++  java
  • Loki安装

    i 这里我们以 docker 安装为主,更多安装方式请参考文末连接.

    官网建议生产环境使用 Helm 或者 Tanka 方式安装,docker 方式安装的适用于开发环境和测试环境.- by jonnyan404 https://mrdoc.fun

    方式一

    下载配置文件

    mkdir -p /opt/loki/conf
    cd /opt/loki/conf
    
    wget https://raw.githubusercontent.com/grafana/loki/v2.2.0/cmd/loki/loki-local-config.yaml -O loki-config.yaml
    wget https://raw.githubusercontent.com/grafana/loki/v2.2.0/cmd/promtail/promtail-docker-config.yaml -O promtail-config.yaml
    

    安装Loki

    docker run -d --name=loki -v /opt/loki/conf:/mnt/config -p 3100:3100 grafana/loki:2.2.0 -config.file=/mnt/config/loki-config.yaml
    

    查看metrics数据

    http://IP:3100/metrics

    查看loki运行状态

    http://IP:3100/ready

    安装promtail

    仅搜集docker日志,此步可省略.

    docker run -d --name=promtail -v /opt/loki/conf:/mnt/config -v /var/log:/var/log grafana/promtail:2.2.0 -config.file=/mnt/config/promtail-config.yaml
    

    安装grafana

    docker run -d --name=grafana 
      --restart always 
      -p 3000:3000 
      -v /opt/loki/grafana-storage:/var/lib/grafana 
      grafana/grafana
    

    打开 http://IP:3000 访问grafana,默认用户密码为admin/admin。

    选择左侧设置--->Data Sources--->Add data source,搜索Loki配置HTTP URL为 http://IP:3100

    完成后选择左侧设置--->Preferences,修改底部默认时区为 Asia/Shanghai。

    选择左侧Explore查看日志,可以基于文件名或标签查看.

    方式二

    下载docker-compose.yml

    wget https://raw.githubusercontent.com/grafana/loki/v2.2.0/production/docker-compose.yaml -O docker-compose.yaml
    

    修改docker-compose.yml

    version: "3"
    
    networks:
      loki:
    
    volumes:
      loki-config:
      promtail-config:
      grafana-storage:
    
    services:
      loki:
        image: grafana/loki:2.0.0
    	container_name: loki
    	environment:
          - TZ=Asia/Shanghai
          - LANG=zh_CN.UTF-8
        ports:
          - "3100:3100"
        command: -config.file=/etc/loki/local-config.yaml
    	volumes:
          - loki-config:/etc/loki
        networks:
          - loki
    
      promtail:
        image: grafana/promtail:2.0.0
    	container_name: promtail
    	environment:
          - TZ=Asia/Shanghai
          - LANG=zh_CN.UTF-8
        volumes:
          - /var/log:/var/log
    	  - promtail-config:/etc/promtail
        command: -config.file=/etc/promtail/config.yml
        networks:
          - loki
    
      grafana:
        image: grafana/grafana:latest
    	container_name: grafana
        ports:
          - "3000:3000"
    	environment:
          - TZ=Asia/Shanghai
          - LANG=zh_CN.UTF-8
    	volumes:
          - grafana-storage:/var/lib/grafana
        networks:
          - loki
    

    启动docker-compose.yml

    docker-compose -f docker-compose.yaml up

    3.监控docker日志

    被监控机器安装Loki日志插件

    docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
    docker plugin ls
    

    全局日志搜集设置

    编辑daemon.json。linux下默认路径是/etc/docker/daemon.json (需要sudo), windows则默认是%userprofile%.dockerdaemon.json

    {
        "log-driver": "loki",
        "log-opts": {
            "loki-url": "http://YOUR_IP:3100/loki/api/v1/push",
            "loki-batch-size": "400",
    		"max-size": "50m",
        	"max-file": "10"
        }
    }
    

    然后重启docker服务生效

    指定容器搜集

    docker run --rm --name=grafana --log-driver=loki --log-opt loki-url="http://YOUR_IP:3100/loki/api/v1/push" --log-opt max-size=50m --log-opt max-file=10 grafana/grafana

    在 docker run 命令后增加红色内容即可

    docker-compose配置日志输出到loki

    docker-compose 小于3.4可以对需要日志输出的配置添加配置如下

    version: "3"
    services:
      promtail:
        image: grafana/promtail
        container_name: promtail
        restart: always
        volumes:
          - $PWD:/etc/promtail
          - /app/promtail:/opt
          - /app/promtail/log:/var/log
        command:
          -config.file=/etc/promtail/promtail-docker-config.yaml
        logging:
          driver: loki
          options:
            loki-url: "http://YOUR_IP:3100/loki/api/v1/push"
            max-size: "50m"
            max-file: "10"
    

    对于3.4极其以上版本可以通过定义模板来减少代码量

    version: "3.4"
    
    x-logging:
      &loki-logging
      driver: loki
      options:
        loki-url: "http://YOUR_IP:3100/loki/api/v1/push"
        max-size: "50m"
        max-file: "10"
    
    services:
      host:
        container_name: grafana
        image: grafana/grafana
        environment:
        - TZ=Asia/Shanghai
        - LANG=zh_CN.UTF-8
        logging: *loki-logging
    

    &loki-logging 表示定义模板

    *loki-logging 表示引用模板。
    对于多个服务就只需要对应加上一行 logging: *loki-logging 即可。

    Reference Link

  • 相关阅读:
    简述拦截器的工作原理?
    线程安全与非线程安全集合说一下,底层怎么实现的(hashmap,concurrenthashmap)
    表与表之间的关联关系
    手写9x9乘法表,冒泡排序
    主键和外键的区别
    为什么要使用连接池?
    AXI协议中的模棱两可的含义的解释(Cachable和Bufferable)
    ahb时序解析
    amba web
    Register Abstraction(9)
  • 原文地址:https://www.cnblogs.com/jonnyan/p/14715091.html
Copyright © 2011-2022 走看看