promeths+grafana監控promethes
部署時間 2020.12.14
ip | 部署服務 | 系統版本 |
---|---|---|
10.0.4.198 | promethes,node_exporter,grafana,mysql | centos7 |
10.0.3.103 | node_exporter,postgres_exporter | centos6 |
10.0.3.106 | node_exporter,postgres_exporter | centos6 |
10.0.3.109 | node_exporter,postgres_exporter | centos6 |
10.0.3.111 | node_exporter,postgres_exporter | centos6 |
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 privileges;
update 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
相關文章
- 黑盒監控、日誌監控
- 6.prometheus監控--監控dockerPrometheusDocker
- TiDB監控實現--存活監控TiDB
- 監控
- 聊聊前端監控——錯誤監控篇前端
- APM效能監控軟體的監控型別服務及監控流程型別
- 11.prometheus監控之黑盒(blackbox)監控Prometheus
- 3-主機監控、應用監控
- Prometheus+Grafana實現服務效能監控:windows主機監控、Spring Boot監控、Spring Cloud Alibaba Seata監控PrometheusGrafanaWindowsSpring BootCloud
- zabbix監控
- centos 監控CentOS
- nginx監控Nginx
- openGauss 監控
- Linux 監控Linux
- MySQL監控-Datadog資料庫監控調研MySql資料庫
- 阿里雲容器Kubernetes監控(一)-資源監控阿里
- 一種對雲主機進行效能監控的監控系統及其監控方法
- 「Eolink Apikit 教程」API 異常監控-建立 API 監控API
- Conntrack 監控,別等故障了再回來加監控
- Hystrix 監控視覺化頁面——Dashboard 流監控視覺化
- 前端資料監控到底在監控什麼?前端
- TPlink 監控嵌入
- 夜鶯監控
- Prometheus監控mongoPrometheusGo
- prometheus JVM監控PrometheusJVM
- MySQL監控工具MySql
- php效能監控PHP
- docker監控方案Docker
- Verilog 監控 Monitor
- Zabbix監控ActiveMQMQ
- 監控雜談
- Prometheus 監控arangodbPrometheusGo
- 微服務監控微服務
- 前端效能監控前端
- 如何監控ElasticsearchElasticsearch
- 使用Admin監控
- 海康安防產品-[監控]影片監控原理介紹
- upptime:使用GitHub Actions監控你的網站健康監控Github網站