Prometheus部署、操作及Grafana展示、告警

轉載:https://blog.csdn.net/m0_71521555/article/details/127497906?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-127497906-blog-125929187.235%5Ev27%5Epc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-127497906-blog-125929187.235%5Ev27%5Epc_relevant_recovery_v2&utm_relevant_index=2

一、部署Prometheus

1、環境準備工作

2、普羅米修斯的部署

2.1 上傳prometheus安裝包並解壓

2.2 修改配置文件

2.3 配置系統啓動文件,設置開機自啓

2.4 開啓prometheus,並訪問網頁驗證

二、部署Exporters

1、遠程監控linux主機

1.1 上傳node_exporter安裝包

1.2 配置啓動文件,設置開機自啓

1.3 啓動node_exporter

1.4 修改Prometheus服務器的配置文件 (靜態配置發現)

1.5 訪問prometheus服務器

2、監控遠程MySQL

2.1 下載或上傳mysqld_exporter組件

2.2 安裝mysqld_exporter組件

2.3 安裝mysql數據庫,並授權

2.4 創建一個mysqld_exporter配置文件

2.5 配置開機啓動文件,啓動mysql_exporter

2.6 修改Prometheus服務器的配置文件

2.7 訪問prometheus服務器

3、啓動多個node_exporter

3.1 在prometheus服務配置prometheus.yml文件

3.2 在第一個node_exporter服務上操作

3.3 在第2臺node_exporter服務上操作並開啓

3.4 網頁瀏覽查看監控

三、部署Grafana進行展示

1、下載安裝Grafana

2、配置數據源

3、導入模板

4、爲數據源做數據展示

5、導入grafana監控面板

6、Grafana 圖形顯示 MySQL 監控數據

7、Grafana+onealert報警

7.1 在Grafana中配置Webhook URL

7.2、測試cpu負載告警

一、部署Prometheus
1、環境準備工作
服務器類型 IP地址 組件
Prometheus 服務器 192.168.100.20 Prometheus、node_exporter
grafana 服務器 192.168.100.30 Grafana
agent 服務器 192.168.100.40 node_exporter
2、普羅米修斯的部署
prometheus下載地址:

https://prometheus.io/download/

2.1 上傳prometheus安裝包並解壓
mkdir /mnt/prometheus

cd /mnt/prometheus

上傳安裝包prometheus-2.39.1.linux-amd64.tar.gz

tar zxf prometheus-2.39.1.linux-amd64.tar.gz 解壓

ls

mv prometheus-2.39.1.linux-amd64 /usr/local/prometheus 添加到環境中

ls /usr/local/prometheus/

 

2.2 修改配置文件
cd /usr/local/prometheus/

cp prometheus.yml prometheus.yml.bak 備份

cat /usr/local/prometheus/prometheus.yml | grep -v "^#"
global: #用於prometheus的全局配置,比如採集間隔,抓取超時時間等
scrape_interval: 15s #採集目標主機監控數據的時間間隔,默認爲1m
evaluation_interval: 15s #觸發告警生成alert的時間間隔,默認是1m
# scrape_timeout is set to the global default (10s).
scrape_timeout: 10s #數據採集超時時間,默認10s

alerting: #用於alertmanager實例的配置,支持靜態配置和動態服務發現的機制
alertmanagers:
- static_configs:
- targets:
# - alertmanager:9093

rule_files: #用於加載告警規則相關的文件路徑的配置,可以使用文件名通配機制
# - "first_rules.yml"
# - "second_rules.yml"

scrape_configs: #用於採集時序數據源的配置
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: "prometheus" #每個被監控實例的集合用job_name命名,支持靜態配置(static_configs)和動態服務發現的機制(*_sd_configs)

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

static_configs: #靜態目標配置,固定從某個target拉取數據
- targets: ["192.168.100.20:9090"]

 

 

2.3 配置系統啓動文件,設置開機自啓
第一種啓動

vim /usr/lib/systemd/system/prometheus.service

[Unit] #服務單元
Description=Prometheus Server
Documentation=https://prometheus.io
After=network.target #依賴關係

[Service]
Type=simple
ExecStart=/usr/local/prometheus/prometheus \
--config.file=/usr/local/prometheus/prometheus.yml \ #配置文件
--storage.tsdb.path=/usr/local/prometheus/data/ \ #數據目錄
--storage.tsdb.retention=15d \ #保存時間
--web.enable-lifecycle #開機熱加載

ExecReload=/bin/kill -HUP $MAINPID #重載
Restart=on-failure
[Install]
WantedBy=multi-user.target

第二種啓動

cd /usr/local/prometheus

./prometheus

 

2.4 開啓prometheus,並訪問網頁驗證
systemctl start prometheus
systemctl enable prometheus

netstat -natp | grep :9090

瀏覽器訪問:http://192.168.100.20:9090 ,訪問到 Prometheus 的 Web UI 界面
點擊頁面的 Status -> Targets,如看到 Target 狀態都爲 UP,說明 Prometheus 能正常採集到數據
http://192.168.100.20:9090/metrics ,可以看到 Prometheus 採集到自己的指標數據

 

 

