視頻參考:
https://www.bilibili.com/video/BV16J411z7SQ
一、平台安裝
Prometheus 官網下載地址:
https://prometheus.io/download/
安裝Prometheus
cd /opt tar -zxvf prometheus-2.5.0.linux-amd64.tar.gz
直接啟動
nohup /opt/prometheus-2.5.0.linux-amd64/prometheus --config.file="/opt/prometheus-2.5.0.linux-amd64/prometheus.yml" &
訪問平台主頁:
http://localhost:9090/
二、監控其他機器:
在被監控的機器上安裝Node_exporter節點導出器組件
tar -zxvf node_exporter-0.16.0.linux-amd64.tar.gz
直接啟動即可
nohup /root/node_exporter-0.16.0.linux-amd64/node_exporter &
查看端口是否為監聽狀態
[root@centos6-3 node_exporter-0.16.0.linux-amd64]# lsof -i:9100 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node_expo 3050 root 3u IPv6 16461 0t0 TCP *:jetdirect (LISTEN) # 如果是這樣. 執行命令安裝 yum install -y lsof [root@centos6-3 node_exporter-0.16.0.linux-amd64]# lsof -i:9100 -bash: lsof: command not found
通過此被監控機的地址訪問被收集的信息:
http://centos6-3:9100/metrics
回到監控平台所在機器,增加配置項
vim /opt/prometheus-2.5.0.linux-amd64/prometheus.yml
下面高亮標識的是增加項,其余是平台默認設置
注意配置參數要和默認的對齊,否則yml解析異常,平台無法啟動
# my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. 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: ['localhost:9090'] - job_name: 'agent1' # 取一個job名稱來代 表被監控的機器 static_configs: - targets: ['centos6-3:9100'] # 這里改成被監控機器 的IP,后面端口接9100
中止正在執行的平台進程
pkill prometheus
檢查是否成功中止
lsof -i:9090
然后重啟,並再次檢查
nohup /opt/prometheus-2.5.0.linux-amd64/prometheus --config.file="/opt/prometheus-2.5.0.linux-amd64/prometheus.yml" &
檢查是否成功運行
[root@centos6-2 prometheus-2.5.0.linux-amd64]# lsof -i:9090 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME prometheu 3822 root 6u IPv6 18775 0t0 TCP *:websm (LISTEN) prometheu 3822 root 7u IPv4 18777 0t0 TCP localhost:33806->localhost:websm (ESTABLISHED) prometheu 3822 root 9u IPv6 18778 0t0 TCP localhost:websm->localhost:33806 (ESTABLISHED) prometheu 3822 root 10u IPv6 18793 0t0 TCP localhost:39398->localhost:websm (ESTABLISHED) prometheu 3822 root 11u IPv6 18794 0t0 TCP localhost:websm->localhost:39398 (ESTABLISHED) [root@centos6-2 prometheus-2.5.0.linux-amd64]#
平台訪問后會多出被監控機器的信息:
http://centos6-2:9090/targets
三、監控MYSQL
在被監控的機器上安裝 mysqld_exporter
[root@centos6-1 ~]# tar -zxvf mysqld_exporter-0.11.0.linux-amd64.tar.gz mysqld_exporter-0.11.0.linux-amd64/ mysqld_exporter-0.11.0.linux-amd64/NOTICE mysqld_exporter-0.11.0.linux-amd64/LICENSE mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter
在MYSQL數據庫中創建一個授權用戶
GRANT SELECT,REPLICATION CLIENT,PROCESS
ON *.* TO 'mysql_monitor'@'locahost'
IDENTIFIED BY '123456';
(注意:授權ip為localhost,因為不是prometheus服務器來直接找mariadb 獲取數據,
而是prometheus服務器找mysql_exporter,mysql_exporter 再找mariadb。
所以這個localhost是指的mysql_exporter的IP)
5.7.36 對用戶管理嚴格了,需要前行配置:
SET GLOBAL VALIDATE_PASSWORD_POLICY = LOW; SET GLOBAL VALIDATE_PASSWORD_LENGTH = 6;
然后別忘記刷新權限:
FLUSH PRIVILEGES;
回到mysqld_exporter,配置上授權用戶的賬號信息
vim /root/mysqld_exporter-0.11.0.linux-amd64/.my.cnf
添加信息:
[client] user=mysql_monitor password=123456
啟動mysqld_exporter,檢查是否成功運行:
[root@centos6-1 mysqld_exporter-0.11.0.linux-amd64]# nohup /root/mysqld_exporter-0.11.0.linux-amd64/mysqld_exporter --config.my-cnf="/root/mysqld_exporter-0.11.0.linux-amd64/.my.cnf" & [1] 4449 [root@centos6-1 mysqld_exporter-0.11.0.linux-amd64]# nohup: 忽略輸入並把輸出追加到"nohup.out" [root@centos6-1 mysqld_exporter-0.11.0.linux-amd64]# lsof -i:9104 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld_ex 4449 root 3u IPv6 17725 0t0 TCP *:peerwire (LISTEN)
回到監控平台的主機,增加mysqld_exporter對應的配置項:
vim /opt/prometheus-2.5.0.linux-amd64/prometheus.yml # 配置參數項 - job_name: 'agent_mysql5.7.36' # 取一個job名稱來代 表被監控的機器 static_configs: - targets: ['centos6-1:9104'] # 這里改成被監控機器 的IP,后面端口接9100
重啟平台:
[root@centos6-2 prometheus-2.5.0.linux-amd64]# pkill prometheus [root@centos6-2 prometheus-2.5.0.linux-amd64]# nohup /opt/prometheus-2.5.0.linux-amd64/prometheus --config.file="/opt/prometheus-2.5.0.linux-amd64/prometheus.yml" & [2] 4699 [1] Done nohup /opt/prometheus-2.5.0.linux-amd64/prometheus --config.file="/opt/prometheus-2.5.0.linux-amd64/prometheus.yml" [root@centos6-2 prometheus-2.5.0.linux-amd64]# nohup: 忽略輸入並把輸出追加到"nohup.out" [root@centos6-2 prometheus-2.5.0.linux-amd64]# lsof -i:9090 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME prometheu 4699 root 5u IPv6 20328 0t0 TCP *:websm (LISTEN) prometheu 4699 root 7u IPv4 20330 0t0 TCP localhost:34188->localhost:websm (ESTABLISHED) prometheu 4699 root 8u IPv6 20331 0t0 TCP localhost:websm->localhost:34188 (ESTABLISHED) [root@centos6-2 prometheus-2.5.0.linux-amd64]#
刷新一下Target頁面就有了對應的監控信息:
四、Grafana可視化工具
安裝Grafana
命令執行發現安裝失敗,缺少依賴:
[root@centos6-3 ~]# rpm -ivh grafana-5.3.4-1.x86_64.rpm warning: grafana-5.3.4-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY error: Failed dependencies: urw-fonts is needed by grafana-5.3.4-1.x86_64 [root@centos6-3 ~]#
可以直接使用yum安裝此依賴
sudo yum install -y urw-fonts
然后可以了
[root@centos6-3 ~]# rpm -ivh grafana-5.3.4-1.x86_64.rpm warning: grafana-5.3.4-1.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 24098cb6: NOKEY Preparing... ########################################### [100%] 1:grafana ########################################### [100%] ### NOT starting grafana-server by default on bootup, please execute sudo /sbin/chkconfig --add grafana-server ### In order to start grafana-server, execute sudo service grafana-server start POSTTRANS: Running script [root@centos6-3 ~]#
自啟動grafana 和 開啟grafana
# centos7 systemctl start grafana-server systemctl enable grafana-server # centos6 service grafana-server start chkconfig grafana-server
檢查是否運行
[root@centos6-3 ~]# lsof -i:3000 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME grafana-s 5160 grafana 10u IPv6 22936 0t0 TCP *:hbci (LISTEN)
訪問平台頁面:
賬號信息 admin / admin
http://centos6-3:3000/login
數據源設置項:
側邊欄導航篩選
五、Grafana監控MySQL數據庫
編輯配置文件:
vim /etc/grafana/grafana.ini
在最下面添加配置項:
[dashboards.json] enabled = true path = /var/lib/grafana/dashboards
切換到這個目錄下,通過GIT拉取dashboard
# 如果沒有git執行此命令安裝
yum install git -y
# 切換到lib/grafana下面拉取
cd /var/lib/grafana/
git clone https://github.com/percona/grafana-dashboards.git
# 然后重命名
cp -r grafana-dashboards/dashboards/ /var/lib/grafana/
# 重啟服務
service grafana-server restart
我發現直接拉倉庫很慢,改在本機win中拉取了也不行
這個辦法可行,在Gitee上搬Github庫,再從Gitee上面拉取
https://blog.csdn.net/qq_26736193/article/details/105387507
回到grafana的面板,創建新面板時使用【導入】
使用JSON文件進行導入:
這里和教程的說的不太一樣,Grafana已經分別用目錄存放了,文件也改名了
導入發現報錯,沒有數據源:
回到數據源這里,改回默認的Prometheus
發現模板對不上號,換用了,顯示算正常了,但是沒有數據
https://blog.csdn.net/qq_40460909/article/details/81386666