環(huán)境:
192.168.1.144? Ubuntu系統(tǒng)已經部署好Prometheus監(jiān)控部署教程請看本人前面的教程?
192.168.1.140? centos7系統(tǒng)已安裝docker+docker-compose
1、Prometheus監(jiān)控mongodb
1、在被監(jiān)控端以docker-compose方式安裝mongodb
mkdir /data/mangodb/ #創(chuàng)建mangodb的目錄
cd /data/mangodb/ #進入目錄下
2,寫docker-compose.yaml文件
vim docker-compose.yaml
version: '3'
services:
? mango:
? ? image: mongo
? ? container_name: mongo
? ? command: [--auth]
? ? restart: always
? ? volumes:
? ? ? - /data/mongo/db:/data/db
? ? ports:
? ? ? - 27017:27017
? ? environment:
? ? ? MONGO_INITDB_ROOT_USERNAME: root
? ? ? MONGO_INITDB_ROOT_PASSWORD: 123456
啟動:
docker-compose up -d
查看:
docker ps
3、登陸mongodb 創(chuàng)建監(jiān)控用戶
docker exec -it mongo mongosh admin? ? ? ? #登陸mongodb
db.auth("root","123456")? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #用戶登陸
> db.createUser({? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#創(chuàng)建監(jiān)控用戶
> user: "exporter",
pwd: "password",
roles: [
{ role: "readAnyDatabase", db: "admin" },
{ role: "clusterMonitor", db: "admin" }
]
})
> db.auth("exporter","password")? ? ? ? ? ? ? ? ? ? ? ? ? ? #返回1表示成功
> exit? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?#退出mongodb
4、docker-compose方式安裝mongodb_exporter
mkdir /data/mongo/mongodb_exporter? ? ? ? ? ? ?#創(chuàng)建mongodb_exporter的安裝目錄
cd /data/mongo/mongodb_exporter? ? ? ? ? ? ? ? ?#進入到安裝目錄下
vim docker-compose.yaml
version: '3.3'
services:
? mongodb_exporter:
? ? image: bitnami/mongodb-exporter
? ? container_name: mongodb_exporter
? ? restart: always
? ? environment:
? ? ? MONGODB_URI: "mongodb://exporter:password@192.168.1.140:27017/admin?ssl=false"
? ? command:
? ? ? - '--collect-all'
? ? ? - '--compatible-mode'
? ? ports:
? ? ? - "9216:9216"
啟動:
docker-compose up -d
5、瀏覽器進行訪問查看
在瀏覽器中輸入mongodb-expoerter端的IP加9216端口進行訪問
6、在Prometheus端添加配置
在Prometheus端打開prometheus.yml文件添加以下內容
vim prometheus/prometheus.yml
? - job_name: 'mongodb_exporter'
? ? static_configs:
? ? ? - targets: ['192.168.1.140:9216']
? ? ? ? labels:
? ? ? ? ? instance: docker服務器
保存退出后重新加載配置
curl -X POST http://localhost:9090/-/reload
7、在瀏覽器訪問是否監(jiān)控到mongodb
輸入Prometheus端的IP加9090端口選擇Status 然后選擇 Targets 查看
8、mongodb觸發(fā)器配置 (在Prometheus端配置)
因為之前我在Prometheus.yaml文件中加了一個觸發(fā)器文件
所以在rules文件中添加一個mongodb的觸發(fā)器文件即可
在Prometheus端創(chuàng)建一個mongodb的yml文件添加輸入以下觸發(fā)器內容
vim prometheus/rules/mongodb.yml
groups:
- name: PerconaMongodbExporter
? rules:
? ? - alert: MongodbDown
? ? ? expr: 'mongodb_up == 0'
? ? ? for: 0m
? ? ? labels:
? ? ? ? severity: critical
? ? ? annotations:
? ? ? ? summary: "MongoDB Down 容器:{{ $labels.instance }}"
? ? ? ? description: "MongoDB 容器 is down,當前值:{{ $value }}"
? ? - alert: MongodbNumberCursorsOpen
? ? ? expr: 'mongodb_ss_metrics_cursor_open{csr_type="total"} > 10 * 1000'
? ? ? for: 2m
? ? ? labels:
? ? ? ? severity: warning
? ? ? annotations:
? ? ? ? summary: "MongoDB 數字游標打開告警 容器:{{ $labels.instance }}"
? ? ? ? description: "MongoDB為客戶端打開的游標過多 > 10k,當前值:{{ $value }}"
? ? - alert: MongodbCursorsTimeouts
? ? ? expr: 'increase(mongodb_ss_metrics_cursor_timedout[1m]) > 100'
? ? ? for: 2m
? ? ? labels:
? ? ? ? severity: warning
? ? ? annotations:
? ? ? ? summary: "MongoDB 游標超時 容器:{{ $labels.instance }}"
? ? ? ? description: "MongoDB 太多游標超時,當前值:{{ $value }}"
? ? - alert: MongodbTooManyConnections
? ? ? expr: 'avg by(instance) (rate(mongodb_ss_connections{conn_type="current"}[1m])) / avg by(instance) (sum (mongodb_ss_connections) by (instance)) * 100 > 80'
? ? ? for: 2m
? ? ? labels:
? ? ? ? severity: warning
? ? ? annotations:
? ? ? ? summary: "MongoDB 太多鏈接 容器:{{ $labels.instance }}"
? ? ? ? description: "MongoDB 連接數 > 80% ,當前值:{{ $value }}"
? ? - alert: MongodbVirtualMemoryUsage
? ? ? expr: '(sum(mongodb_ss_mem_virtual) BY (instance) / sum(mongodb_ss_mem_resident) BY (instance)) > 3'
? ? ? for: 2m
? ? ? labels:
? ? ? ? severity: warning
? ? ? annotations:
? ? ? ? summary: "MongoDB虛擬內存使用警告 容器:{{ $labels.instance }}"
? ? ? ? description: "MongoDB虛擬內存使用過高,當前值:{{ $value }}"
9、檢查與更新(在Prometheus端操作)
檢查配置:
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
重新加載配置:
curl -X POST http://localhost:9090/-/reload
在瀏覽器輸入Prometheus端的IP加9090端口選擇Alerts查看
10、添加到grafana
在Dashboards | Grafana Labs官網
找到dashboard復制id
在grafana端開始配置
完成文章來源地址http://www.zghlxwxcb.cn/news/detail-787048.html
2、Prometheus監(jiān)控docker
環(huán)境:
192.168.1.144? Ubuntu系統(tǒng)已經部署好Prometheus監(jiān)控部署教程請看本人前面的教程?
192.168.1.140? centos7系統(tǒng)已安裝docker+docker-compose
1、docker-compose的方式安裝CAdvisor
創(chuàng)建cadvisor的目錄
mkdir /data/cadvisor
cd /data/cadvisor
vim docker-compose.yaml
version: '3.3'
? vadvisor:
? ? ? ? image: google/cadvisor
? ? ? ? container_name: cadvisor
? ? ? ? restart: always
? ? ? ? volumes:
? ? ? ? ? - /:/rootfs:ro
? ? ? ? ? - /var/run:/var/run:rw
? ? ? ? ? - /sys:/sys:ro
? ? ? ? ? - /var/lib/docker/:/var/lib/docker:ro
? ? ? ? ports:
? ? ? ? ? - 8080:8080
啟動:
docker-compose up -d
2、在瀏覽器訪問查看
訪問CAdvisor端的IP加8080端口
3、在Prometheus端對prometheus.yaml配置文件進行修改
vim prometheus/prometheus.yml? ?
因為我之前配置過Prometheus機器監(jiān)控docker所以添加以下內容
? ? ? - targets: ['cadvisor:8080']
? ? ? ? labels:
? ? ? ? ? instance: Prometheus服務器
修改好配置后重新加載配置
curl -X POST http://localhost:9090/-/reload
4、在Prometheus端添加docker的觸發(fā)器配置
我們Prometheus.yaml文件的觸發(fā)器中有添加了一個觸發(fā)器rules文件所以在指定rules文件內創(chuàng)建docker的觸發(fā)器文件就行
我的Prometheus目錄在/data/docker-prometheus/prometheus
進入到觸發(fā)器目錄添加以下內容
cd /data/docker-prometheus/prometheus/rules/
vim docker.yml
groups:
- name: DockerContainers
? rules:
? - alert: Containerkilled
? ? expr: time() - container_last_seen > 60
? ? for: 0m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "Docker容器被殺死,容器:{{ $labels.instance }}"
? ? ? description: "{{ $value }} 個容器消失了"
? - alert: ContainerAbsent
? ? expr: absent(container_last_seen)
? ? for: 5m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "Docker無容器,容器:{{ $labels.instance }}"
? ? ? description: "5分鐘檢查容器不存在,當前值為{{ $value }}"
? - alert: ContainerCpuUsage
? ? expr: (sum(rate(container_cpu_usage_seconds_total{name!=""}[3m])) BY (instance, name) * 100) > 300
? ? for: 2m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "Docker容器cpu使用率告警,容器:{{ $labels.instance }}"
? ? ? description: "容器cpu使用率超過300%,當前值為:{{ $value }}"
? - alert: ContainerMemoryUsage
? ? expr: (sum(container_memory_working_set_bytes{name!=""}) BY (instance, name) / sum(container_spec_memory_limit_bytes > 0) BY (instance, name) * 100) > 80
? ? for: 2m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "Docker容器內存使用率告警,容器:{{ $labels.instance }}"
? ? ??description: "容器內存使用率超過80%,當前值為:{{ $value }}"
? - alert: ContainerVolumeIoUsage
? ? expr: (sum(container_fs_io_current{name!=""}) BY (instance, name) * 100) > 80
? ? for: 2m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "容器存儲io使用率告警,容器:{{ $labels.instance }}"
? ? ? description: "容器存儲io使用率超過 80%,當前值為:{{ $value }}"
? - alert: ContainerHighThrottleRate
? ? expr: rate(container_cpu_cfs_throttled_seconds_total[3m]) > 1
? ? for: 2m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "容器限制告警,容器:{{ $labels.instance }}"
? ? ? description: "容器被限制,當前值為:{{ $value }}"
5、檢查與更新(在Prometheus端操作)
檢查配置:
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
重新加載配置:
curl -X POST http://localhost:9090/-/reload
6、在瀏覽器查看是否有docker的觸發(fā)器
訪問Prometheus端的IP加9090端口選擇Alerts查看
http://192.168.1.144:9090/
7、選擇dashboard
官網:https://grafana.com/grafana/dashboards
8、添加到grafana配置
完成
3、Prometheus監(jiān)控MySQL.8.0
注:已安裝docker 和 docker-compose
1、通過docker-compose啟動MySQL
mkdir /data/mysql #創(chuàng)建存放MySQL的目錄
cd /data/mysql
#創(chuàng)建docker-compose.yaml文件
vim docker-compose.yaml
version: '3.1'
services:
? db:
? ? image: mysql
? ? restart: always
? ? container_name: mysql
? ? environment:
? ? ? TZ: Asia/Shanghai
? ? ? LANG: en_US.UTF-8
? ? ? MYSQL_ROOT_PASSWORD: sy123456
? ? command: [
? ? ? '--default-authentication-plugin=mysql_native_password',
? ? ? '--character-set-server=utf8mb4',
? ? ? '--collation-server=utf8mb4_general_ci',
? ? ? '--lower_case_table_names=1',
? ? ? '--performance_schema=1'
? ? ]
? ? volumes:
? ? ? - /data/mysql/data/:/var/lib/mysql
? ? ports:
? ? ? - 3306:3306
4、啟動docker-compose
docker-compose up -d
5、查看MySQL的版本
docker-compose exec db mysql --version
6、創(chuàng)建MySQL的監(jiān)控用戶
因為我們是用docker-compose安裝的MySQL所以用以下命令創(chuàng)建用戶
登陸MySQL
docker exec -it mysql mysql -uroot -psy123456
創(chuàng)建監(jiān)控用戶:
CREATE USER 'exporter'@'%' IDENTIFIED BY 'password' WITH MAX_USER_CONNECTIONS 3;
解釋:
數據庫中創(chuàng)建一個名為 'exporter' 的用戶,并指定了該用戶的連接限制為最多 3 個連接。該用戶將使用 'password' 作為登錄密碼
給與監(jiān)控用戶權限:
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%';
解釋:
命令是為用戶 'exporter' 授予在所有數據庫中執(zhí)行 PROCESS、REPLICATION CLIENT 和 SELECT 權限的權限,允許該用戶從任意主機連接到 MySQL 服務器
退出MySQL:
quit
7、用創(chuàng)建的用戶登陸驗證
docker exec -it mysql mysql -uexporter -ppassword
8、docker方式安裝mysql_exporter
創(chuàng)建mysql_exporter的安裝目錄
mkdir /data/mysqld_exporter -p
cd /data/mysqld_exporter -p
創(chuàng)建docker-compose.yaml文件
vim docker-compose.yaml
version: '3.3'
services:
? mysqld-exporter:
? ? image: prom/mysqld-exporter
? ? container_name: mysqld-exporter
? ? restart: always
? ? command:
? ? ? - '--collect.info_schema.processlist'
? ? ? - '--collect.info_schema.innodb_metrics'
? ? ? - '--collect.info_schema.tablestats'
? ? ? - '--collect.info_schema.tables'
? ? ? - '--collect.info_schema.userstats'
? ? ? - '--collect.engine_innodb_status'
? ? environment:
? ? ? - DATA_SOURCE_NAME=exporter:password@(192.168.1.140:3306)/
? ? ports:
? ? ? - 9104:9104
9、啟動
docker-compose up -d?
10、如果啟動不起來報錯
日志如圖
在當前目錄下創(chuàng)建一個my.cnf文件
vim my.cnf?
[client]
user=exporter
password=password
host=192.168.1.140
port=3306
修改docker-compose.yaml 文件?
vim docker-compose.yaml? ? ? ? ? ? ?
version: '3.3'
services:
? mysqld-exporter:
? ? image: prom/mysqld-exporter
? ? container_name: mysqld-exporter
? ? restart: always
? ? command:
? ? ? - '--collect.info_schema.processlist'
? ? ? - '--collect.info_schema.innodb_metrics'
? ? ? - '--collect.info_schema.tablestats'
? ? ? - '--collect.info_schema.tables'
? ? ? - '--collect.info_schema.userstats'
? ? ? - '--collect.engine_innodb_status'
? ? volumes:
? ? ? - ./my.cnf:/.my.cnf? ? ? ? ??#注意映射進容器的根號下不然會報錯
? ? ports:
? ? ? - 9104:9104
重新啟動
docker-compose restart
11、訪問查看
在瀏覽器輸入本機IP加9104端口訪問查看
12、在Prometheus端添加配置
在Prometheus端打開prometheus.yml文件在尾部添加以下內容
vim prometheus/prometheus.yml
? - job_name: 'mysql_exporter'
? ? static_configs:
? ? ? - targets: ['192.168.1.140:9104']
? ? ? ? labels:
? ? ? ? ? instance: docker服務器
?
更新配置
curl -X POST http://localhost:9090/-/reload
13、在瀏覽器查看是否有docker的觸發(fā)器
?訪問Prometheus端的IP加9090端口選擇Status在選擇Targets查看
http://192.168.1.144:9090/
14、觸發(fā)器配置
我之前在Prometheus.yaml文件的觸發(fā)器中有添加了一個觸發(fā)器rules文件所以在指定rules文件內創(chuàng)建docker的觸發(fā)器文件就行
我的Prometheus目錄在/data/docker-prometheus/prometheus
進入到rules目錄下創(chuàng)建mysqld的觸發(fā)器文件
vim mysqld.yml
groups:
- name: MySQL
? rules:
? - alert: MysqlDown
? ? expr: mysql_up == 0
? ? for: 30s
? ? labels:
? ? ? severity: critical
? ? annotations:
? ? ? summary: "MySQL Down,實例:{{ $labels.instance }}"
? ? ? description: "MySQL_exporter連不上MySQL了 當前狀態(tài)為:{{ $value }}"
? - alert: MysqlTooManyConnections
? ? expr: max_over_time(mysql_global_status_threads_connected[1m]) / mysql_global_variables_max_connections * 100 > 80
? ? for: 2m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "MySQL連接數過多告警,實例:{{ $labels.instance }}"
? ? ? description: "MySQL連接數>80% , 當前值:{{ $value }}"
? - alert: MysqlHighThreadsRunning
? ? expr: max_over_time(mysql_global_status_threads_running[1m]) > 20
? ? for: 2m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "MySQL運行的線程過多,實例:{{ $labels.instance }}"
? ? ? description: "MySQL運行的線程>20 , 當前運行的線程:{{ $value }}"
? - alert: MysqlSlowQueries
? ? expr: increase(mysql_global_status_slow_queries[2m]) > 0
? ? for: 2m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "MySQL慢日志告警,實例:{{ $labels.instance }}"
? ? ? description: "MySQL在過去的兩分鐘有新的 , {{ $value }}條慢查詢"
? - alert: MysqlInnodbLogWaits
? ? expr: rate(mysql_global_status_innodb_log_waits[15m]) > 10
? ? for: 0m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: "MySQL innodb日志等待,實例:{{ $labels.instance }}"
? ? ? description: "MySQL innodb日志寫入停滯, 當前值:{{ $value }}"
? - alert: MysqlRestarted
? ? expr: mysql_global_status_uptime < 60
? ? for: 0m
? ? labels:
? ? ? severity: info
? ? annotations:
? ? ? summary: "MySQL 重啟,實例:{{ $labels.instance }}"
? ? ? description: "不到一分鐘MySQL 重啟過"
15、檢查配置
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
更新配置
curl -X POST http://localhost:9090/-/reload
16、在瀏覽器查看
訪問Prometheus端的IP加9090端口選擇Alerts查看
17、在dashboard找合適的dashboard建議使用7362
https://grafana.com/grafana/dashboards
18、登陸到grafana添加節(jié)點和dashboard
?
進入grafana頁面 在左上角選擇 Starred 然后在右上角選擇New 然后選擇 import 會出現下面的頁面
完成
4、添加服務器系統(tǒng)進程監(jiān)控
我的服務器已經安裝docker和docker-compose
1、docker安裝process_exporter
創(chuàng)建process的存儲目錄:
mkdir /data/process_exporter -p
cd /data/process_exporter
創(chuàng)建配置文件:
vim process.yml
process_names:
? - name: "{{.Comm}}" ? ? ? ?
? ? cmdline:
? ? - '.+'
也可以監(jiān)控指定進程和上面的二選一即可
vim process.yml
process_names:
- name: "{{.Matches}}" #匹配模板
cmdline:
- 'nginx' #唯一標識
- name: "{{.Matches}}"
cmdline:
- 'mongod'
- name: "{{.Matches}}"
cmdline:
- 'mysqld'
- name: "{{.Matches}}"
cmdline:
- 'redis-server'
2、啟動process-exporter
docker run -d --rm -p 9256:9256 --privileged -v /proc:/host/proc -v `pwd`:/config --name process-exporter ncabatoff/process-exporter --procfs /host/proc -config.path /config/process.yml
解釋:
- -d:以后臺方式運行容器。
- --rm:在容器停止后自動刪除容器。
- -p 9256:9256:將主機的9256端口映射到容器的9256端口。
- --privileged:以特權模式運行容器,允許容器訪問主機的所有設備。
- -v /proc:/host/proc:將主機的/proc目錄掛載到容器的/host/proc目錄,用于獲取主機的進程信息。
- -v pwd:/config:將當前工作目錄掛載到容器的/config目錄,用于提供配置文件process.yml。
- --name process-exporter:給容器指定一個名稱為process-exporter。
- ncabatoff/process-exporter:使用ncabatoff/process-exporter鏡像來創(chuàng)建容器。
- --procfs /host/proc -config.path /config/process.yml:傳遞給容器的命令行參數,指定procfs路徑為/host/proc,配置文件路徑為/config/process.yml。
3、在瀏覽器訪問查看
輸入本機IP加9256端口查看是否能檢測到數據
3、在Prometheus端添加配置
在Prometheus端打開prometheus.yml文件在尾部添加以下內容
vim prometheus/prometheus.yml
? - job_name: 'process_exporter'
? ? scrape_interval: 30s
? ? scrape_timeout: 15s
? ? static_configs:
? ? ? - targets: ['192.168.1.140:9256'
4、更新檢查
curl -X POST http://localhost:9090/-/reload? ? ? ? ? 更新配置
訪問Prometheus端的IP加9090端口選擇Status在選擇Targets查看
http://192.168.1.144:9090/
5、觸發(fā)器配置
我之前在Prometheus.yaml文件的觸發(fā)器中有添加了一個觸發(fā)器rules文件所以在指定rules文件內創(chuàng)建docker的觸發(fā)器文件就行
我的Prometheus目錄在/data/docker-prometheus/prometheus
進入到rules目錄下創(chuàng)建process的觸發(fā)器文件
vim process.yml
groups:
- name: process
? rules:
? - alert: 進程數多告警
? ? expr: sum(namedprocess_namegroup_states) by (instance) >1000
? ? for: 1m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? description: "服務器當前有{{ $value }}個進程"
? - alert: 僵尸進程數告警
? ? expr: sum by(instance, groupname) (namedprocess_namegroup_states{state="Zombie"}) > 0
? ? for: 1m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? description: "進程{{ $labels.groupname }}有{{ $value }}個僵尸進程"
? - alert: 進程重啟告警
? ? expr: ceil(time() -max by (instance, groupname) (namedprocess_namegroup_oldest_start_time_seconds)) < 60
? ? for: 15s
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? description: "進程{{ $labels.groupname}}在{{ $value }}秒前重啟過"
? - alert: 進程退出告警
? ? expr: max by(instance, groupname) (delta(namedprocess_namegroup_oldest_start_time_seconds{groupname=~"^java.*|^nginx.*"}[1d])) < 0
? ? for: 1m
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? description: "進程{{ $labels.groupname}}退出了"
6、檢查更新(在Prometheus端操作)
檢查配置
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
更新配置
curl -X POST http://localhost:9090/-/reload
7、在瀏覽器查看是否有新的觸發(fā)器
訪問Prometheus端的IP加9090端口選擇Alerts查看
8、在dashboard找合適的dashboard建議使用249
https://grafana.com/grafana/dashboards
9、登陸到grafana添加節(jié)點和dashboard
進入grafana頁面 在左上角選擇 Starred 然后在右上角選擇New 然后選擇 import 會出現下面的頁面
完成
5、添加域名過期時間監(jiān)控
1、docker安裝domain_exporter
docker run -d --restart=always --name domain_exporter -p 9222:9222 caarlos0/domain_exporter
2、在瀏覽器訪問本機IP加9222端口訪問查看
3、在Prometheus端進行配置
在Prometheus端打開配置文件添加以下內容
vim prometheus/prometheus.yml
? - job_name: domain
? ? #scrape_interval: 1h
? ? scrape_interval: 15s
? ? metrics_path: /probe
? ? relabel_configs:
? ? ? - source_labels: [__address__]
? ? ? ? target_label: __param_target
? ? ? - target_label: __address__
? ? ? ? replacement: 192.168.1.140:9222
? ? static_configs:
? ? ? - targets:
? ? ? ? - qq.com
? ? ? ? - baidu.cn
4、更新配置并檢查
curl -X POST http://localhost:9090/-/reload? ? ? ? ?#更新配置
?訪問Prometheus端的IP加9090端口選擇Status在選擇Targets查看
http://192.168.1.144:9090/
5、觸發(fā)器配置(在Prometheus端配置)
我之前在Prometheus.yaml文件的觸發(fā)器中有添加了一個觸發(fā)器rules文件所以在指定rules文件內創(chuàng)建docker的觸發(fā)器文件就行
我的Prometheus目錄在/data/docker-prometheus/prometheus
進入到rules目錄下創(chuàng)建process的觸發(fā)器文件
vim domain.yml
groups:
- name: domain
? rules:
? - alert: 域名檢測失敗
? ? expr: domain_probe_success == 0
? ? for: 2h
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: '{{ $labels.instance }}'
? ? ? description: '{{ $labels.domain }}域名檢測失敗'
? - alert: 域名過期
? ? expr: domain_expiry_days < 30
? ? for: 2h
? ? labels:
? ? ? severity: warning
? ? annotations:
? ? ? summary: '{{ $labels.instance }}'
? ? ? description: '{{ $labels.domain }}將在30天后過期'
? - alert: 域名過期
? ? expr: domain_expiry_days < 5
? ? for: 2h
? ? labels:
? ? ? severity: page
? ? annotations:
? ? ? summary: '{{ $labels.instance }}'
? ? ? description: '{{ $labels.domain }}將在5天后過期'
6、檢查更新(在Prometheus端操作)
檢查配置
docker exec -it prometheus promtool check config /etc/prometheus/prometheus.yml
更新配置
curl -X POST http://localhost:9090/-/reload
7、在瀏覽器查看是否有新的觸發(fā)器
訪問Prometheus端的IP加9090端口選擇Alerts查看
8、在dashboard找合適的dashboard建議使用14605
https://grafana.com/grafana/dashboards
9、登陸到grafana添加節(jié)點和dashboard
進入grafana頁面 在左上角選擇 Starred 然后在右上角選擇New 然后選擇 import 會出現下面的頁面
文章來源:http://www.zghlxwxcb.cn/news/detail-787048.html
完成
到了這里,關于Prometheus監(jiān)控添加監(jiān)控mongodb+docker+MySQL8.0+服務器系統(tǒng)進程監(jiān)控+域名過期時間監(jiān)控的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!