Prometheus 是一款基于时序数据库的开源监控告警系统,是下一代云监控系统的首要选择,Loki是 Grafana Labs 团队发布的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统,
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
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

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
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/
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并保存


6.添加Grafana模板


7.注意
-
服务器使用 8919模板
-
docker 使用 13112 模板
- 需要注意的是13112模板需要添加变量 job,在dashboard界面点击右上角齿轮>Variable>New添加

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


- 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
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即可

6.查询
Expoler > 选择数据源 >选择标签
