日志监控之 Grafana+Promtail+Loki

主要解决问题:项目负载均衡后,日志文件分散在多个位置,需要登录主机查看日志文件,在不确定那一个节点记录日志的情况下,很不方便,因此,使用Grafana+Promtail+Loki的访问收集到同一个服务上。(内容已验证,仅供参考,有更好的方式,请留言)

部署前说明:

  1. server 服务端使用loki存储和过滤数据,grafana界面展示。
  2. client 客户端,推送特定类型文件内容到服务端。

标题Server端服务安装,容器 docker-compose.yaml 文件:

yaml 复制代码
version: "3.9"

networks:
  loki:

services:
  loki:
    image: grafana/loki:2.9.2
    ports:
      - "3100:3100"
    command:
      - "-config.file=/etc/loki/local-config.yaml"
    networks:
      - loki

  grafana:
    image: grafana/grafana:latest
    ports:
      - "3000:3000"
    networks:
      - loki
    environment:
      - GF_PATHS_PROVISIONING=/etc/grafana/provisioning
      - GF_AUTH_ANONYMOUS_ENABLED=false  # 禁用匿名访问
      - GF_AUTH_BASIC_ENABLED=true  # 启用基本认证
      - GF_SECURITY_ADMIN_USER=admin  # 设置登录用户名
      - GF_SECURITY_ADMIN_PASSWORD=admin  # 设置登录账号密码
    volumes:
      - "./grafana-provisioning:/etc/grafana/provisioning"  # 数据源配置文件

volumes:
  grafana-provisioning:

验证安全

bash 复制代码
curl -v http://[ip]:3100/loki/api/v1/push

telnet [ip] 3100
或者
nc -vz [ip] 3100

promtail 部署

下载地址:https://github.com/grafana/loki/releases/download/v2.9.2/promtail-linux-amd64.zip

解压 promtail-linux-amd64.zip 同级目录编辑配置文件 promtail.yaml

yaml 复制代码
server:
  http_listen_port: 9080
  grpc_listen_port: 0

positions:
  filename: /tmp/positions.yaml

clients:
  - url: https://[ip]:3100/loki/api/v1/push

scrape_configs:
  - job_name: jike-master    # job名称,自定义
    static_configs:
      - targets:             # 如测试环境多个应用多个路径,从此行开始复制修改对应的标签
          - localhost
        labels:
          job: prod          # 监控类型
          project: jike-master     # 项目名称自定义
          host: jike-master        # 建议修改为本机ip,方便过滤
          __path__: /home/project/logs/*.log  # 本机日志文件目录,*.log

运行命令

bash 复制代码
nohup ./promtail-linux-amd64 --config.file=promtail.yaml &

登录,配置服务

登录地址: http://url:3000

配置数据源

相关推荐
行者-全栈开发3 天前
TIG 监控体系搭建:Telegraf + InfluxDB + Grafana 全链路实战
grafana·influxdb·服务器监控·tig·docker部署·监控系统·telegraf
Elastic 中国社区官方博客4 天前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
做个文艺程序员6 天前
Linux第24篇:Java应用监控体系搭建:Prometheus+Grafana可视化运维
java·grafana·prometheus
取谖慕12.7 天前
Prometheus+Alertmanager+node_exporter+grafana高可用
linux·运维·grafana·prometheus
爱莉希雅&&&8 天前
Prometheus高可用(alertmanager+node_exporter+grafana)
运维·服务器·grafana·prometheus
行者-全栈开发9 天前
【码动四季】Spring Boot 可观测性体系:Micrometer + OpenTelemetry + Grafana 全链路搭建
grafana·opentelemetry·micrometer·全链路追踪·分布式追踪·atomcode·spring boot可观测性
todoitbo10 天前
让数据看板随时可见:Grafana + cpolar 远程访问实战
ui·网络安全·grafana·数据看板·远程访问
维C°12 天前
Grafana实例-Gauge仪表盘面板
grafana
微三云 - 廖会灵 (私域系统开发)12 天前
电商系统监控告警体系从0到1:Prometheus+Grafana+AlertManager的全链路可观测性实践
oracle·grafana·prometheus
维C°12 天前
Grafana-Text面板
grafana