原创

plg日志系统部署

温馨提示:
本文最后更新于 2024年06月12日,已超过 2 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我

plg日志系统部署

 Promtail + Loki + Grafana

 

主目录:/app/grafana-loki

启动Loki:sh /app/grafana-loki/loki/start-loki.sh
启动promtail:sh /app/grafana-loki/promtail/start-promtail.sh
启动grafana: sh /app/grafana-loki/grafana/grafana-8.1.4/start-grafana-server.sh 

 

或:

systemctl start loki

systemctl start promtail

systemctl start grafana-server

 

查看服务启动是否开启:

systemctl list-unit-files

 

查看状态:

systemctl status grafana-server

systemctl status loki

systemctl status promtail

 

对应服务端口:

grafana: 3000

loki: 3100

promtail: 9080

prometheeus: 9090

node_exports: 9100

 

内网IP访问: http://x.x.x.x:3000/

 

Loki是受Prometheus启发由Grafana Labs团队开源的水平可扩展,高度可用的多租户日志聚合系统。 开发语言: Google Go。它的设计具有很高的成本效益,并且易于操作。使用标签来作为索引,而不是对全文进行检索,也就是说,你通过这些标签既可以查询日志的内容也可以查询到监控的数据签,极大地降低了日志索引的存储。系统架构十分简单,由以下3个部分组成 :

Loki 是主服务器,负责存储日志和处理查询 。
promtail 是代理,负责收集日志并将其发送给 loki 。
Grafana 用于 UI 展示。

只要在应用程序服务器上安装promtail来收集日志然后发送给Loki存储,就可以在Grafana UI界面通过添加Loki为数据源进行日志查询(如果Loki服务器性能不够,可以部署多个Loki进行存储及查询)。作为一个日志系统不光只有查询分析日志的能力,还能对日志进行监控和报警。

 

打开vpn在本地下载:

curl -O -L "https://github.com/grafana/loki/releases/download/v2.7.4/loki-linux-amd64.zip"

unzip loki-linux-amd64.zip

curl -O -L https://github.com/grafana/loki/releases/download/v2.7.4/promtail-linux-amd64.zip

unzip promtail-linux-amd64.zip

curl -O -L https://raw.githubusercontent.com/grafana/loki/main/cmd/loki/loki-local-config.yaml

curl -O -L https://raw.githubusercontent.com/grafana/loki/main/clients/cmd/promtail/promtail-local-config.yaml

 

登录日志监控服务器:

mkdir /app/grafana-loki/loki

mkdir /app/grafana-loki/promtail

 

从本地上传到日志监控服务器:

sc  loki-linux-amd64 root@x.x.x.x:/app/grafana-loki/loki/

scp loki-local-config.yaml root@x.x.x.x:/app/grafana-loki/loki/

scp promtail-linux-amd64 root@x.x.x.x:/app/grafana-loki/promtail/

scp promtail-local-config.yaml root@x.x.x.x:/app/grafana-loki/promtail/

 

登录日志监控服务器:

cd /app/grafana-loki/loki/

vim start-loki.sh

nohup ./loki-linux-amd64 -config.file=./loki-local-config.yaml >./loki.log 2>&1 &

chmod a+x start-loki.sh

 

cd /app/grafana-loki/bin

vim loki-start.sh

cd /app/grafana-loki/loki

sh start-loki.sh

 

在应用服务器安装 promtail:

cd /app/grafana-loki/promtail/

vim promtail-local-config.yaml

# 添加需监控日志服务器配置:

