[k8s]prometheus+grafana監控node和mysql(普羅/grafana均vm安裝)


https://github.com/prometheus/prometheus

Architecture overview

Prometheus Server

Prometheus Server 負責從 Exporter 拉取和存儲監控數據,並提供一套靈活的查詢語言(PromQL)供用戶使用。

Exporter

Exporter 負責收集目標對象(host, container…)的性能數據,並通過 HTTP 接口供 Prometheus Server 獲取。

可視化組件

監控數據的可視化展現對於監控方案至關重要。以前 Prometheus 自己開發了一套工具,不過后來廢棄了,因為開源社區出現了更為優秀的產品 Grafana。Grafana 能夠與 Prometheus 無縫集成,提供完美的數據展示能力。

Alertmanager

用戶可以定義基於監控數據的告警規則,規則會觸發告警。一旦 Alermanager 收到告警,會通過預定義的方式發出告警通知。支持的方式包括 Email、PagerDuty、Webhook 等.

監控+日志方案

特性

  • server端基於http拉模型

  • 官網說,多維數據模型,基於多維靈活查詢

  • target可以自動發現或手工配置

  • 2.0針對cpu 內存 io 性能提高了不少

  • 告警規則從自定義格式遷移到yaml格式,使用2.0的promtool工具可以完成格式的轉換

  • Prometheus 提供了采集數據功能,自帶db.

  • 本次采用vm安裝Prometheus2.0,采集node和mysql的指標,並用grafana展示

  • 其組件如下,符合功能模塊化. exporter是各種app的采集者.

https://prometheus.io/download/

prometheus
alertmanager

blackbox_exporter
consul_exporter
graphite_exporter
haproxy_exporter

memcached_exporter
statsd_exporter

mysqld_exporter  -本次用來采集mysql的指標   ,收集Mysql數據
node_exporter    -本次用來采集node節點的指標,收集系統數據

pushgateway

本次采集mysql和node實驗架構圖

參考

物理機安裝普羅2.0

- 下載軟件
https://prometheus.io/download/

mysqld_exporter-0.10.0.linux-amd64.tar.gz
node_exporter-0.15.2.linux-amd64.tar.gz
prometheus-2.0.0.linux-amd64.tar.gz


- 解壓prometheus

[root@n1 prometheus-2.0.0.linux-amd64]# ls
console_libraries  consoles  data  LICENSE  NOTICE  prometheus  prometheus.yml  prometheus.yml.default  promtool


- 修改prometheus.yml
$ cat prometheus.yml
global:
  scrape_interval:     15s
  evaluation_interval: 15s

scrape_configs:
  - job_name: linux
    static_configs:
      - targets: ['192.168.14.11:9100']
        labels:
          instance: db1

  - job_name: mysql
    static_configs:
      - targets: ['192.168.14.11:9104']
        labels:
          instance: db1

注:
    0,啟動后自帶dashboard,通過http://192.168.14.11:9090來訪問
    1.這里添加2個targets
    2.普羅通過配置文件主動去找explore

啟動node_exporter

- 解壓
$ tar xf node_exporter-0.15.2.linux-amd64.tar.gz
$ ls
LICENSE  node_exporter  NOTICE

- 啟動二進制即可
$ ./node_exporter

啟動mysql-nodeexplor

- 解壓
$ tar xf mysqld_exporter-0.10.0.linux-amd64.tar.gz

$ ls
LICENSE  mysqld_exporter  NOTICE



- 啟動mysql
docker run -d \
    -p 3306:3306 \
    -v /data/mysql:/var/lib/mysql \
    -v /etc/localtime:/etc/localtime \
    --name mysql5 \
    --restart=always \
    -e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.6.23 --character-set-server=utf8 --collation-server=utf8_general_ci


- 啟動mysqld_exporter
$ cat > .my.cnf<<EOF
[client]
user=root
password=123456
EOF

$ ./mysqld_exporter -config.my-cnf=".my.cnf"

注意: 首先要創建一個.my.conf的配置,默認讀取的是 /root/.my.cnf ,可以指定路徑

