[k8s]prometheus+grafana监控node和mysql(普罗/grafana均vm安装)

https://github.com/prometheus/prometheusnode

Architecture overview

Prometheus Server

Prometheus Server 负责从 Exporter 拉取和存储监控数据,并提供一套灵活的查询语言(PromQL)供用户使用。mysql

Exporter

Exporter 负责收集目标对象(host, container…)的性能数据,并经过 HTTP 接口供 Prometheus Server 获取。linux

可视化组件

监控数据的可视化展示对于监控方案相当重要。之前 Prometheus 本身开发了一套工具,不事后来废弃了,由于开源社区出现了更为优秀的产品 Grafana。Grafana 可以与 Prometheus 无缝集成,提供完美的数据展现能力。git

Alertmanager

用户能够定义基于监控数据的告警规则,规则会触发告警。一旦 Alermanager 收到告警,会经过预约义的方式发出告警通知。支持的方式包括 Email、PagerDuty、Webhook 等.github

监控+日志方案

特性

  • server端基于http拉模型
  • 官网说,多维数据模型,基于多维灵活查询
  • target能够自动发现或手工配置sql

  • 2.0针对cpu 内存 io 性能提升了很多
  • 告警规则从自定义格式迁移到yaml格式,使用2.0的promtool工具能够完成格式的转换
  • Prometheus 提供了采集数据功能,自带db.
  • 本次采用vm安装Prometheus2.0,采集node和mysql的指标,并用grafana展现
  • 其组件以下,符合功能模块化. exporter是各类app的采集者.docker

https://prometheus.io/download/json

prometheus
alertmanager

blackbox_exporter
consul_exporter
graphite_exporter
haproxy_exporter

memcached_exporter
statsd_exporter

mysqld_exporter  -本次用来采集mysql的指标   ,收集Mysql数据
node_exporter    -本次用来采集node节点的指标,收集系统数据

pushgateway

本次采集mysql和node实验架构图

参考segmentfault

物理机安装普罗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了:
api

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 選項了

相关文章
相关标签/搜索