闲人运维

个人运维记录


Loki采集docker日志

<h5>部署loki和grafana</h5> <ul> <li>使用docker运行,如果只用docker plugin来收集日志则可以把promtail部分删除;</li> </ul> <pre><code class="language-yaml">version: "3" networks: loki: services: loki: image: grafana/loki restart: always environment: - TZ=Asia/Shanghai - LANG=zh_CN.UTF-8 ports: - 3100:3100 networks: - loki promtail: image: grafana/promtail restart: always environment: - TZ=Asia/Shanghai - LANG=zh_CN.UTF-8 networks: - loki grafana: image: grafana/grafana:master restart: always environment: - TZ=Asia/Shanghai - LANG=zh_CN.UTF-8 volumes: - ./data:/var/lib/grafana/ ports: - 3000:3000 networks: - loki</code></pre> <h5>配置docker日志</h5> <ul> <li>安装loki的docker-plugin,执行如下命令;</li> </ul> <pre><code class="language-bash">docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions docker plugin ls</code></pre> <ul> <li>配置docker日志输出,这种方式采集全局的容器日志,并重启服务;</li> </ul> <pre><code class="language-bash"># vim /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"], "graph": "/data/docker", "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"], "live-restore": true, "insecure-registries":["0.0.0.0/0"], "log-driver": "loki", "log-opts": { "loki-url": "http://10.0.0.21:3100/loki/api/v1/push", "max-size": "50m", "max-file": "10" } }</code></pre> <ul> <li>如果不想采集全局,针对单个容器进行配置即可;</li> </ul> <pre><code class="language-bash"># &amp;loki-logging表示定义模板 # *loki-logging表示引用模板。对于多个服务就只需要对应加上一行 logging: *loki-logging 即可 # 对于3.4极其以上版本可以通过定义模板来减少配置 version: "3.4" # set template x-logging: &amp;loki-logging driver: loki options: loki-url: "http://YOUR_IP:3100/loki/api/v1/push" max-size: "50m" max-file: "10" # get template services: host: container_name: grafana image: grafana/grafana logging: *loki-logging environment: - TZ=Asia/Shanghai - LANG=zh_CN.UTF-8</code></pre>

页面列表

ITEM_HTML