通過 http:// 服務器 IP:9090/metrics 可以查看到監控的數據:

 

 

二、部署Exporters
1、遠程監控linux主機
在遠程 linux 主機(被監控端 agent)上安裝 node_exporter 組件。

下載地址:

https://prometheus.io/download/

1.1 上傳node_exporter安裝包
cd /mnt

mkdir prometheus.node_exporter

cd prometheus.node_exporter/

上傳安裝包 node_exporter-1.4.0.linux-amd64.tar.gz

tar zxf node_exporter-1.4.0.linux-amd64.tar.gz 解壓

cd node_exporter-1.4.0.linux-amd64/

ls

mv node_exporter /usr/local/bin/ 添加到環境

ls /usr/local/bin/

 

1.2 配置啓動文件,設置開機自啓
vim /usr/lib/systemd/system/node_exporter.service
[Unit]
Description=node_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

 

1.3 啓動node_exporter
第一種開啓

systemctl start node_exporter

systemctl enable node_exporter

netstat -natp | grep :9100

第二種開啓

cd /usr/local/bin/

./node_exporter

 

通過瀏覽器訪問 http:// 被監控端 IP:9100/metrics 就可以查看到 node_exporter 在被監控端收集的監控信息:

 

1.4 修改Prometheus服務器的配置文件 (靜態配置發現)
回到 Prometheus 服務器的配置文件裏添加被監控機器的配置段

vim /usr/local/prometheus/prometheus.yml 追加3行
- job_name: 'agent'
static_configs:
- targets: ['192.168.100.30:9100']

 

1.5 訪問prometheus服務器
回到 web 管理界面→點 Status→點 Targets→可以看到多了一臺監控目標

 

 

注:也可以在本機安裝 node_exporter,使用上面的方式監控本機。

2、監控遠程MySQL
在被管理機 agent上安裝 mysqld_exporter 組件

下載地址:https://prometheus.io/download/

2.1 下載或上傳mysqld_exporter組件
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.14.0/mysqld_exporter-0.14.0.linux-amd64.tar.gz

2.2 安裝mysqld_exporter組件
mkdir prometheus.mysql_exporter

cd prometheus.mysql_exporter/

tar zxf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
ls /usr/local/mysqld_exporter-0.12.1.linux-amd64/

 


2.3 安裝mysql數據庫,並授權
第一種

沒有安裝mysql的可以下載輕量數據庫

yum install mariadb\* -y

第二種

登錄之前安裝好的數據庫

進行授權

create user 'mysql_exporter'@'localhost' identified by '123456';

grant select,replication client,process on *.* to 'mysql_exporter'@'localhost';

 

2.4 創建一個mysqld_exporter配置文件
創建一個mysqld_exporter配置文件,寫上連接的用戶名和密碼(和上面的授權的用戶名和密碼要對應)

vim /usr/local/mysqld_exporter-0.12.1.linux-amd64/.my.cnf

[client]
user=mysql_exporter
password=123456

 

2.5 配置開機啓動文件,啓動mysql_exporter
啓動 mysql_exporter

第一種啓動

nohup /usr/local/mysqld_exporter-0.12.1.linux-amd64/mysqld_exporter --config.my-cnf=/usr/local/mysqld_exporter-0.12.1.linux-amd64/.my.cnf & 後臺運行

netstat -natp | grep 9104

 

 

第二種啓動

cd /usr/local/

mv mysqld_exporter-0.12.1.linux-amd64/ mysqld_exproter

vim /usr/lib/systemd/system/mysqld_exporter.service

[Unit]
Description=mysqld_exporter
Documentation=https://prometheus.io/
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/mysqld_exporter \
--collector.ntp \
--collector.mountstats \
--collector.systemd \
--collector.tcpstat

ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure

[Install]
WantedBy=multi-user.target

 

 

2.6 修改Prometheus服務器的配置文件
回到 Prometheus 服務器的配置文件裏添加被監控的 mariadb 的配置段

vim /usr/local/prometheus/prometheus.yml
- job_name: 'agent_mariadb'
static_configs:
- targets: ['192.168.100.30:9104']

 

改完配置文件之後,重啓服務

systemctl restart prometheus.service
[root@gang2 mnt]#netstat -natp | grep 9090

 

2.7 訪問prometheus服務器
回到 web 管理界面→點 Status→點 Targets→可以看到監控 mysql

 


3、啓動多個node_exporter
3.1 在prometheus服務配置prometheus.yml文件
vim /usr/local/prometheus/prometheus.yml

註釋

# - job_name: 'agent'
# static_configs:
# - targets: ['192.168.100.30:9100']

追加

- job_name: 'nodes'
static_configs:
- targets:
- 192.168.100.30:9100
- 192.168.100.40:9100

 

systemctl restart prometheus.service
netstat -natp | grep 9090

 

3.2 在第一個node_exporter服務上操作
cd /mnt/prometheus.node_exporter/node_exporter-1.4.0.linux-amd64/

