原创

plg日志系统部署

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

最终监控示例:

正文到此结束
本文目录