監控概述
- 監控就是實時的幫助我們來監控或者探測我們部署的服務是否正常運行
常用的監控
- zabbix
- 優點:組件比較全,缺點:性能不高(zabbix底層用的是Msql資料庫)
- 當zabbix監控大型集群的時候,怎么優化(如何優化資料庫)
- 當資料庫中一個表中資料超過2000w的時候,資料庫的性能急劇下降
- 阿里云云監控
- 騰訊云藍鯨監控
- 普羅米修斯
- 性能比較高,底層使用(時序資料庫,時序資料庫性能比Mysql資料庫性能高很多)
- 原生支持監控容器
普羅尼修斯監控流程
普羅米修斯監控分為兩種情況
-
攜帶metrics介面的服務(kubernetes、ETCD、Docker)
-
不攜帶metrics介面的服務(Nginx、mysql、Linux主機),針對于不攜帶metrics介面的服務,我們需要安裝一個exporter插件
部署普羅米修斯
官網:https://prometheus.io/
下載鏈接:https://github.com/prometheus/prometheus/releases/download/v2.27.1/prometheus-2.27.1.linux-amd64.tar.gz
1. 實驗環境
主機名 外網IP地址 內網IP地址 配置
Prometheus 192.168.15.71 172.16.1.71 記憶體4G
Web01 192.168.15.7 172.16.1.7
2. 安裝Prometheus軟體
- Prometheus主機
1. 安裝Prometheus軟體包
rz -E prometheus-2.25.0.linux-amd64.tar.gz
tar -xf prometheus-2.25.0.linux-amd64.tar.gz -C /usr/local/
2. 建立Prometheus超鏈接
ln -s /usr/local/prometheus-2.25.0.linux-amd64 /usr/local/prometheus
3. 將Prometheus添加至系統環境變數
vim /etc/profile
...
export PROMETHEUS_HOME=/usr/local/prometheus
PATH=$PATH:$PROMETHEUS_HOME
export PATH
4. 多載系統環境變數檔案
source /etc/profile
5. 查看Prometheus的版本資訊
prometheus --version # 如果可以查看到Prometheus的版本資訊,那么就表示Prometheus安裝完成了
6. 啟動Prometheus服務
prometheus --config.file=/usr/local/prometheus/prometheus.yml
3. 測驗Prometheus的監控本機狀態


使用普羅米修斯監控Linux主機
Linux主機下載exporter插件鏈接:
https://github.com/prometheus/node_exporter/releases/download/v1.1.2/node_exporter-1.1.2.linux-amd64.tar.gz
1. 在Linux主機安裝exporter插件
- Web01主機
1. Linux主機安裝exporter插件
rz -E node_exporter-1.1.2.linux-amd64.tar.gz
tar -xf node_exporter-1.1.2.linux-amd64.tar.gz -C /usr/local/
2. 建立node_exporter超鏈接
ln -s /usr/local/node_exporter-1.1.2.linux-amd64/ /usr/local/node_exporter
ls /usr/local/node_exporter
# LICENSE node_exporter(執行檔案) NOTICE
3. 將node_exporter執行檔案目錄添加至環境變數
vim /etc/profile
....
export NODE_EXPORTER=/usr/local/node_exporter
export PATH=$PATH:$NODE_EXPORTER
4. 多載系統環境變數檔案
source /etc/profile
5. 啟動node_exporter服務
node_exporter
6. 查看node_exporter監聽的埠號
netstat -lntp
# tcp6 0 0 :::9100 :::* LISTEN 1701/node_exporter
2. 將Linux主機的exporter插件添加至Prometheus軟體服務
- Prometheus主機
1. 修改Prometheus組態檔
vim /usr/local/prometheus/prometheus.yml
scrape_configs:
...
- job_name: 'Linux Node' # 添加監控項的名字
static_configs:
- targets: ['172.16.1.7:9100'] # 監控主機的ip地址和埠號
2. 啟動Prometheus服務
prometheus --config.file=/usr/local/prometheus/prometheus.yml
3. 測驗Prometheus的監控Linux主機狀態


使用Grafana展示資料
Grafana是業內做資料展示最好的一款產品,官網:https://grafana.com/
- Prometheus主機
1. 安裝Grafana軟體
rz -E grafana-7.3.6-1.x86_64.rpm
yum -y install grafana-7.3.6-1.x86_64.rpm
2. 啟動Grafana軟體服務
systemctl start grafana-server.service
netstat -lntp # 查看grafana服務監聽的埠號
# tcp6 0 0 :::3000 :::* LISTEN 1997/grafana-server
登陸Grafana展示




監控Linux主機單個狀態資訊



監控Linux主機整體的狀態資訊
Prometheus各種展示頁面狀態碼: https://grafana.com/grafana/dashboards?dataSource=prometheus


使用Prometheus監控Mysql資料庫
Prometheus監控Mysql資料庫官網教程:https://github.com/prometheus/mysqld_exporter
實驗環境
主機名 外網IP地址 內網IP地址 配置
Prometheus 192.168.15.71 172.16.1.71 記憶體4G
db01 192.168.15.51 172.16.1.51
1. 在Mysql主機安裝exporter插件
- db01主機
1. db01主機安裝exporter插件
rz -E mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar -xf mysqld_exporter-0.12.1.linux-amd64.tar.gz -C /usr/local/
2. 建立mysql_exporter超鏈接
ln -s /usr/local/mysqld_exporter-0.12.1.linux-amd64 /usr/local/mysqld_exporter
ls /usr/local/mysqld_exporter
# LICENSE mysqld_exporter(執行檔案) NOTICE
3. 創建一個資料庫用戶
mysql -uroot -p123
CREATE USER 'exporter'@'%' IDENTIFIED BY '123'; # 創建一個資料庫用戶
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'%'; # 給創建的資料庫用戶分配一個權限
use mysql; # 切換到mysql庫中
select Host,User from user; # 查看創建的用戶資訊
# Host User
# % exporter
4. 創建資料庫用戶和密碼檔案
vim /usr/local/mysqld_exporter/.my.cnf
[client]
host=172.16.1.51
user=exporter
password=123
5. 啟動mysqld_exporter服務
cd /usr/local/mysqld_exporter/
./mysqld_exporter --config.my-cnf="/usr/local/mysqld_exporter/.my.cnf"
# INFO[0000] Listening on :9104 source="mysqld_exporter.go:283"
如果啟動mysqld_exporter服務出現
Access denied for user ‘root‘@‘db01‘(using password: YES) source=“exporter.go:146“報錯,
請參考下一篇博文解決方法
2. 將Mysql主機的exporter插件添加至Prometheus軟體服務
- Prometheus主機
1. 修改Prometheus組態檔
vim /usr/local/prometheus/prometheus.yml
scrape_configs:
...
- job_name: 'Mysql Server' # 添加監控項的名字
static_configs:
- targets: ['172.16.1.51:9104'] # 監控主機的ip地址和埠號
2. 啟動Prometheus服務
prometheus --config.file=/usr/local/prometheus/prometheus.yml
3. 測驗Prometheus的監控Mysql主機狀態


4. Mysql主機狀態添加至Garafana展示






轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286729.html
標籤:其他
