Promtail + Loki + Grafana 搭建日志中心监控系统

安装 Loki 日志系统

  • Promtail + Loki + Grafana 搭建的日志监控系统

下载安装包以及获取默认配置文件(loki、promtail、loki-local-config.yaml、promtail-local-config.yaml)

  • Loki 是主服务器,负责存储日志和处理查询

  • promtail 是代理,负责收集日志并将其发送给 loki

  • Grafana 用于 UI 展示

创建对应的目录下载

  • Loki 服务器部署 Loki 环境

mkdir -p /data/loki
# 创建 /data/loki 目录
cd /data/loki
# 进入目录
wget https://github.com/grafana/loki/releases/download/v2.5.0/loki-linux-amd64.zip
# curl -O -L https://github.com/grafana/loki/releases/download/v2.5.0/loki-linux-amd64.zip
# 下载 loki-linux-amd64.zip 
unzip loki-linux-amd64.zip
# 解压
​
wget https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-config.yaml
# 下载 loki-local-config.yaml
​
# wget 失败可以访问网址,创建 yaml 档
  • Loki 优化配置

auth_enabled: false
​
server:
  http_listen_port: 3100
  grpc_listen_port: 9096
  log_level: debug                    #日志等级为debug
​
common:
  path_prefix: /tmp/loki
  storage:
    filesystem:
      chunks_directory: /tmp/loki/chunks
      rules_directory: /tmp/loki/rules
  replication_factor: 1
  ring:
    instance_addr: 127.0.0.1
    kvstore:
      store: inmemory
​
schema_config:
  configs:
    - from: 2020-10-24
      store: boltdb-shipper
      object_store: filesystem
      schema: v11
      index:
        prefix: index_
        period: 24h
​
ruler:
  alertmanager_url: http://localhost:9093
limits_config:
  enforce_metric_name: false
  reject_old_samples: true                         # 是否拒绝旧样本
  reject_old_samples_max_age: 168h                 # 168小时之前的样本被拒绝
  ingestion_rate_mb: 40
  ingestion_burst_size_mb: 20
  max_entries_limit_per_query: 9999                # 优化最大查询数

  • 业务服务器部署 Promtail 收取日志

mkdir /loki
cd /loki
wget https://github.com/grafana/loki/releases/download/v2.5.0/promtail-linux-amd64.zip
# curl -O -L https://github.com/grafana/loki/releases/download/v2.5.0/promtail-freebsd-amd64.zip
# 下载 promtail-linux-amd64.zip
unzip promtail-linux-amd64.zip
# 解压
wget https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml
# 下载 promtail-local-config.yaml
  • Promtail 配置修改

server:
  http_listen_port: 9080
  grpc_listen_port: 0
​
positions:
  filename: /tmp/positions.yaml
​
clients:
  - url: http://192.168.119.130:3100/loki/api/v1/push    # 指向 Loki 服务器地址
​
scrape_configs:
- job_name: nginx
  static_configs:
  - targets:
      - nginx
    labels:
      job: nginx02logs                        # Job 名称
      __path__: /usr/local/nginx/logs/*       # 收集日志路径
  pipeline_stages:
    - json:                                   # 日志为json格式 选择需要的字段
        expressions:
          output: log
​

  • 配置 grafana 仓库

[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
​
# curl -O -L https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm/grafana-8.5.2-1.x86_64.rpm
  • 安装

yum -y install grafana
  • 启动

/loki-linux-amd64 -config.file=loki-local-config.yaml                  # 先启动 Loki 服务
./promtail-linux-amd64 -config.file=promtail-local-config.yaml
systemctl enable grafana-server --now

  • 初始账密为 admin ,登录后修改

  • 创建用户

  • 添加数据源 Loki

  • 安装 nginx ,测试收集 nginx 日志

修改 nginx.conf 日志格式为 json

日志是由 Promtail 处理的,所以需要修改 Promtail 配置文件

修改 promtail-local-config.yaml 配置文件,添加 pipeline_stages 配置

- job_name: nginx
  static_configs:
  - targets:
      - nginx
    labels:
      job: nginxlogs
      __path__: /usr/local/nginx/logs/*log
  pipeline_stages:
    - json:  # 日志为json格式 选择需要的字段
        expressions:
          output: log
  • 重新加载配置文件后,Loki 查询日志

{filename="/usr/local/nginx/logs/host.access.log",job="nginx02logs"} |= "status" |= "200"
# Loki 查询日志关键字

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值