一:Grafana 簡介與部署
安利一個生產環境正在使用的監控和告警平臺:grafana,它是一個開源的可對指標和日誌進行查詢、可視化和告警的平臺。
docker 安裝官方文檔:https://grafana.com/docs/grafana/latest/administration/configure-docker/
# 創建持久化目錄 cd /root/data/docker mkdir -p grafana/data mkdir -p grafana/logs # 將修改後的配置文件放在指定的目錄 cp grafana.ini grafana/ # 修改目錄權限,docker方式啓動grafana使用的uid和gid爲472 chown 472:472 grafana/data -R # 啓動容器 docker run -d \ -p 3000:3000 \ --name=grafana \ -v /root/data/docker/grafana/data:/var/lib/grafana \ -v /root/data/docker/grafana/logs:/var/log/grafana \ -v /root/data/docker/grafana/grafana.ini:/etc/grafana/grafana.ini \ --restart=always \ grafana/grafana:7.2.1
注意:需要將 grafana.ini 文件中的domain改爲服務器的外網ip,否則告警通知鏈接的host是localhost
二:Influxdb安裝
InfluxDB是一個由InfluxData開發的開源時序型數據。它由Go寫成,着力於高性能地查詢與存儲時序型數據。InfluxDB被廣泛應用於存儲系統的監控數據,IoT行業的實時數據等場景。
官方文檔:https://hub.docker.com/_/influxdb
# 創建持久化目錄 cd /root/data/docker mkdir -p influxdb # 啓動容器 docker run -d \ -p 8086:8086 \ --name=influxdb \ -v /root/data/docker/influxdb:/var/lib/influxdb \ --restart=always \ influxdb:1.8
初始化數據庫:
# 啓動influxdb客戶端 docker exec -it influxdb influx # 創建數據庫,數據ttl 2周 CREATE DATABASE "test" WITH DURATION 2w REPLICATION 1 NAME "default";
三:Prometheus及exporter安裝
# 拉取鏡像 docker pull prom/prometheus # 創建配置文件 mkdir -p /root/data/docker/prometheus cd /root/data/docker/prometheus # 配置文件內容見附件, 將裏面的ip改爲服務器的ip vim prometheus-config.yml # 啓動 docker run --name prometheus --restart=always -d -p 9090:9090 \ -v /root/data/docker/prometheus/prometheus-config.yml:/etc/prometheus/prometheus.yml \ prom/prometheus --config.file=/etc/prometheus/prometheus.yml
在grafana配置數據源
下面用prometheus監控服務器:
vim prometheus-config.yml
# 全局配置 global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: # 監控服務器 - job_name: 'server' static_configs: - targets: ['內網ip:9100']
安裝:
# 下載安裝包 mkdir -p /root/data/monitor cd /root/data/monitor wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz tar zxvf node_exporter-1.1.2.linux-amd64.tar.gz # 配置系統級的啓動命令 cd /etc/systemd/system/ # 內容見下面 vim node_exporter.service systemctl daemon-reload systemctl start node_exporter systemctl enable node_exporte
node_exporter.service的內容如下:
[Unit] Description=Node Exporter Wants=network-online.target After=network-online.target [Service] User=root ExecStart=/root/data/monitor/node_exporter-1.1.2.linux-amd64/node_exporter [Install] WantedBy=default.target
配置:
11074:https://grafana.com/grafana/dashboards/11074,其實就是官方和社區構建的儀表板。
最終效果:
Grafana、Prometheus、influxdb三者相輔相成,不僅可以快速幫我們構建系統級別的監控,還能快速的導入服務器、數據庫等其他常用基建的儀表盤,
同事又支持精緻化的業務打點與告警規則的配置。