第一章 Promethus(普罗米修斯)监控系统
生活随笔
收集整理的這篇文章主要介紹了
第一章 Promethus(普罗米修斯)监控系统
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
能夠安裝prometheus服務器
能夠通過安裝node_exporter監控遠程linux
能夠通過安裝mysqld_exporter監控遠程mysql數據庫
能夠安裝grafana
能夠在grafana添加prometheus數據源
能夠在grafana添加監控cpu負載的圖形
能夠在grafana圖形顯示mysql監控數據
一、概述
Prometheus(由go語言(golang)開發)是一套開源的監控&報警&時間序列數據庫的組合。適合監控docker容器。因為kubernetes(俗稱k8s)的流行帶動了prometheus的發展。
二、時間序列數據
1.含義
時間序列數據(TimeSeries Data) : 按照時間順序記錄系統、設備狀態變化的數據被稱為時序數據。
2.特點
#1.性能好
關系型數據庫對于大規模數據的處理性能糟糕。NOSQL可以比較好的處理大規模數據,讓依然比不上時間序列數據庫。
#2.成本低
高效的壓縮算法,節省存儲空間,有效降低IO
#3.高效的時間序列數據存儲方法
Prometheus有著非常高效的時間序列數據存儲方法,每個采樣數據僅僅占用3.5byte左右空間,上百萬條時間序列,30秒間隔,保留60天,大概花了200多G(來自官方數據)
3.特征
- 多維度數據模型
- 靈活的查詢語言(PromQL)
- 不依賴分布式存儲,單個服務器節點是自治的
- 以HTTP方式,通過pull模型拉去時間序列數據
- 也可以通過中間網關支持push模型
- 通過服務發現或者靜態配置,來發現目標服務對象
- 支持多種多樣的圖表和界面展示
三、部署Promethus
1.環境設置
| 名稱 | 公網IP | 內網IP | 主機名 |
|---|---|---|---|
| Prometheus、Grafana、node_exporter | 139.196.79.176 | 172.19.90.51 | ga002 |
| node_exporter | 139.224.227.189 | 172.19.72.206 | ga001 |
| node_exporter | 139.224.223.153 | 172.19.72.207 | gw001 |
| node_exporter、mysqld_exporter | 47.100.226.16 | 172.19.54.147 | gd001 |
| node_exporter | 47.102.86.70 | 172.19.90.50 | ga003 |
2.下載相關軟件(全部安裝在/opt路徑)
從 https://prometheus.io/download/ 下載相應版本,安裝到服務器上官網提供的是二進制版,解壓就能用,不需要編譯。
[root@ga002 ~]# cd /opt
[root@ga002 opt]# wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-amd64.tar.gz
[root@ga002 opt]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
[root@ga002 opt]# wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
[root@ga002 opt]# wget https://dl.grafana.com/oss/release/grafana-7.5.5-1.x86_64.rpm
3.安裝Promethus
#1.解壓Promethus安裝包到/opt目錄下
[root@ga002 opt]# tar xf prometheus-2.26.0.linux-amd64.tar.gz -C /opt
#2.創建Prometheus數據存儲路徑
[root@ga002 opt]# mkdir /data/prometheus
#3.配置數據源
[root@ga002 opt]# vim /opt/prometheus-2.17.1.linux-amd64/prometheus.yml
修改job內容,并且保存
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.
static_configs:
- targets: ['ga002:9090']
#4.創建system啟動
[root@ga002 opt]# vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
ExecStart=/opt/prometheus-2.26.0.linux-amd64/prometheus --config.file=/opt/prometheus-2.26.0.linux-amd64/prometheus.yml --storage.tsdb.path=/data/prometheus --storage.tsdb.retention=60d
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
或者直接啟動
[root@ga001 opt]# nohup /opt/prometheus-2.26.0.linux-amd64/prometheus --config.file=/opt/prometheus-2.26.0.linux-amd64/prometheus.yml --storage.tsdb.path=/data/prometheus --storage.tsdb.retention=60d &
#5.啟動服務
[root@ga002 opt]# systemctl daemon-reload
[root@ga002 opt]# systemctl enable --now prometheus
#6.查看服務狀態以及端口
[root@ga002 opt]# systemctl status prometheus
[root@ga002 opt]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::9090 :::* LISTEN 3373/prometheus
4.測試連接
在瀏覽器上輸入:`http://服務器IP:9090`,出現如下頁面及表示啟動成功。
http://139.196.79.176:9090
默認只監控了本機一臺,點`Status -->`點`Targets -->`可以看到只監控了本機。
通過`http://服務器IP:9090/metrics`可以查看到監控的數據,在web主界面可以通過關鍵字查詢監控項
http://139.196.79.176:9090/metrics
5.安裝node_exporter監控服務器信息
#被監控端都要執行,這里ga001為例
#1.下載node_exporter安裝包
[root@ga001 ~o]# cd /opt
[root@ga001 opt]# wget https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
#2.解壓node_exporter安裝包
[root@ga001 opt]# tar -xf node_exporter-1.1.2.linux-amd64.tar.gz
#3.創建system啟動
[root@ga001 opt]# vim /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=root
ExecStart=/opt/node_exporter-1.1.2.linux-amd64/node_exporter
[Install]
WantedBy=default.target
或者直接啟動
[root@ga001 opt]# nohup /opt/node_exporter-1.1.2.linux-amd64/node_exporter &
#4.啟動服務
[root@ga001 opt]# systemctl daemon-reload
[root@ga001 opt]# systemctl enable --now node_exporter
#5.查看服務狀態以及端口
[root@ga001 opt]# systemctl status node_exporter
[root@ga001 opt]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::9100 :::* LISTEN 28829/node_exporter
6.測試連接
通過瀏覽器訪問`http://被監控端IP:9100/metrics`就可以查看到node_exporter在被監控端收集的監控信息。
http://139.224.227.189:9100/metrics
7.配置Prometheus數據源
#1.配置Prometheus數據源
[root@ga002 opt]# vim /opt/prometheus-2.17.1.linux-amd64/prometheus.yml
添加如下job內容,并且保存
- job_name: 'node_exporter' # 添加內容
metrics_path: /metrics
static_configs:
- targets: ['ga002:9100','gd001:9100','ga001:9100','gw001:9100','ga003:9100'] # 多個監控數據源則 后?繼續添加,數組形式'a','b'
改完配置文件后,重啟服務
#2.重啟服務
[root@ga002 opt]# systemctl restart prometheus
#3.驗證服務
[root@ga002 opt]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::9100 :::* LISTEN 21944/node_exporter
tcp6 0 0 :::9090 :::* LISTEN 3373/prometheus
回到web管理界面 --> 點`Status --> 點Targets` --> 可以看到多了四臺監控目標
8.安裝mysqld_exporter監控MySQL
#在被管理機gd001上安裝mysqld_exporter組件
#1.下載mysqld_exporter安裝包
[root@gd001 ~o]# cd /opt
[root@gd001 opt]# wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
#2.解壓mysqld_exporter安裝包
[root@gd001 opt]# tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz
#3.數據庫授權
[root@gd001 opt]# mysql
mysql > GRANT REPLICATION CLIENT, PROCESS ON *.* TO 'mysqlexporter'@'localhost' identified by '*************';
mysql > GRANT SELECT ON performance_schema.* TO 'mysqlexporter'@'localhost';
mysql > flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql > quit;
Bye
# (注意:授權ip為localhost,因為不是prometheus服務器來直接找mysql獲取數據,而是prometheus服務器找mysql_exporter,mysql_exporter 再找mysql。所以這個localhost是指的mysql_exporter的IP)
#4.創建一個mysql配置文件,寫上連接的用戶名與密碼(和上面的授權的用戶名 和密碼要對應)
[root@gd001 opt]# vim /opt/mysqld_exporter-0.12.1.linux-amd64/.my.cnf
[client]
user=mysqlexporter
password=mysqlexporter@dataxgroup
#5.創建system啟動mysqld_exporter
[root@gd001 opt]# vim /etc/systemd/system/mysql_exporter.service
#添加如下內容
[Unit]
Description=Mysql Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=root
ExecStart=/opt/mysqld_exporter-0.12.1.linux-amd64/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter-0.12.1.linux-amd64/.my.cnf
[Install]
WantedBy=default.target
或者直接命令行啟動:
[root@gd001 opt]# nohup /opt/mysqld_exporter-0.12.1.linux-amd64/mysqld_exporter --config.my-cnf=/opt/mysqld_exporter-0.12.1.linux-amd64/.my.cnf &
#6.重載并啟動服務
[root@gd001 opt]# systemctl daemon-reload
[root@gd001 opt]# systemctl enable --now mysql_exporter
[root@gd001 opt]# systemctl status mysql_exporter
#7.查看服務狀態,確認端口(9104)
[root@gd001 ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2260/sshd
tcp6 0 0 :::3306 :::* LISTEN 2133/mysqld
tcp6 0 0 :::9100 :::* LISTEN 28829/node_exporter
tcp6 0 0 :::9104 :::* LISTEN 1894/mysqld_exporte
#8.回到prometheus服務器的配置文件里添加被監控的mysql的配置段
[root@ga002 opt]# vim /opt/prometheus-2.17.1.linux-amd64/prometheus.yml
# 最后加上以下內容
- job_name: 'mysql_exporter'
metrics_path: /metrics
static_configs:
- targets: ['gd001:9104']
labels:
instance: gatorade
#9.重啟prometheus
[root@gd001 opt]# systemctl restart prometheus
#10.web界面驗證服務
9.最終Prometheus監控效果
四、Grafana學習
1.什么是Grafana
Grafana是一個開源的度量分析和可視化工具,可以通過將采集的數據分析,查詢,然后進行可視化的展示,并能實現報警。
2.使用Grafana連接Prometheus
#1.下載grafana
[root@ga002 ~]# cd /opt
[root@ga002 opt]# wget https://dl.grafana.com/oss/release/grafana-7.5.5-1.x86_64.rpm
#2.安裝grafana
[root@ga002 opt]# yum install grafana-7.5.5-1.x86_64.rpm
#3.啟動服務
[root@ga002 opt]# systemctl enable --now grafana-server
3.web界面訪問驗證
通過瀏覽器訪問 `http:// grafana服務器IP:3000`就到了登錄界面,使用默認的admin用戶,admin密碼就可以登陸了。
http://139.196.79.176:3000
4.添加Prometheus數據源
下面我們把prometheus服務器收集的數據做為一個數據源添加到grafana,讓grafana可以得到prometheus的數據。
5.監控node_exporter節點
1.配置數據源后導入監控node_exporter節點的模板,
填寫模板ID 11074 對應link https://grafana.com/grafana/dashboards/11074
2.點擊grafana圖標,點擊home,選擇Node Exporter for Prometheus Dashboard EN v20191102
3.最終顯示界面如下:
6.監控MYSQL節點(mysqld_exporter)
1)配置數據源
2)選擇mysql數據庫
3)添加如下配置,并保存
4)導?MySQL監控模板 7362
5)查看mysql界面
7.另一種方式監控mysql節點
在grafana上修改配置文件,并下載安裝mysql監控的dashboard(包含相關**json**文件,這些json文件可以看作是開發人員開發的一個監控模板)
[root@ga002 opt]# vim /etc/grafana/grafana.ini
[dashboards.json]
enabled=true
path=/var/lib/grafana/dashboards
[root@ga002 ~]# cd /var/lib/grafana/
[root@ga002 grafana]# git clone https://github.com/percona/grafana-dashboards.git
[root@ga002 grafana]# cp -r grafana-dashboards/dashboards/ /var/lib/grafana/ 重啟grafana服務
[root@ga002 grafana]# systemctl restart grafana-server
</job_name>
總結
以上是生活随笔為你收集整理的第一章 Promethus(普罗米修斯)监控系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PIC32单片机harmony开发环境搭
- 下一篇: 64位Ubuntu kylin 16.0