#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

Prometheus 是一款基于时序数据库的开源监控告警系统,是下一代云监控系统的首要选择,Loki是 Grafana Labs 团队发布的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统,二者与Grafana结合,可以实现将服务器、容器监控与收集日志集中到一个平台,方便运维人员使用,本文将演示部署demo,具体概念请读者自行百度,实际使用是需结合客观情况进行部署。

Grafana
1.安装
  • 下载安装
#官网(https://grafana.com/)下载并安装,使用yum安装rpm包可以自动解决依赖
yum install -y grafana-8.0.6-1.x86_64.rpm
  • 启动
systemctl enable   grafana-server.service
systemctl start   grafana-server.service
2.访问
http://ip:3000

#默认密码admin/admin
Prometheus
1.安装prometheus
  • 解压
tar -xvf prometheus-2.28.1.linux-amd64.tar.gz 
mv prometheus-2.28.1.linux-amd64 /usr/local/prometheus
  • 配置systemctl启动
vim /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus Monitoring System
Documentation=Prometheus Monitoring System

[Service]
ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --web.listen-address=:9090
  • 配置自启
systemctl enable prometheus
systemctl start prometheus
  • 访问
http://ip:9090

#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

2.安装node_exporter

node_exporter安装在需要监控的服务器

  • 解压
tar -xvzf node_exporter-1.2.0.linux-amd64.tar.gz
mv node_exporter-1.2.0.linux-amd64/  /usr/local/node_exporter
  • 配置systemctl启动
vim /etc/systemd/system/node_exporter.service

[Unit]
Description=node exporter
Documentation=node exporter

[Service]
ExecStart=/usr/local/node_exporter/node_exporter

[Install]
WantedBy=multi-user.target
  • 配置自启
systemctl enable node_exporter
systemctl start node_exporter
  • 查看信息
http://ip:9100/metrics
3.修改prometheus配置添加监控
vim /usr/local/prometheus/prometheus.yml

 - job_name: ‘prometheus‘

    # metrics_path defaults to ‘/metrics‘
    # scheme defaults to ‘http‘.

    static_configs:
    - targets: [‘localhost:9090‘]  #添加node_exporter
4.结合cadvisor 监控docker

cadvisor支持http界面,方便prometheus 进行数据采集。

  • 拉取镜像
docker pull google/cadvisor
  • 启动
docker pull google/cadvisor

docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=18080:8080 --detach=true --name=cadvisor google/cadvisor

http://ip:18080/
  • 在prometheus添加
vim /usr/local/prometheus/prometheus.yml

- job_name: ‘container‘
    static_configs:
    - targets: [‘ip:18080‘]
5.添加数据
  • 登录Grafana选择Data sources > Add Data source > Prometheus > Save & test添加URL并保存

#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

6.添加Grafana模板

#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

7.注意
  • 服务器使用 8919模板

  • docker 使用 13112 模板

    • 需要注意的是13112模板需要添加变量 job,在dashboard界面点击右上角齿轮>Variable>New添加

    #导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

    • 更改无法显示的监控项中的语句,将job改成job="$job",即可正常显示

    #导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

  • prometheus和node_exporter都可以使用dokcer部署,概念相通。
Loki
1.安装
  • 下载配置文件
mkdir -p /opt/loki
cd /opt/loki

wget https://raw.githubusercontent.com/grafana/loki/v2.2.1/cmd/loki/loki-local-config.yaml -O loki-config.yaml
wget https://raw.githubusercontent.com/grafana/loki/v2.2.1/cmd/promtail/promtail-docker-config.yaml -O promtail-config.yaml
  • 拉取镜像
docker pull  grafana/loki:2.2.1
docker pull  grafana/promtail:2.2.1
  • 启动
#启动loki
docker run -v /opt/loki/:/mnt/config -p 31000:3100 -itd  grafana/loki:2.2.1 -config.file=/mnt/config/loki-config.yaml
#启动promtail
docker run -v /opt/loki/:/mnt/config -v /var/log:/var/log -itd grafana/promtail:2.2.1 -config.file=/mnt/config/promtail-config.yaml
2.访问
#查看数据
http://ip:31000/metrics
#查看启动状态
http://ip:31000/ready
3.指定收集日志方式
#修改完成之后重启docker即可
vim /opt/loki/promtail-config.yaml

scrape_configs:
- job_name: system
  static_configs:
  - targets:
      - localhost
    labels:
      job: varlogs
      host: 127.0.0.1  #标签
      __path__: /var/log/messages  #要收集的日志    
4.收集docker日志
  • 下载插件
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
docker plugin ls
  • 修改docker配置
vim /etc/docker/daemon.json

{
  "debug" : true,
  "log-driver": "loki",
  "log-opts": {
      "loki-url": "http://ip:31000/loki/api/v1/push",
      "loki-batch-size": "400"
  }
}
注:安装完之后需要将旧容器删除之后 重新启动,不然无法显示日志
5.添加数据

同prometheus,更改URL即可

#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

6.查询

Expoler > 选择数据源 >选择标签

#导入MD文档图片# Grafana+Prometheus+Loki 监控及收集日志

上一篇:七牛云存储 上传 C# asp.net


下一篇:一起学习《C#高级编程》1--类型的安全性