我們再次回到Status->Targets頁面,可以看到兩個Target的狀態已經變成UP了:

grafana安裝

- 下載解壓
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.3.linux-x64.tar.gz 
tar -zxvf grafana-4.6.3.linux-x64.tar.gz 

- 修改配置

392 [dashboards.json]
393 enabled = true
394 path = /var/lib/grafana/dashboards

- 下載mysql dashboard
mkdir -p /var/lib/grafana/ && cd /var/lib/grafana/
git clone https://github.com/percona/grafana-dashboards.git

- dashboard包含了,可以參考他的github, 具體配置promethues很全,還有效果圖
Amazon RDS OS metrics (CloudWatch datasource)
Cross Server Graphs
Disk Performance
Disk Space
MongoDB Cluster Summary
MongoDB Overview
MongoDB ReplSet
MongoDB RocksDB
MongoDB WiredTiger
MongoDB MMAPv1
MySQL InnoDB Metrics
MySQL InnoDB Metrics Advanced
MySQL MyISAM/Aria Metrics
MySQL Overview
MySQL Performance Schema
MySQL Query Response Time
MySQL Replication
MySQL Table Statistics
MySQL TokuDB Graphs
MySQL User Statistics
PXC/Galera Cluster Overview
PXC/Galera Graphs
Prometheus
ProxySQL Overview
Summary Dashboard
System Overview
Trends Dashboard


$ tree /var/lib/grafana/
/var/lib/grafana/
└── dashboards
    ├── Advanced_Data_Exploration.json
    ├── Amazon_RDS___Aurora_MySQL__Metrics.json
    ├── Cross_Server_Graphs.json
    ├── Disk_Performance.json
    ├── Disk_Space.json
    ├── MongoDB_Cluster_Summary.json
    ├── MongoDB_InMemory.json
    ├── MongoDB_MMAPv1.json
    ├── MongoDB_Overview.json
    ├── MongoDB_ReplSet.json
    ├── MongoDB_RocksDB.json
    ├── MongoDB_WiredTiger.json
    ├── MySQL_InnoDB_Metrics_Advanced.json
    ├── MySQL_InnoDB_Metrics.json
    ├── MySQL_MyISAM_Aria_Metrics.json
    ├── MySQL_MyRocks_Metrics.json
    ├── MySQL_Overview.json
    ├── MySQL_Performance_Schema.json
    ├── MySQL_Query_Response_Time.json
    ├── MySQL_Replication.json
    ├── MySQL_Table_Statistics.json
    ├── MySQL_TokuDB_Metrics.json
    ├── MySQL_User_Statistics.json
    ├── Prometheus.json
    ├── ProxySQL_Overview.json
    ├── PXC_Galera_Cluster_Overview.json
    ├── PXC_Galera_Graphs.json
    ├── Summary_Dashboard.json
    ├── System_Overview.json
    └── Trends_Dashboard.json


- 啟動grafana-server
bin/grafana-server

查看dashboard

下載dashboard前

下載dashboard后(無需通過dashboard導入了)

  • 為grafana添加數據源,名稱為Prometheus


注意: 名字一定要是Prometheus,因為你下載別人的dashboard,內置的源就是這個名字

監控vm和mysql效果圖

節點

mysql

node_expolore的本質

啟動node_exporter后本質上是暴漏節點app的metric.

啟動了相關的explore即可以通過相關的url訪問到其metric.

譬如node

- 解壓
$ tar xf node_exporter-0.15.2.linux-amd64.tar.gz
$ ls
LICENSE  node_exporter  NOTICE

- 啟動二進制即可
$ ./node_exporter

又譬如mysql

直觀上他們是通過端口來區分的.

本質是對應的二進制是訪問某個app指標api的一個封裝程序包

docker安裝普羅

- 直接啟動
docker run --name prometheus -d -p 9090:9090 quay.io/prometheus/prometheus


- 需要預置配置文件
docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \
       -v /tmp/prometheus-data:/prometheus-data \
       prom/prometheus

- 訪問
http://localhost:9090 /訪問。

kube-router官方的grafana dashboard\

kube-router支持 —metric-port 選項了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM