promeths+grafana監控promethes

崔沐橙發表於2020-12-15

部署時間 2020.12.14

ip部署服務系統版本
10.0.4.198promethes,node_exporter,grafana,mysqlcentos7
10.0.3.103node_exporter,postgres_exportercentos6
10.0.3.106node_exporter,postgres_exportercentos6
10.0.3.109node_exporter,postgres_exportercentos6
10.0.3.111node_exporter,postgres_exportercentos6

1.安裝資料庫(首先要安裝資料庫,儲存grafana的資料)
yum install -y mysql-server(這裡我安裝的mysql是8版本的)
systemctl start mysqld
mysql8以上密碼修改(該連結為修改mysql8密碼的正確方式,十分詳細,可以參考下,我下面所寫的也是參考該連結做的)
在這裡插入圖片描述
檢視mysql初始密碼
mysql -uroot -p密碼為初始化的密碼

update user set Host='%' where User='root'; 
select host, user, authentication_string, plugin from mysql.user;(查詢使用者,密碼以及密碼認證方式,我這裡是已經修改後的)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; (密碼必須為大小寫字母數字加特殊字元,不允許簡單密碼)

注:
mysql> update user set password=password(“新密碼”) where user=”使用者名稱”;
執行後報錯  ERROR 1054(42S22) Unknown column ‘password’ in ‘field list’
錯誤的原因是 5.7版本下的mysql資料庫下已經沒有password這個欄位了,password欄位改成了authentication_string
正確的為:

update mysql.user set authentication_string=password('*******') where user='*******'; 

在這裡插入圖片描述

flush privilegesupdate mysql.user set plugin='mysql_native_password' where user='root';(更新密碼認證方式)
建立grafana的資料庫,grafana啟動後會自動建立相應的表。
CREATE DATABASE grafana DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

2.安裝grafana(我這裡安裝的是grafana6.0.1版本,大家最好選擇7以上的版本,我安裝完成後發現6有很多圖形功能都不支援)

wget https://dl.grafana.com/oss/release/grafana-6.0.1.linux-amd64.tar.gz
tar zxf grafana-6.0.1.linux-amd64.tar.gz -C /data
mv /data/grafana-6.0.1/ /data/grafana
cp /data/grafana/conf/defaults.ini /data/grafana/conf/defaults.ini.bak 備份配置檔案
vim /data/grafana/conf/defaults.ini

在這裡插入圖片描述
以上為grafana各路徑位置
在這裡插入圖片描述

以上為grafana資料庫配置

mkdir -p /data/grafana/data/log建立資料目錄
/data/grafana/bin/grafana-server -homepath='/data/grafana/' & 啟動grafana

在這裡插入圖片描述
檢視服務是否啟動,grafana預設埠為3000
在這裡插入圖片描述

前端頁面登入grafana,瀏覽器輸入10.0.4.198:3000即可(預設帳號/密碼:admin/admin)
使用預設密碼登入後會要求你更改密碼。

2.安裝promethes

wget https://github.com/prometheus/prometheus/releases/download/v2.8.0/prometheus-2.8.0.linux-amd64.tar.gz ##獲取安裝包
tar -zxf prometheus-2.8.0.linux-amd64.tar.gz -C /data/
mv /data/prometheus-2.8.0.linux-amd64 /data/prometheus-2.6.0
/data/prometheus-2.6.0/prometheus --web.enable-lifecycle --web.enable-admin-api &

在這裡插入圖片描述
promethes的預設埠為9090
在這裡插入圖片描述
前端頁面登入檢視,瀏覽器輸入10.0.4.198:9090檢視prometheus是否成功,出現上圖所示介面說明成功

3.給所有機器安裝node_exporter(以10.0.4.198為例,監控的機器都安裝,可以採集機器的基礎資料)
node_exporter簡介
Exporter是Prometheus的一類資料採集元件的總稱。它負責從目標處蒐集資料,並將其轉化為Prometheus支援的格式。與傳統的資料採集元件不同的是,它並不向中央伺服器傳送資料,而是等待中央伺服器主動前來抓取。
node-exporter用於採集伺服器層面的執行指標,包括機器的loadavg、filesystem、meminfo等基礎監控,類似於傳統主機監控維度的zabbix-agent。
node-export由prometheus官方提供、維護,不會捆綁安裝,但基本上是必備的exporter。
安裝:

wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz 
tar zxf node_exporter-0.17.0.linux-amd64.tar.gz -C /data
mv /data/node_exporter-0.17.0.linux-amd64/ /data/node_exporter
/data/node_exporter/node_exporter & 啟動node_exporter

在這裡插入圖片描述
檢視node_exporter是否啟動,預設埠為9100
在這裡插入圖片描述
瀏覽器輸入10.0.4.198:9100介面上圖所示
點選metrics即可檢視採集到的機器資料

在這裡插入圖片描述
採集的資料如上圖所示,如果看到上圖所示介面,說明配置成功

4.postgres服務上的機器安裝postgres_exporter(以10.0.3.103為例)

wget https://github.com/wrouesnel/postgres_exporter/archive/v0.8.0.tar.gz
tar zxf postgres_exporter_v0.8.0_linux-amd64.tar.gz -C /data/
mv /data/postgres_exporter_v0.8.0_linux-amd64/ /data/postgres_exporter
cd /data/postgres_exporter/
vim start.sh

