zoukankan      html  css  js  c++  java
  • [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 選項了

  • 相关阅读:
    安装Visual Studio的插件AnkhSvn
    从零开始安装 Ambari (1) -- 安装前的准备工作
    centos7 安装 mysql
    hortonworks docker 安装
    Kafka connect
    KONG -- 图形化管理(Kong Dashboard)
    KONG -- 配置 service 并添加 key-auth
    KONG 安装 (在 CentOS 7 中)
    kylin cube 构建过程
    sqoop 安装与命令
  • 原文地址:https://www.cnblogs.com/iiiiher/p/8252046.html
Copyright © 2011-2022 走看看