NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • Linux

  • Docker

  • 云原生

    • 概念
    • Prometheus笔记
    • Grafana笔记
      • 简介
      • 安装
      • 访问
      • 数据源(Data sources)
        • 新增(Add new data source)
        • MySQL
        • Infinity(REST API)
      • 仪表盘(Dashboards)
        • 新增(New dashboard)
        • 查询数据
        • 配置图表
        • 保存与后续
        • 导入
        • 社区模版
      • 告警通知(Alert)
        • 联络点(Contact points)
        • 联系方式(Integration)
        • 内置方式
        • 飞书
        • Bark
      • 插件
        • 插件类型
        • 安装
        • 页面安装
        • 手动安装
    • iLogtail笔记
    • mtail笔记
  • Kubernetes

  • KubeSphere

  • K3S

  • 笔记

  • PVE

  • 维修

  • DevOps

  • 云服务

  • 路由器

  • Hyper-V

  • Windows

  • macOS

  • 运维
  • 云原生
NipGeihou
2023-12-04
目录

Grafana笔记

# 简介

  • 一个可视化分析工具,可用于大屏可视化。
  • 替代 echart 来实现一些内部图表展示。

# 安装

略

设置中文

[users]
default_language = zh-Hans

chart 的 values.yaml :

grafana.ini:
  users:
    default_language: zh-Hans

# 访问

默认监听端口为 3000

# 数据源 (Data sources)

在进行数据可视化之前,首先得需要有数据源,就像前端在使用 echart 制作图表之前,也需要先问后端获取响应的数据。 路径: 左上角菜单 - Connections - Data sources

# 新增 (Add new data source)

# MySQL

选择一个数据源的来源(通过某种协议能访问到的数据),本文以 MySQL 为例。

  • 需要填写的内容跟在 DataGrip 新增数据源填写的大同小异。
  • 数据源的名称:
    • 如果数据库帐号能访问这个 MySQL 服务的所有数据库,那么这个数据源等同于这个 MySQL 服务,可以以 MySQL 服务命名,如 mysql-dev
    • 如果只能访问某个库,那么这个数据源等同于这个数据库,可以以数据库命名,如 mysql-dev-mall

# Infinity(REST API)

有时候我们可能想从网络公开的 API 中做一些可视化展示,而默认下 Grafana 是不支持以此作为数据源的,需要使用第三方插件,如 Infinity 。

API 返回的可能还需要一些聚合操作,此时就需要使用:UQL (opens new window)

parse-json
| scope "items"
| project "time"=todatetime("timestamp"),"value"=tonumber("value"),"value"=div("value",10000000000000000)
| extend "time"=format_datetime("time",'YYYY-MM-DD'),"value"=mul("value",2),"value"=div("value",100)
| summarize "total"=sum("value") by "time"
  • json 中的 items 属性作为数据源
  • 只显示 time 、 value 字段
  • 对 timestamp 、 value 进行了一些处理
  • 最后按 time 字段聚合统计

参考:

  • 在 Grafana 中通过 Infinity 数据源可视化接口数据_[Prometheus] Grafana_TendCode (opens new window)
  • Infinity data source plugin for Grafana | Grafana Plugins documentation (opens new window)

# 仪表盘 (Dashboards)

与管理后台首页(仪表盘)同理,通常展示各种图表。效果参考:分析页 - Ant Design Pro (opens new window)

# 新增 (New dashboard)

  • Add visualization
  • 选择一个数据源

# 查询数据

提供两种选择数据的方式:

  1. Builder
  2. Code 本质上都是查询 SQL,只是 Builder 提供可视化方式,Code 则是写 SQL。

# 配置图表

当处理好要展示的数据后,即可在页面右上方选择一种图表来展示。 image.png

# 保存与后续

当图表配置到预期效果后,点击右上方 Apply,保存。

# 导入

# 社区模版

官网上有来自 Grafana 官方和社区分享的 Dashboards 模版:Grafana dashboards | Grafana Labs (opens new window) 以实现一个类似于云服务器后台监控面板为例:

  • 搜索 Linux
  • 寻找一个符合需求的模版,如:Node Exporter Full | Grafana Labs (opens new window)
  • 回到 Grafana,在仪表盘页面 - 导入
    • 可以通过链接或 ID 方式导入(适合社区模版)
    • 也可通过 JSON 方式导入(适合非社区模版)

# 告警通知 (Alert)

Configure the webhook notifier for Alerting | Grafana documentation (opens new window) Grafana 可根据图表数据变化,设置规则触发告警通知。内置多种常见运维通知方式,如:钉钉、企业微信、Telegram 等。

# 联络点 (Contact points)

可理解为 “联系人”,先有联系人张三,再有联系人电话。

# 联系方式 (Integration)

# 内置方式

内置的多种联系方式按提示操作即可。

# 飞书

目前 Garfana 的 Webhook 并不支持自定义 body,因此不能直接使用飞书群机器人的 webhook 地址,但飞书提供了 Grafana 连接器 (opens new window),通过它可以将 grafana 的请求数据转换为我们需要的格式。

image.png

  • 使用可视化方式创建消息卡片:飞书卡片搭建工具 (opens new window)
  • 也可直接复制使用我这段配置:
{
    "msg_type": "interactive",
    "card": {
        "config": {
            "update_multi": true
        },
        "i18n_elements": {
            "zh_cn": [
                {
                    "tag": "markdown",
                    "content": "**状态**:${status}\n**规则名称**:${rule_name}\n**消息**:${message}",
                    "text_align": "left",
                    "text_size": "normal"
                }
            ]
        },
        "i18n_header": {
            "zh_cn": {
                "title": {
                    "tag": "plain_text",
                    "content": "Grafana告警"
                },
                "subtitle": {
                    "tag": "plain_text",
                    "content": "${title}"
                },
                "template": "red"
            }
        }
    }
}

image.png

# Bark

通过飞书提供的 Grafana 连接器 (opens new window),同理也可以用来请求其他应用的接口来触发通知,如 Bark。

Note

过程省略,跟发送飞书机器人的区别仅在于 URL 和 Body

{
    "body": "{消息}",
    "title": "【Grafana告警】{标题}",
    "group": "Grafana"
}

# 插件

# 插件类型

目前支持三种类型的插件:

  • Panels
  • Data sources
  • Apps

# 安装

# 页面安装

路径: 左上角菜单 - Administration - Plugins

Note

搜索前,记得先把 State 选择为 All

# 手动安装

以 haohanyang/mongodb-datasource (opens new window) 为例

  • 在项目 Release 找到最新的预构建文件的下载连接,如 haohanyang-mongodb-datasource-0.1.1.zip

基于环境变量的安装方式:

GF_INSTALL_PLUGINS=https://github.com/haohanyang/mongodb-datasource/releases/download/v0.1.1/haohanyang-mongodb-datasource-0.1.1.zip;haohanyang-mongodb-datasource
GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=haohanyang-mongodb-datasource

基于 Helm 的安装方式:

grafana.ini:
  plugins:
    allow_loading_unsigned_plugins: haohanyang-mongodb-datasource
plugins:
  - "https://github.com/haohanyang/mongodb-datasource/releases/download/v0.1.1/haohanyang-mongodb-datasource-0.1.1.zip;haohanyang-mongodb-datasource"

参考:Run Grafana Docker image | Grafana documentation (opens new window)

上次更新: 2024/11/01, 15:02:50
Prometheus笔记
iLogtail笔记

← Prometheus笔记 iLogtail笔记→

最近更新
01
iSCSI服务搭建
05-10
02
磁盘管理与文件系统
05-02
03
网络测试 - iperf3
05-02
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式