#!/bin/bash
cd /data/postgres_exporter
export PATH=/data/postgresql/bin/:$PATH
# 下面的password替換為你自己的postgres使用者的密碼
export  DATA_SOURCE_NAME="user=postgres host=localhost password=postgres port=5432 dbname=pgscdb sslmode=disable"
nohup ./postgres_exporter --web.listen-address=":9187" >/dev/null 2>&1 &

sh start.sh

在這裡插入圖片描述
在這裡插入圖片描述
檢視postgres_exporter是否啟動,預設埠為9187
在這裡插入圖片描述
瀏覽器輸入10.0.3.103:9187檢視如上圖所示
在這裡插入圖片描述
點選metrics即可檢視到postgres_export採集的資料,出現這樣的介面表示成功

5.在10.0.3.103,10.0.3.106,10.03.109,10.0.3.111,10.0.4.198上部署node_export採集機器的基礎效能資訊,在10.0.3.103,10.0.3.106,10.0.3.109,10.0.3.111上部署postgres_export採集postgres的資訊。
6.修改promethes的配置檔案並重啟

cd /data/prometheus-2.6.0/
cp prometheus.yml prometheus.yml.bak
vim prometheus.yml
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_configs:

- job_name: 'promethus'
  static_configs:
     - targets: ['10.0.4.198:9090']

- job_name: 'system'
  static_configs:
     - targets: ['10.0.4.198:9100']
     - targets: ['10.0.3.103:9100']
     - targets: ['10.0.3.106:9100']
     - targets: ['10.0.3.109:9100']
     - targets: ['10.0.3.111:9100']

- job_name: 'postgres'
  static_configs:
     - targets: ['10.0.3.103:9187']

     - targets: ['10.0.3.106:9187']
     - targets: ['10.0.3.109:9187']

在這裡插入圖片描述

ps -ef | grep prometheus
kill 18211
./prometheus --web.enable-lifecycle --web.enable-admin-api &
在這裡插入圖片描述

前端頁面檢視
登入10.0.4.198:9090/targets檢視各節點狀態
也可以通過下圖status中的targets頁面檢視
在這裡插入圖片描述

7.grafana繪製圖形

1)繪製基礎效能圖形
登入grafana檢視
在這裡插入圖片描述PostgreSQL Database與Node Exporter FULL是我已經生成的兩個介面
這裡我們滑鼠放在“+”上選擇單擊imprt進入以下介面
在這裡插入圖片描述
我們可以直接從grafana官網提供的模板配置相應的視覺化介面
官網模板連結:https://grafana.com/grafana/dashboards
首先匯入基礎效能相對應的模板
在這裡插入圖片描述

Data Source(資料來源)
我們選擇promethes,我們的資料來源是promethes
Collector(收集)
我麼是通過nodeexporter收集資料的
Sort By(排序)
我喜歡按下載量排序
選擇自己喜歡的一個模板

在這裡插入圖片描述
如上圖所示,11074為該模板的id我們直接匯入改id即可(該模板是我測試新建的模板,我的成品圖使用的模板id為1860)
在這裡插入圖片描述
輸入id號後點選load即可
在這裡插入圖片描述
load後會出現上圖的介面,輸入name,選擇資料來源後點選左下import匯入即可.(到這裡基礎效能的繪製就已經完成了,你可以選擇其它的模板繪製圖形介面)
如果你用的grafana和我的版本相同會出現以下錯誤
在這裡插入圖片描述

這個時候就得提到另外一個坑了,如下所示:
在這裡插入圖片描述
我們使用的grafana版本還是6.0的,所以json檔案中需要把table-old替換為table。
在這裡插入圖片描述

點選右上角齒輪修改json檔案中內容
在這裡插入圖片描述

選擇JSON Model,將其中的tables-old全部替換為table(有兩處),修改完後點選save然後再次檢視。
在這裡插入圖片描述

這時基本就可以顯示了,但還是有問題,等我完成poetgres的圖形繪製後再來描述問題。
2)繪製postgres的圖形
匯入模板
在這裡插入圖片描述

選擇合適的模板進行匯入(算則postgres相關的模板,可不要選成其他資料庫的)

這裡我選擇9628模板,修改名稱和資料來源後匯入模板即可。
在這裡插入圖片描述
這裡的start time,max wal size,seq page cost都是沒有資料的;
點選Edit修改相應資料
在這裡插入圖片描述
max wal size
在這裡插入圖片描述
初始設定如上圖所示
我在promethes查詢到的資料沒有pg_settings_max_wal_size_bytes該資料,有的資料是pg_settings_max_wal_senders
在這裡插入圖片描述
將其修改為
在這裡插入圖片描述
seq page cost修改參照同一行其它資料;
start time修改如下所示:
在這裡插入圖片描述

pg_postmaster_start_time_seconds不存在
修改如下圖所示:
在這裡插入圖片描述

###填坑
關於監控的記憶體使用率異常的說明
如果你監控的機器版本不相同,需要在這裡注意的是centos6和centos7收集的引數是不一樣的,可以看下是否是因為引數原因導致的。
centos6中可用記憶體表示為
在這裡插入圖片描述
即node_memory_MemFree_bytes
centos7中可用記憶體表示為

node_memory_MemAvailable_bytes
centos7中也可以使用node_memory_MemFree_bytes表示可用記憶體
在這裡插入圖片描述

成品圖:
node(node的模板為1860)
在這裡插入圖片描述
在這裡插入圖片描述

POSTGRES
在這裡插入圖片描述

在這裡插入圖片描述

相關文章