scp node_exporter [email protected]:/mnt/prometheus.node_exporter/

提前在第二個node_exporter服務上創建好目錄 /mnt/prometheus.node_exporter/

systemctl start node_exporter.service 開啓

 

3.3 在第2臺node_exporter服務上操作並開啓
cd /mnt/

mkdir prometheus.node_exporter

cd prometheus.node_exporter/

ls

./node_exporter 開啓

netstat -natp | grep 9100

 

 

 

3.4 網頁瀏覽查看監控
http://192.168.100.20:9090/

 

三、部署Grafana進行展示
Grafana 是一個開源的度量分析和可視化工具,可以通過將採集的數據分析,查詢,然後進行可視化的展示,並能實現報警。

下載地址

Download Grafana | Grafana Labs

1、下載安裝Grafana
#使用yum解決依賴關係 我這邊直接上傳軟件包到opt
yum install -y grafana-7.4.0-1.x86_64.rpm 或
mkdir /mnt/grafana

cd /mnt/grafana

上傳安裝包
rpm -ivh /opt/grafana-7.3.6-1.x86_64.rpm 解壓

systemctl start grafana-server
systemctl enable grafana-server
netstat -natp | grep :3000

#賬號密碼默認爲admin,admin
grafana默認配置文件目錄 /etc/grafana/grafana.ini
瀏覽器訪問:http://192.168.109.19:3000 ,默認賬號和密碼爲 admin/admin

 

 

通過瀏覽器訪問 http:// grafana 服務器 IP:3000 就到了登錄界面,使用默認的 admin 用戶,admin 密碼就可以登陸了。

 

2、配置數據源
下面我們把 Prometheus 服務器收集的數據做爲一個數據源添加到 grafana,讓 grafana 可以得到 Prometheus 的數據。

 

 

3、導入模板
點擊prometheus_data,選擇Dashboards

 

 

4、爲數據源做數據展示


自定義名稱,點擊保存

最後在dashboard可以查看到

 

 

注:有多條數據的時候,可以在查詢的鍵值後面加個大括號,括號裏的條件表示只匹配當前的監控項。

5、導入grafana監控面板
瀏覽器訪問:https://grafana.com/grafana/dashboards ,在頁面中搜索 node exporter ,選擇適合的面板,點擊 Copy ID 或者 Download JSON

在 grafana 頁面中,+ Create -> Import ,輸入面板 ID 號或者上傳 JSON 文件,點擊 Load,即可導入監控面板

 

 

 

6、Grafana 圖形顯示 MySQL 監控數據
在 grafana 上修改配置文件,並下載安裝 mysql 監控的 dashboard(包含相關 json 文件,這些 json 文件可以看作是開發人員開發的一個監控模板)。

vim /etc/grafana/grafana.ini 追加

[dashboards.json]
enabled = true
path = /var/lib/grafana/dashboards

git clone https://github.com/percona/grafana-dashboards.git

cp -r grafana-dashboards/dashboards/ /var/lib/grafana/
systemctl restart grafana-server.service

在grafana圖形化界面導入相關的json文件

用grafana服務器上的firefox瀏覽器打開,方便上傳

提前把文件放桌面

 

 

 

點 import 導入後,報 prometheus 數據源找不到,因爲這些 json 文件裏默認要找的就是叫 Prometheus 的數據源,但我們前面建立的數據源卻是叫 prometheus_data。

那麼請自行把原來的 prometheus_data 源改名爲 Prometheus 即可(注意:第一個字母 P 是大寫)。然後再回去刷新一下,就有數據了。


7、Grafana+onealert報警
Prometheus 報警需要使用 alertmanager 這個組件,而且報警規則需要手動編寫(對運維來說不友好)。所以我這裏選用 grafana+onealert 報警。注意:實現報警前把所有機器時間同步再檢查一遍。

登陸http://www.onealert.com/→註冊帳戶→登入後臺管理

 

 

 

7.1 在Grafana中配置Webhook URL
① 在Grafana中創建Notification channel,選擇類型爲Webhook;

② 推薦選中Send on all alerts和Include image,Cloud Alert體驗更佳;

③ 將第一步中生成的Webhook URL填入Webhook settings Url;

URL格式:
http://api.aiops.com/alert/api/event/grafana/v1/3ebae767310c43cdaa3cd680013d0f19/ (保存當前應用,即可獲取完整webhook地址信息)

④ Http Method選擇POST;

⑤ Send Test&Save;

 

7.2、測試cpu負載告警
現在可以去設置一個報警來測試了(這裏以我們前面加的 cpu 負載監控來做測試)

#查看cpu佔用率

(1- ((sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by(instance)) / (sum(increase(node_cpu_seconds_total[1m])) by(instance))))*100

 

保存後就可以測試了,如果 agent1上的 cpu 負載還沒有到 0.3,你可以試試 0.2,或者運行一些程序把 agent1負載調大。

 

 

QQ發來的報警如下圖


睿象雲也會爆出此問題


————————————————
版權聲明:本文爲CSDN博主「芒地狠」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_71521555/article/details/127497906

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章