k8s
  • Initial page
  • 序言
  • 前言
    • 发展历史
    • CNCF - 云原生计算基金会简介
    • Kubernetes与云原生应用的概念
  • 概念与原理
    • 基本概念总结
    • 开放接口
      • CRI - Container Runtime Interface
      • CNI - Container Network Interface
      • CSI - Container Storage Interface
    • 核心概念与原理
      • Kubernetes简介
      • Kubernetes架构与原理
      • 核心组件
      • 设计理念
      • 核心组件原理
        • etcd概念与原理
          • Etcd基于RAFT的一致性
          • Etcd v2 与 v3存储
        • kube-apiserver
        • kube-scheduler
        • kube-Controller Manager
        • Kubelet
        • kubectl常用命令
      • kubectl
      • kube-proxy
      • IPVS负载均衡
      • kube-dns
      • Federation-集群联邦
      • kubeadm
    • 资源对象与基本概念解析
    • 资源对象
      • Pod
        • Pod概述
        • Pod解析
        • Pod 的生命周期
        • 探针
        • Init 容器
        • Pause容器
        • Pod 安全策略
        • Pod hook
        • Pod Preset
        • pod其他设置
        • Pod中断与PDB
    • Kubernetes中的网络
      • 图解Kubernetes网络(一)
      • 图解Kubernetes网络(二)
      • 图解Kubernetes网络(三)
      • calico
      • flannel
    • 转发K8S后端服务的四种方式
    • 集群资源对象
      • Node
      • Namespace
      • Label
      • Annotation
      • Taint和Toleration(污点和容忍
      • 垃圾收集
      • Autoscaling
      • Horizontal Pod Autoscaling
        • Metrics-Server
        • Heapster
      • ReplicationController和ReplicaSet
    • 控制器资源对象
      • CronJob
      • Job
      • DaemonSet
      • Deployment
      • StatefulSet
    • 服务发现-资源对象
      • DNS原理讲解
      • Ingress 选型
      • Service
      • Ingress
    • 存储对象
      • ConfigMap
      • Volume
      • Persistent Volume(持久化卷)
      • StorageClass
      • 本地持久化存储
      • Secret
    • 策略对象
      • Resource Quota
      • SecurityContext
    • 身份对象
      • 认证
      • Service Account
      • RBAC——基于角色的访问控制
      • 准入控制
      • Network Policy
    • 资源调度
      • QoS(服务质量等级)
  • 插件扩展
    • Kubernetes的CI/CD
    • Dashboard
    • CoreDNS
    • 监控
      • 概述
      • 第1章 采集
        • Probes
        • Docker Stats
        • cAdvisor
        • Heapster
          • HPA
        • metrics-server
        • custom metrics自定义指标
        • kube-state-metrics
        • node-exporter
        • Prometheus
          • go 自定义metric
          • 本地存储
          • Prometheus概述
          • Prometheus基本架构
          • Prometheus部署方案
          • Prometheus的配置与服务发现
          • PromQL查询解析
          • Prometheus数据可视化
          • Prometheus存储机制
        • Sysdig
        • Untitled
      • 自定义监控
      • Custom-Metrics及Prometheus监控系统
      • grafana各种类型监控-实用
    • 日志
    • 存储
      • Kubernetes Ceph 工作原理详解
    • Metrics
    • GPU
    • Cluster AutoScaler
    • CI/CD
      • 基于DOCKER的CI工具—DRONE
      • DRONE安装指南
      • 如何使用DRONE
      • Drone
      • Jenkins
        • jenkins 集成 keycloak 认证
    • 50个免费的Kubernetes工具盘点
      • Kube集群部署工具
      • 监控工具
      • 测试工具
      • 安全工具
      • 实用的CLI工具
      • 开发工具
      • 无服务器/函数工具
      • 原生服务发现
      • 原生可视化与控制
    • Untitled
  • 领域应用
    • Istio
      • Helm安装
      • 安装并试用Istio service mesh
      • 示例应用部署
      • Bookinfo 应用-
      • 配置请求的路由规则
      • 故障注入
      • 流量转移
      • Istio流量管理实现机制深度解析
      • istio:监控能力介绍
      • Istio 04:Istio性能及扩展性介绍
      • Untitled
  • 实践
    • 大规模集群
    • 高可用
  • k8s运维排查
    • 常用命令
    • Kubernetes之YAML文件
      • yaml文件例子--pod
      • yaml文件例子--rc
    • Kubernetes运维
      • 集群管理
      • 集群与应用监控
      • 日志收集与管理
      • 常见问题定位
      • 权限管理RBAC
    • 排错概览
    • 集群排错
      • kubernetes集群管理常用命令一
    • Pod 排错
    • 网络排错
      • 容器内抓包定位网络问题
    • PV 排错
    • Windows 排错
    • 云平台排错
    • 集群安装脚本
    • 排错工具
    • 常见问题
      • k8s故障解决干货文档链接
      • 记一次Docker/Kubernetes上无法解释的连接超时原因探寻之旅
      • service没有负载均衡
      • kubernetes集群etcd空间配额2G的坑优化
    • K8S--100问
      • 解决 Docker 日志文件太大的问题
      • Kubernetes集群里容器之间的通讯方式
      • k8s 优化
      • lxcfs 在容器内显示容器的 CPU、内存状态
      • kubectl 创建 Pod流程
      • k8s网络-iptables
      • k8s底层网络原理
      • 网络排查
      • kubectl top 和 cadvisor metric ,docker state不一致的问题
      • 容器挂载数据卷的几种情况
      • 容器的终止流程
      • Kubernetes 中如何保证优雅地停止 Pod
      • K8S的apiVersion
      • 如何在Pod中执行宿主机上的命令
      • 创建 Pod 流程
      • k8s主要组件说明
      • 节点网络规划
      • Deployment管理方式
      • pod的分配方式
  • 深入浅出k8s
    • 说明
    • k8s发布策略介绍
    • oom kill原理讲解
    • Kubernetes 的架构设计与实现原理
  • 附录
    • CKA认证
    • 生态圈
    • 资讯快报
      • 2018态势回顾与2019年前景展望
      • Untitled
    • 学习资源
    • 参考文档
    • Kubernetes版本更新日志
      • Kubernetes 1.14 更新日志
      • Kubernetes 1.13 更新日志
      • Kubernetes1.12更新日志
      • Kubernetes1.10更新日志
      • Kubernetes1.11更新日志
  • 思维导图
    • k8s
    • DEVOPS
  • DEVOPS
    • 开源仓库-nexus
      • 一,nexus的安装
      • 二,使用nexus3配置docker私有仓库
      • 三,使用nexus3配置maven私有仓库
      • 四,nexus-3.14.0升级到3.15.2
      • 五,nexus3搭建golang私服
    • vpn
      • openvpn
    • Tcpdump 示例教程
    • Ipsec VPN-centos7使用strangwang搭建vpn
    • yum安装redis及常用指令
    • 数据库
      • mysql表操作
      • mysql 库常用操作及备份还原
      • MySQL 优化实施方案
    • NSQ
      • nsq问题解答
      • 选型
      • docker-compose部署 简单nsq 集群
    • 部署Redis集群
    • zookeeper安装及使用
    • Etcd
      • Untitled
      • Etcd配置
  • k8s系统完整部署
    • CentOS7.5 使用二进制程序部署Kubernetes1.12.2
    • 二进制的方式部署 K8S-1.16 高可用集群
    • CoreOS部署Kubernetes集群
    • EFK
      • 日志-kafka
      • logstash的部署、整合ELK+Filebeat
      • 应用日志收集
      • ES搭建
      • es集群部署
      • ElasticSearch技术原理
      • Elasticsearch操作
      • kibana
      • kibana简单使用
      • 非K8S主机部署Filebat
    • 镜像仓库-Harbor
    • Harbor 2.6.2安装
    • cURL 命令获取本机外网 IP
    • Shell 解析 JSON
    • 制作 gitbook 文档镜像,运行在 K8S 上
    • Kubernetes 之 MySQL 持久存储和故障转移
    • 如何删除etcd上的旧数据
    • Git 实战教程
  • 生活
    • 信合.阳光城
Powered by GitBook
On this page
  • Grafana监控系统之Prometheus+Grafana监控系统搭建
  • 一. 概述
  • 二. Grafana监控系统之Prometheus+Grafana监控系统搭建
  • 三. Grafana监控系统之搭建其他服务器监控系统
  • 四. Grafana监控系统之邮件报警
  • 五. Grafana监控系统之搭建MySQL监控系统
  • 六. Grafana监控系统之开放API
  • 七. Grafana监控系统之监控RabbitMQ
  • 八. Grafana监控系统之监控Redis
  • 九.Grafana监控系统之监控TiDB
  1. 插件扩展
  2. 监控

grafana各种类型监控-实用

PreviousCustom-Metrics及Prometheus监控系统Next日志

Last updated 5 years ago

Grafana监控系统之Prometheus+Grafana监控系统搭建

导航

一. 概述

1.1 Grafana介绍

Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。它主要有以下六大特点:

  1. 展示方式:快速灵活的客户端图表,面板插件有许多不同方式的可视化指标和日志,官方库中具有丰富的仪表盘插件,比如热图、折线图、图表等多种展示方式;

  2. 数据源:Graphite,InfluxDB,OpenTSDB,Prometheus,Elasticsearch,CloudWatch和KairosDB等;

  3. 通知提醒:以可视方式定义最重要指标的警报规则,Grafana将不断计算并发送通知,在数据达到阈值时通过Slack、PagerDuty等获得通知;

  4. 混合展示:在同一图表中混合使用不同的数据源,可以基于每个查询指定数据源,甚至自定义数据源;

  5. 注释:使用来自不同数据源的丰富事件注释图表,将鼠标悬停在事件上会显示完整的事件元数据和标记;

  6. 过滤器:Ad-hoc过滤器允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。

简单来讲,它是一个多用途的监控工具,同时通过邮件等方式进行有效的预警通知,丰富的直观的可视化界面,多种数据源配置是其优点所在;

1.2 Prometheus对比Zabbix

  • 和Zabbix类似,Prometheus也是一个近年比较火的开源监控框架,和Zabbix不同之处在于Prometheus相对更灵活点,模块间比较解耦,比如告警模块、代理模块等等都可以选择性配置。服务端和客户端都是开箱即用,不需要进行安装。zabbix则是一套安装把所有东西都弄好,很庞大也很繁杂。

  • zabbix的客户端agent可以比较方便的通过脚本来读取机器内数据库、日志等文件来做上报。而Prometheus的上报客户端则分为不同语言的SDK和不同用途的exporter两种,比如如果你要监控机器状态、mysql性能等,有大量已经成熟的exporter来直接开箱使用,通过http通信来对服务端提供信息上报(server去pull信息);而如果你想要监控自己的业务状态,那么针对各种语言都有官方或其他人写好的sdk供你使用,都比较方便,不需要先把数据存入数据库或日志再供zabbix-agent采集。

  • zabbix的客户端更多是只做上报的事情,push模式。而Prometheus则是客户端本地也会存储监控数据,服务端定时来拉取想要的数据。

  • 界面来说zabbix比较陈旧,而prometheus比较新且非常简洁,简洁到只能算一个测试和配置平台。要想获得良好的监控体验,搭配Grafana还是二者的必走之路。

1.3 Grafana结构图

1.4 通俗讲

  • Prometheus作为一个中间点,而Grafana作为可视化展示,后面的exporter作为监控,exporter将需要获取的数据获取并连接到Prometheus,而Prometheus连接到Grafana,直观展示被监控者状态;

二. Grafana监控系统之Prometheus+Grafana监控系统搭建

2.1 安装Prometheus

  • 下载并解压

wget https://github.com/prometheus/prometheus/releases/download/v2.7.2/prometheus-2.7.2.linux-amd64.tar.gz
tar xvfz prometheus-2.7.2.linux-amd64.tar.gz
  • 运行Prometheus server

cd prometheus-2.7.2.linux-amd64
./prometheus --config.file=prometheus.yml
  • 配置Prometheus

    • 在Prometheus.yml中有配置文件,我们可以对其进行配置,当然第一次安装也可以不管;

$ cat prometheus.yml 
# my global config
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_timeout is set to the global default (10s).
 
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
 
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
 
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
 
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
 
    static_configs:
    - targets: ['localhost:9090']

其大致可分为四部分: - global:全局配置,其中scrape_interval表示抓取一次数据的间隔时间,evaluation_interval表示进行告警规则检测的间隔时间; - alerting:告警管理器(Alertmanager)的配置,目前还没有安装Alertmanager; - rule_files:告警规则有哪些; - scrape_configs:抓取监控信息的目标。一个job_name就是一个目标,其targets就是采集信息的IP和端口。这里默认监控了Prometheus自己,可以通过修改这里来修改Prometheus的监控端口。Prometheus的每个exporter都会是一个目标,它们可以上报不同的监控信息,比如机器状态,或者mysql性能等等,不同语言sdk也会是一个目标,它们会上报你自定义的业务监控信息。

  • 访问prometheus

    • 输入: “ip地址”+":9090" 在浏览器中进行访问,如果出现可视化界面说明成功;

示例: 186.163.15.42:9090 直接在自己电脑中访问 如果访问不了,请检查防火墙是否开启9090端口

2.2 添加机器状态监控(监控服务器CPU,硬盘,网络等状态)

  • 下载且解压并运行

// 下载最新版本,可以在github的release中对最新版本右键获取下载链接
wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
// 解压
tar xvfz node_exporter-0.17.0.linux-amd64.tar.gz
// 进入解压出的目录
cd node_exporter-0.17.0.linux-amd64
// 运行监控采集服务
./node_exporter
  • 监听9100端口

    • 本Centos中访问: curl http://localhost:9100/metrics

    • 电脑浏览器中访问: ip地址:9100

    如果访问有内容显示则成功

    启动服务的时候可使用nohup后台启动,如果是直接图中所示内容启动则重开连接

    • 去Prometheus的配置文件中加上这个exporter的地址

      • 先回到根目录

cd ~
  • 进入prometheus

cd prometheus-2.7.2.linux-amd64/
  • 编辑配置文件prometheus.yml

vim prometheus.yml

没有vim可以下载或者使用vi也可以

  • 添加target:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'server'
    static_configs:
      - targets: ['localhost:9100']

2.3 安装Grafana

  • 下载并解压Grafana

wget https://dl.grafana.com/oss/release/grafana-6.0.0.linux-amd64.tar.gz
tar -zxvf grafana-6.0.0.linux-amd64.tar.gz

这个页面给出的是最新版本的安装命令,右上角可以选择切换其他版本的安装命令。解压后会出现 grafana-6.0.0 目录,进入该目录,然后就可以运行Grafana了;

  • 安装插件

    • 进入Grafana服务器的该Grafana的lib目录下,然后输入以下命令更新插件: ./grafana-cli plugins install grafana-piechart-panel

  • 运行Grafana

cd grafana-6.0.0
// 启动Grafana。
./bin/grafana-server web
  • 在Grafana展示监控信息

    • 安装并启动Grafana后,浏览器输入 IP:3000 来访问Grafana,管理员账号密码默认是admin/admin。首次登陆会让你修改管理员密码,然后就可以登录查看了。

    • 添加数据源

    • 选择Prometheus

    • 先输入名称,然后填入http://ip+9090然后直接点Save&Test,成功后则直接点击Dashboards选择展示面板

    • 点击导入,可一个也可以全部导入

    • 输入号码后点击确定,然后再prometheus选择对应的Prometheus,点击Import即可

  • 查看效果

    • 左边侧栏选择方块,点击Manage,然后点击刚刚创建的,即可成功展示!

    • 展示效果如图所示:

三. Grafana监控系统之搭建其他服务器监控系统

3.1 前述

  • 这次的教程是配置其他服务器的监控系统,所以假设上面的已经做好了

  • 监控系统的Prometheus类似于一个注册中心,我们可以只需要配置一个Prometheus,而在其他服务器,只需要安装node_exporter,它们的数据流转就是通过exporter采集数据信息,然后告诉prometheus它的位置;而Prometheus则存储exporter的信息供Grafana询问;Grafana则负责信息的展示;所以可以只配置一个Prometheus,而其他服务器或者本机的服务器的exporter只需要在这一个Promethes中给出它的job_name,targets地址等信息即可;

  • 这里介绍了又重新下载了一个Prometheus的方式,不下载的话可直接跳过从教程: 3.5 添加机器状态监控 开始

3.2 安装Prometheus

  • 连接需要被安装的服务器,安装Prometheus:

$ wget https://github.com/prometheus/prometheus/releases/download/v2.7.2/prometheus-2.7.2.linux-amd64.tar.gz
$ tar xvfz prometheus-2.7.2.linux-amd64.tar.gz

3.3 启动Prometheus

// 下载最新版本,可以在github的release中对最新版本右键获取下载链接
$ wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
// 解压
$ tar xvfz node_exporter-0.17.0.linux-amd64.tar.gz
// 进入解压出的目录
$ cd node_exporter-0.17.0.linux-amd64
// 运行监控采集服务
$ ./node_exporter

3.4 配置Prometheus:

$ cat prometheus.yml 
# my global config
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_timeout is set to the global default (10s).
 
# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
 
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
 
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
 
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
 
    static_configs:
    - targets: ['localhost:9090']

如无其他特殊需求可不做改变;

3.5 添加机器状态监控

// 下载最新版本,可以在github的release中对最新版本右键获取下载链接
$ wget https://github.com/prometheus/node_exporter/releases/download/v0.17.0/node_exporter-0.17.0.linux-amd64.tar.gz
// 解压
$ tar xvfz node_exporter-0.17.0.linux-amd64.tar.gz
// 进入解压出的目录
$ cd node_exporter-0.17.0.linux-amd64
// 运行监控采集服务
$ ./node_exporter

3.6 配置Prometheus.yml文件

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'server'
    static_configs:
      - targets: ['localhost:9100']

如果prometheus不在本服务器,则将server下的targets中的localhost改为对应的ip地址; 重新启动一下

3.7 配置Grafana

  • 进入Grafana服务器的该Grafana的lib目录下,然后输入以下命令更新插件: ./grafana-cli plugins install grafana-piechart-panel

更新插件后重新启动服务

3.8 配置可视化界面

  • 添加数据源

  • 选择Prometheus

  • 先输入名称,然后填入http://ip+9090然后直接点Save&Test,成功后则直接点击Dashboards选择展示面板

  • 点击导入,可一个也可以全部导入

  • 输入号码后点击确定,然后再prometheus选择对应的Prometheus,点击Import即可

3.9 查看效果

  • 左边侧栏选择方块,点击Manage,然后点击刚刚创建的,即可成功展示!

  • 展示效果如图所示:

注意:如果需要监控其他服务器,则只需要在其他服务器安装 node_exporter 即可,将其对应的ip地址,端口号等信息配置到已有的Prometheus的Prometheus.yml内即可;格式参照其他,job_name不能命名成一样的,可改成其他名称;Grafana添加数据源和注册仪表盘都是一致的;

四. Grafana监控系统之邮件报警

4.1 Grafana服务器配置

  • 关闭服务 ctrl+c

如果是后台启动的服务,则用相关的命令关闭grafana web 如果grafana监控系统没有开启,则无需关闭;

  • 进入grafana目录 cd grafana-6.0.0

  • 编辑配置文件conf vim defaults.ini

没有vim直接 yum install vim 即可,使用vi 也可以进行编辑 smtp.qq.com:465是针对qq邮箱的,其他的邮箱的服务器不同,请做对应的改变,直接百度即可;

  • 编辑完退出: ESC+:wq+Enter

  • 返回上一级 cd ..

  • 启动服务 ./bin/grafana-server web

4.2 Grafana 可视化界面配置

  • 添加

  • 输入具体警告内容

如果成功就能接收到邮件,否则查看服务器内配置是否正确;

4.3 邮件报警总结

  • 此功能可以具体对某些仪表盘的数据设立阀值,如果超过此值则触发报警,具体的应用具体分析,后面补充;

五. Grafana监控系统之搭建MySQL监控系统

5.1 步骤概述概述

  1. 下载安装Mysql并配置账号密码

  2. 导入sql文件

  3. 安装mysqld_exporter

  4. 对mysqld_exporter进行操作

  5. 运行mysql_exporter

  6. 加入Prometheus.yml配置

  7. 配置可视化界面

5.2 下载安装Mysql

  • 如果是对已有的mysql进行操作,请忽略此步骤;

  • 下载mysql的repo源:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  • 安装mysql-community-release-el7-5.noarch.rpm包:

rpm -ivh mysql-community-release-el7-5.noarch.rpm
  • 安装mysql:

yum install mysql-server -y

修改权限,否则会报错:

chown -R root:root /var/lib/mysql

重启mysql服务:

service mysqld restart

登录并重置密码:

## 直接回车进入mysql控制台
mysql -u root
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > exit;

5.3 导入sql文件

  1. 下载my2.sql https://codeload.github.com/john1337/my2Collector/zip/master

  2. 解压文件后将此文件夹内的sql文件放入要监控的Mysql服务器中

  3. 使用命令登录mysql mysql -u用户名 -p密码 示例: mysql -uroot -proot

  4. 使用命令导入sql文件 source /root/my2.sql

后面的是具体地址,如果位置不对则相应变化

  1. 当出现一系列执行成功,则说明完成;

5.4 对mysqld_exporter进行操作

  • 先下载并解压:

https://github.com/prometheus/mysqld_exporter/releases/download/v0.10.0/mysqld_exporter-0.10.0.linux-amd64.tar.gz

tar -xvf mysqld_exporter-0.10.0.linux-amd64.tar.gz
  • 创建.my.cnf 文件

vim vi.my.cnf
  • 创建效果如下:

[client]
user=root
password=root

账号密码只要连接得上mysql即可,也可单独为其分配账号;

  • 运行mysql_exporter

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

5.5 加入Prometheus.yml配置

  - job_name: mysql
    static_configs:
      - targets: ['mysql的ip地址:9104']

这里9104不要改动,配好后保存重启Prometheus,然后点击Status->Targets,如果发现mysql的State为Up 状态,则说明已经配置好了 如果没有配置好,则可以注意一下是否mysql开启了远程访问,一般新安装的msyql都是仅本机可访问;开启远程访问可百度;

5.6 配置可视化界面

  • 先点击小齿轮添加DataSource,然后点击Mysql,输入对应的ip+端口号,以及账号密码等信息,点击Save&Test进行测试,如果反馈成功则说明配置成功

  • 点击+ 图标,然后选择Import ,可选择官方文档中的仪表盘,这里我使用的是: 7991

输入7991点Load可自动加载

  • 加载后配置相关的名称地址,以及加载的数据源等信息,点击添加后即可在 小方块 图标的Manage下展示;

  • 效果图如下:

六. Grafana监控系统之开放API

6.1 概述

  • 在我们使用server类型的访问模式中,访问数据通常有两种形式;一种是直接使用用户登录,获取到的Cookie进行验证;一种是通过 API令牌机制进行资源请求校验;

  • Admin HTTP API目前不支持API令牌。API令牌目前仅链接到组织和组织角色。他们无法获得服务器管理员的许可,只有用户才能获得该权限。因此,为了使用这些API调用,您必须使用Basic Auth,Grafana用户必须具有Grafana Admin权限。(默认管理员用户被调用admin并且有权使用此API。)

6.2 关于用户登录验证请求资源

  • 无法使用HTTP API的部分,可以使用RestTemplate等工具模拟登录验证,获取Cookie请求资源;而请求资源我们可以使用F12 获取请求的接口地址,需要哪些资源,直接到相关站点界面获取接口地址,模拟登录即可做对应的操作;

这部分不多加介绍,下面介绍使用HTTP API的方式;

6.3 创建API 令牌

  • 创建API KEY

  • 点击保存

  • 将Key后面的内容作为 Authorization中的Bearer 后的内容:

里面的权限为Viewer,Eidtor,和Admin,权限为只能看,可以部分写,以及全部权限;

6.4 验证HTTP资源/操作 接口示例:

6.5 创建API Key 示例:

  • 请求ip地址和请求头填写内容:

  • 请求体内填写内容:

权限类别可分为Viewer,Editor和Admin,Viewer只能查看,Editor可以一些界面进行操作,而Admin是拥有所有权限的角色; secondsToLive - 以秒为单位设置密钥到期时间。这是可选的。如果是正数,则设置密钥的到期日期。如果它为null,为零或完全省略(除非api_key_max_seconds_to_live设置了配置选项),密钥将永不过期。

6.6 删除API Key示例:

  • 先通过查询接口查询到所有Api Key列表

  • 拿到需要删除的ApiKey的id,然后使用Delete请求方式,在最后带id即可删除对应id的ApiKey,图示如下:

七. Grafana监控系统之监控RabbitMQ

7.1 下载并解压

  • 下载:

wget https://github.com/kbudde/rabbitmq_exporter/releases/download/v1.0.0-RC5/rabbitmq_exporter-1.0.0-RC5.linux-amd64.tar.gz

没有wget等命令请自行搜索下载

  • 解压:

tar -xvf rabbitmq_exporter-1.0.0-RC5.linux-amd64.tar.gz
  • 进入目录:

cd rabbitmq_exporter-1.0.0-RC5.linux-amd64
  • 执行命令:

RABBIT_USER=guest RABBIT_PASSWORD=guest OUTPUT_FORMAT=JSON PUBLISH_PORT=9099 RABBIT_URL=http://localhost:15672 nohup ./rabbitmq_exporter 2>&1 &

注意里面的PABBIT_USER的账号,以及后面的密码,请按实际账号密码输入,以及端口等;

7.2 加入Prometheus.yml

  • 进入有Prometheus的服务器,进入Prometheus,编辑prometheus.yml

vim prometheus.yml
  • 配置如下内容:

- job_name: 'RabbitMQ'
  static_configs:
	- targets: ['Rabbit的ip地址:9099']

这里的ip地址写Rabbit的地址,端口号默认都写9099;

7.3 进入Grafana配置RabbitMQ地址

  1. 浏览器输入:ip地址+3000 进入Grafana 默认账户和密码都是admin

  2. 点击右侧 **Add data source ** 选择Prometheus

这里的URL不是写RabbitMQ的服务器地址,而是Prometheus的地址,注意不要弄错;

  1. 点击Save&Test进行测试,如果下方出现小绿条提示: Data source is working 则说明安装成功

  2. 点击左侧的 + 图标,选择Import,在第一个输入框中输入 2121 ,然后点击 Load

  3. 点击左侧小方块图标,点击Manage 选择刚刚配好的,点击进入即可展示,效果图如下:

八. Grafana监控系统之监控Redis

8.1 下载并解压

  • 下载:

wget https://github.com/oliver006/redis_exporter/releases/download/v1.0.3/redis_exporter-v1.0.3.linux-amd64.tar.gz
  • 解压:

tar -xvf redis_exporter-v1.0.3.linux-amd64.tar.gz

8.2 启动 Redis_exporter

  • 无密码:

./redis_exporter redis//192.168.1.120:6379 &
  • 有密码:

redis_exporter  -redis.addr 192.168.1.120:6379  -redis.password 123456****

里面的ip地址和端口号请根据自身实际来

8.3 配置Prometheus.yml

  • 进入prometheus的服务器,然后进入prometheus.yml,进行编辑:

  • 编辑:

vim prometheus.yml
  • 内容如下:

 - job_name: redis
    static_configs:
      - targets: ['ip地址:9121']

8.4 检查Redis状态

  • 进入地址

Premetheus的ip地址:9090/targets

如果显示State的结果为 UP 则说明成功。

8.5 配置Grafana的数据源

  • 登录网站:

Grafana的ip地址:3000
  • 添加数据源,如果之前已经在Grafana中添加了此DataSource(指向了安装有Prometheus的ip地址和对应端口),则无需重新添加,在导入面板的时候,可以直接引用此DataSource;

8.6 配置展示面板

  1. 先进行登陆,登陆后点击 + 号选择Import

  2. 在第一个框框内输入: 731

8.7 直接查看,展示效果图如下:

九.Grafana监控系统之监控TiDB

9.1 下载二进制包并解压

  • 下载

wget https://github.com/prometheus/node_exporter/releases/download/v0.15.2/node_exporter-0.15.2.linux-amd64.tar.
  • 解压

tar -xzf node_exporter-0.15.2.linux-amd64.tar.gz

9.2 启动服务

  • 进入目录:

cd node_exporter-0.15.2.linux-amd64
  • 启动 node_exproter服务

./node_exporter --web.listen-address=":9100" \ --log.level="info" &

9.3 在Prometheus.yml中配置

  • 进入Prometheus所在的服务器,并进入该Prometheus目录

cd prometheus-2.2.1.linux-amd64
  • 编辑 prometheus.yml

vim prometheus.yml
  • 新增内容如下:

  - job_name: 'tidb'
    honor_labels: true  # 不要覆盖 job 和实例的 label
    static_configs:
    - targets: ['tidb所在服务器ip地址:10080']

这里配置好了以后,需要重新启动一下Prometheus.yml,然后登陆 ip地址:9090/targets 如果Status显示为 UP 则说明成功;

9.4 启动Grafana服务

./prometheus \
    --config.file="./prometheus.yml" \
    --web.listen-address=":9090" \
    --web.external-url="http://192.168.199.113:9090/" \
    --web.enable-admin-api \
    --log.level="info" \
    --storage.tsdb.path="./data.metrics" \
    --storage.tsdb.retention="15d" &

9.5 启动Grafana并配置DataSource

  • 按照正常命令启动,如果已经启动过则无需改;

  • 如果前面已经对此Prometheus的DataSource进行过配置,则无需再次配置,在导入展示面板的时候直接指向此已经写好的展示面板即可;

9.6 导入Grafana面板

  1. 在侧边栏菜单中,依次点击 + 号 > Import 打开 Import Dashboard 窗口。

  2. 注意:TiDB 面板对应的 JSON 文件为tidb.json 。 (我们可以通过上面的链接进入找到此tidb.json然后将内容复制出来命名为tidb.json然后导入)

  3. 点击 Load。

  4. 选择一个 Prometheus 数据源。(以前对这个Prometheus创建过数据源,我们可以重复利用,直接指向即可)

  5. 点击 Import,Prometheus 面板即导入成功。

9.7 在Mangae 里面可以直接预览,展示效果图如下

在这里插入图片描述

选择左侧边栏的 + 号,点击Imput, Dashboard中输入: 8919

也可以自己选择官方展示面板,链接:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

可使用后台运行进程命令启动也可以;访问:

在这里插入图片描述
在这里插入图片描述

选择左侧边栏的 + 号,点击Imput, Dashboard中输入: 8919

在这里插入图片描述
在这里插入图片描述

也可以自己选择官方展示面板,链接:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

官方地址:

在这里插入图片描述

官方文档地址:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

只要支持HTTP API的均可使用此方式,具体的请求路径和对应资源可进入官方文档查看;

点击小齿轮,点击**Data Sources **

编辑Prometheus的配置信息,Name为名称,URL为 (9090)

在这里插入图片描述

注意,也可以自己找其他的展示面板,在官方的面板页面找到数据源为Prometheus的Redis展示面板,在上方所说的对应位置输入它的编号即可 官方控制面板地址:

**https://grafana.com/dashboards**

点击 Upload .json File 上传对应的 JSON 文件()。

在这里插入图片描述
Grafana监控系统之Prometheus+Grafana监控系统搭建
一. 概述
1.1 Grafana介绍
1.2 Prometheus对比Zabbix
1.3 Grafana结构图
1.4 通俗讲
二. Grafana监控系统之Prometheus+Grafana监控系统搭建
2.1 安装Prometheus
2.2 添加机器状态监控(监控服务器CPU,硬盘,网络等状态)
2.3 安装Grafana
三. Grafana监控系统之搭建其他服务器监控系统
3.1 前述
3.2 安装Prometheus
3.3 启动Prometheus
3.4 配置Prometheus:
3.5 添加机器状态监控
3.6 配置Prometheus.yml文件
3.7 配置Grafana
3.8 配置可视化界面
3.9 查看效果
四. Grafana监控系统之邮件报警
4.1 Grafana服务器配置
4.2 Grafana 可视化界面配置
4.3 邮件报警总结
五. Grafana监控系统之搭建MySQL监控系统
5.1 步骤概述概述
5.2 下载安装Mysql
5.3 导入sql文件
5.4 对mysqld_exporter进行操作
5.5 加入Prometheus.yml配置
5.6 配置可视化界面
六. Grafana监控系统之开放API
6.1 概述
6.2 关于用户登录验证请求资源
6.3 创建API 令牌
6.4 验证HTTP资源/操作 接口示例:
6.5 创建API Key 示例:
6.6 删除API Key示例:
七. Grafana监控系统之监控RabbitMQ
7.1 下载并解压
7.2 加入Prometheus.yml
7.3 进入Grafana配置RabbitMQ地址
八. Grafana监控系统之监控Redis
8.1 下载并解压
8.2 启动 Redis_exporter
8.3 配置Prometheus.yml
8.4 检查Redis状态
8.5 配置Grafana的数据源
8.6 配置展示面板
8.7 直接查看,展示效果图如下:
九.Grafana监控系统之监控TiDB
9.1 下载二进制包并解压
9.2 启动服务
9.3 在Prometheus.yml中配置
9.4 启动Grafana服务
9.5 启动Grafana并配置DataSource
9.6 导入Grafana面板
9.7 在Mangae 里面可以直接预览,展示效果图如下
在Grafana.com
https://grafana.com/dashboards
http://ip:9100/metrics即可验证,如果有对应界面则配置成功
在Grafana.com
https://grafana.com/dashboards
https://grafana.com/dashboards
https://grafana.com/docs/http_api/admin/
https://grafana.com/docs/http_api/dashboard/
http://promethues的服务器地址和端口号
https://grafana.com/dashboards
https://github.com/pingcap/tidb-ansible/tree/master/scripts
在这里插入图片描述