- job_name: yqy_v2_logs

  static_configs:

  - targets:

      - localhost

    labels:

      job: yqy_v2_logs

      __path__: /app/query/logs/yqy-v2/*log

 

vim /app/grafana-loki/promtail/start-promtail.sh

nohup ./promtail-linux-amd64 -config.file=promtail-local-config.yaml >> /app/grafana-loki/logs/promtail.log 2>&1 &

 

或者通过复制操作:从已安装的源服务器复制到目标服务器

rsync -av -e  'ssh -p 22'  --exclude='*.log' --exclude='*.tar.gz' ./ root@x.x.x.x:/app/grafana-loki/promtail/

rsync -av -e  'ssh -p 22'  --exclude='*.log' --exclude='*.tar.gz' ./ root@x.x.x.x:/app/grafana-loki/

 

 

ps -ef|grep promtail

chmod a+x 

 

curl -O -L "https://github.com/grafana/loki/releases/download/v1.5.0/promtail-linux-amd64.zip"

wget https://dl.grafana.com/oss/release/grafana-7.1.0-1.x86_64.rpm

 

安装loki和grafana(主服务器)

 

安装promtail (日志服务器)

systemctl start promtail

systemctl status promtail

systemctl stop promtail

 

先将loki-linux-amd64.zip和grafana-7.1.0-1.x86_64.rpm 上传到日志服务器;
再将promtail-linux-amd64.zip 上传到应用服务器 


在日志服务器 上创建目录

 

mkdir  /app/loki/data

mkdir  /data/loki

mkdir  /data/loki/{chunks,index}

 

日志服务器配置:

测试环境主机promtail配置文件:

cat /app/grafana-loki/promtail/promtail-local-config.yaml 

 

server:

  http_listen_port: 9080

  grpc_listen_port: 0

 

positions:

  filename: /tmp/positions.yaml

 

clients:

  - url: http://x.x.x.x:3100/loki/api/v1/push

 

scrape_configs:

 

- job_name: dev_mysql_slowlogs

  static_configs:

  - targets:

      - localhost

    labels:

      job: dev_mysql_slowlogs

      __path__: /var/log/mysql/devdb-slow.log

 

******

 

mysql开启慢日志功能:

[mysqld]

slow_query_log=ON

slow_query_log_file=/app/mysql/data/vmdb_slow.log

long_query_time=1

 

******手动启动,日志有内容,服务启动,日志无内容

 ps -ef|grep grafana

root     14238     1  0  2023 ?        3-09:30:22 /app/grafana-loki/loki/loki-linux-amd64 -config.file=/app/grafana-loki/loki/loki-local-config.yaml &>> /app/grafana-loki/logs/loki.log

root     15331     1  1  2023 ?        6-12:13:08 /app/grafana-loki/promtail/promtail-linux-amd64 -config.file=/app/grafana-loki/promtail/promtail-local-config.yaml &>> /app/grafana-loki/logs/promtail.log

cd /app/grafana-loki/bin/

 

promtail开机自启动

vim /etc/systemd/system/promtail.service

 

[Unit]

Description=promtail

After=network.target

[Service]

ExecStart=/app/grafana-loki/promtail/promtail-linux-amd64 \

        -config.file=/app/grafana-loki/promtail/promtail-local-config.yaml &>> /app/grafana-loki/logs/promtail.log

Restart=on-failure

[Install]

WantedBy=multi-user.target

 

systemctl daemon-reload

systemctl start promtail

systemctl status promtail

systemctl enable promtail

 

**

/app/grafana-loki/bin/loki-start.sh

 

loki开机自启动:

vim /etc/systemd/system/loki.service

[Unit]

Description=loki

After=network.target 

[Service]

ExecStart=/app/grafana-loki/loki/loki-linux-amd64 \

-config.file=/app/grafana-loki/loki/loki-local-config.yaml &>> /app/grafana-loki/logs/loki.log

Restart=on-failure

[Install]

WantedBy=multi-user.target

 

systemctl daemon-reload

systemctl start loki

systemctl status loki

systemctl enable loki

systemctl status promtail

 

******安装Go语言

https://studygolang.com/dl

最新版地址:https://studygolang.com/dl/golang/go1.20.6.linux-amd64.tar.gz

wget https://studygolang.com/dl/golang/go1.20.6.linux-amd64.tar.gz

tar -xvf go1.20.6.linux-amd64.tar.gz

mv go/ /app/grafana-loki/go

 

vim /etc/profile

底部追加:

export GOROOT=/app/grafana-loki/go

export PATH=$PATH:$GOROOT/bin

 

source /etc/profile

 

清华镜像站:

https://mirrors.tuna.tsinghua.edu.cn/

 

wget https://mirrors.tuna.tsinghua.edu.cn/github-release/prometheus/prometheus/2.45.0%20_%202023-06-23/prometheus-2.45.0.linux-amd64.tar.gz

tar -xvf prometheus-2.40.1.linux-amd64.tar.gz

mv prometheus-2.40.1.linux-amd64 /app/grafana-loki/prometheus

 

cat /app/grafana-loki/bin/prometheus.sh

/app/grafana-loki/prometheus/prometheus --config.file=/app/grafana-loki/prometheus/prometheus.yml &

 

prometheus启动:

cd /app/grafana-loki/bin

./prometheus.sh 

 

页面访问:

http://x.x.x.x:9090

 

安装常用监控:node_exporter

下载地址: https://prometheus.io/download/

wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz

tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz

mv 

 

配置 prometheus.yml,增加以下 job_name(node_exporter默认端口为9100)

**PS: 切记!yml文件非常注重缩进,不要随意夹断 **

 

vim /app/grafana-loki/prometheus/prometheus.yml

   # linux

  - job_name: "ibm_linux"

    static_configs:

      - targets: ["localhost:9100"]

******

 

启动:./node_exporter &

后台启动:

nohup ./node_exporter &

 

node启动且配置修改prometheus.yml后,需重启:prometheus

 

打开promethus页面

http://x.x.x.x:9090/graph

在Expression中输入up, 点击:Execute

结果显示:

up{instance="localhost:9090", job="prometheus"}    1

up{instance="localhost:9100", job="ibm_linux"}         1

 

最终监控示例:

正文到此结束