使用prometheus + grafana + pushgateway搭建監控可視化系統
安裝docker環境
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# yum -y install docker-ce git
# systemctl start docker
# systemctl enable docker
安裝prometheus + grafana + pushgateway
安裝 prometheus+ grafana + pushgateway
- 獲取docker-compose.yaml
# cd /opt/
# git clone https://github.com/evnsio/prom-stack.git
# cd prom-stack
- 設置持久化
version: "3"
services:
pushgateway:
image: prom/pushgateway:v0.4.0
command: --persistence.file=/pushgateway/pushgateway.data
ports:
- 9091:9091
volumes:
- ./data/pushgateway:/pushgateway
prometheus:
#image: prom/prometheus:v2.0.0
image: prom/prometheus:v2.18.1
command: --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.retention=60d
user: 0:0
ports:
- 9090:9090
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ./prometheus/alerts/:/etc/prometheus/rules.d/
- ./data/prometheus:/prometheus
grafana:
#image: grafana/grafana:4.6.2
image: grafana/grafana:6.7.1
ports:
- 3000:3000
volumes:
- ./data/grafana:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_PASSWORD=password
alertmanager:
image: prom/alertmanager:v0.11.0
command: --config.file=/etc/alertmanager/alertmanager.yml
ports:
- 9093:9093
volumes:
- ./alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml
grafana使用默認用戶名密碼 admin password 登陸
- 安裝 docker-compse
## 安裝Docker-compose
# curl "https://dl.cactifans.com/zabbix_docker/docker-compose" -o /usr/bin/docker-compose
# chmod a+x /usr/bin/docker-compose
## 查看docker-compose版本
# docker-compose version
- 創建目錄
## 創建目錄
# mkdir /data/monitor/prom-stack/data/{grafana,prometheus,pushgateway}
## 修改grafana目錄屬主和屬組,否則容器無法啟動
# chown 472:472 -R /data/monitor/prom-stack/data/grafana
- 啟動服務
# cd /opt/prom-stack
# docker-compose -f docker-compose.yml pull
# docker-compose -f docker-compose.yml up -d
查看服務安裝情況
# docker-compse ps
# docker ps -a
使用curl生成測試數據
- 可以使用$RANDOM來生成隨機數
# while true; do
echo "mymetric $RANDOM" | curl --data-binary @- http://localhost:9091/metrics/job/my-push-job
sleep 1
done
"mymetric"就是這個被監控的指標,這個監控指標推送到pushgateway比較簡潔直觀的
- 在瀏覽器里打開pushgateway: "http://172.16.0.1:9091/"
可以看到測試的數據已經進入pushgateway了
在grafana配置可視化界面
配置從prometheus里獲取監控數據
- 在瀏覽器里打開grafana:http://172.16.0.1:3000 配置好prometheus監控數據服務器的地址
- 查看操作結果
創建監控數據展示頁面
- 選擇graph類型的展示效果
- 點擊"Panel Title"選擇Edit
- 在查詢參數處使用這個條件
mymetric{exported_job="my-push-job",instance="172.16.0.1:9091",job="prom-stack"}
查詢出這一步生成的用來測試的監控數據,點擊保存生成圖表
參考文檔
https://juejin.im/post/5ce3e44bf265da1bd260c157