当前位置: 首页 > news >正文

17、grafana安装

Grafana原理与配置

本章重点: 原理说明,安装配置,与prometheus\alertmanager集成

grafana原理

  • 前言

    Grafana 是一款开源的可视化监控平台,支持对接 Prometheus、InfluxDB、Elasticsearch 等多种时序数据库,通过灵活的仪表盘配置、丰富的图表类型和告警功能,帮助用户实现数据可视化、监控分析和故障排查。本文将从核心原理、环境安装、实战配置(含 Prometheus 对接)、报表导出(grafana-reporter)等维度,系统梳理 Grafana 的使用指南,附带代码示例、配置最佳实践和问题解决方案。

  • 架构说明

    Grafana 采用 前后端分离架构,核心组件及交互流程如下:
    在这里插入图片描述

    • 前端:基于 React 开发,负责仪表盘展示、用户交互和图表渲染。
    • 后端:基于 Go 开发,提供 API 接口、数据源适配、权限控制、告警管理等核心功能。
    • 数据源:支持 Prometheus、InfluxDB、Graphite 等 100+ 种时序数据库,通过统一的查询接口适配不同数据源的查询语法。
    • 存储:默认使用 SQLite 存储仪表盘配置、用户信息等,生产环境建议切换为 MySQL 或 PostgreSQL。
  • 关键概念

    概念说明
    仪表盘(Dashboard)可视化展示的核心载体,包含多个面板,支持拖拽布局、模板变量配置。
    面板(Panel)单个图表组件(如折线图、柱状图、 gauge 图),绑定数据源查询语句。
    数据源(Data Source)对接的时序数据库,每种数据源有专属的查询语法(如 PromQL 用于 Prometheus)。
    模板变量(Variable)动态过滤数据(如按主机、集群、时间范围筛选),提升仪表盘灵活性。
    告警规则(Alert Rule)基于面板数据设置阈值(如 CPU 使用率 > 80%),触发后通过 Alertmanager 等渠道通知。
  • 数据流转流程

    1. 用户在前端配置仪表盘,指定数据源和查询语句(如 PromQL)。
    2. 后端服务接收查询请求,根据数据源类型转换为对应数据库的查询语法。
    3. 数据源执行查询并返回时序数据(时间戳 + 数值)
    4. 后端对数据进行处理(如聚合、排序),传递给前端。
    5. 前端将数据渲染为指定图表(如折线图展示 CPU 使用率趋势)。
    6. 若配置告警规则,后端定期执行查询,触发阈值时发送告警通知。

grafana安装

  • 环境准备

    依赖项版本要求说明
    操作系统CentOS 7+/Ubuntu 18.04+支持 Linux/Windows/MacOS
    内存≥ 2GB生产环境建议 ≥ 4GB
    数据库MySQL 5.7+/PostgreSQL 10+存储仪表盘配置(可选)
    网络端口3000/tcpGrafana 默认端口
  • 安装步骤(CentOS 7 示例)

    • 安装示例1

      # 1. 添加 Grafana 官方 YUM 源
      cat > /etc/yum.repos.d/grafana.repo << EOF
      [grafana]
      name=grafana
      baseurl=https://packages.grafana.com/oss/rpm
      repo_gpgcheck=1
      enabled=1
      gpgcheck=1
      gpgkey=https://packages.grafana.com/gpg.key
      sslverify=1
      sslcacert=/etc/pki/tls/certs/ca-bundle.crt
      EOF# 2. 安装 Grafana
      yum install -y grafana# 3. 启动服务并设置开机自启
      systemctl start grafana-server
      systemctl enable grafana-server# 4. 验证服务状态(默认端口 3000)
      netstat -tnlp | grep 3000
      
    • 安装示例2 <-- 这里用源码安

      # 1. 下载安装包
      wget https://dl.grafana.com/grafana-enterprise/release/12.2.1/grafana-enterprise_12.2.1_18655849634_linux_amd64.tar.gz# 2. 解压到自定义目录
      tar -zxvf grafana-enterprise_12.2.1_18655849634_linux_amd64.tar.gz -C /data/
      ln -s /data/grafana-12.2.1 /data/grafana# 3. 配置自启
      cat << EOF > /usr/lib/systemd/system/grafana-server.service
      [Unit]
      Description=Grafana (Source Install)
      Documentation=https://grafana.com/docs/
      After=network.target  # 网络就绪后启动
      Wants=network.target[Service]
      WorkingDirectory=/data/grafana
      ExecStart=/data/grafana/bin/grafana-server --config /data/grafana/conf/defaults.ini
      Restart=always  # 进程退出时自动重启
      RestartSec=5s   # 重启间隔 5 秒
      LimitNOFILE=65535  # 提高文件描述符限制(避免高并发报错)# 日志配置(默认输出到 Grafana 日志目录,也可指定自定义路径)
      StandardOutput=journal+console
      StandardError=journal+console
      # 若需自定义日志文件,替换上面两行:
      # StandardOutput=file:/var/log/grafana/stdout.log
      # StandardError=file:/var/log/grafana/stderr.log[Install]
      WantedBy=multi-user.target  # 多用户模式下开机自启
      EOF# 或 直接启动
      cd /data/grafana
      ./bin/grafana-server --config ./conf/defaults.ini &# 5. 验证(访问 http://IP:3000)
      
  • 基础配置

    • 初始访问与密码修改

      • 访问地址:http://服务器IP:3000

      • 默认账号:admin,默认密码:admin

    • 配置文件优化

      Grafana 核心配置文件为 grafana.ini(YUM 安装路径:/etc/grafana/grafana.ini;源码安装路径:/opt/grafana/conf/defaults.ini

      [server]
      http_port = 3000                # 监听端口
      domain = grafana.example.com    # 域名(可选)
      root_url = http://grafana.example.com:3000  # 访问 URL[database]
      type = mysql                    # 切换存储为 MySQL(默认 SQLite)
      host = 127.0.0.1:3306           # MySQL 地址
      name = grafana_db               # 数据库名
      user = grafana_user             # 数据库用户
      password = Grafana@DB2024       # 数据库密码[security]
      admin_password = Grafana@2024   # 预设置 admin 密码
      secret_key = your_secret_key    # 会话加密密钥(建议随机生成)[auth.anonymous]
      enabled = false                 # 禁用匿名访问(生产环境必设)# 默认的数据库用的是sqlite3
      # Either "mysql", "postgres" or "sqlite3", it's your choice
      type = sqlite3
      path = grafana.db# 缓存也可以改为redis, 默认的有示例说明
      #################################### Cache server #############################
      [remote_cache]
      # Either "redis", "memcached" or "database" default is "database"
      type = database# cache connectionstring options
      # database: will use Grafana primary database.
      # redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=0,username=grafana,password=grafanaRocks,ssl=false`. Only addr is required. ssl may be 'true', 'false', or 'insecure'.
      # memcache: 127.0.0.1:11211  <-- 也可以用memcache
      
    • 修改为中文

      • 修改配置文件

        vim /data/grafana/conf/defaults.ini
        #default_language = en-US
        default_language = zh-CN#default_timezone = browser
        default_timezone = Asia/Shanghai# 重启服务 systemctl restart grafana-server
        
      • 界面上在修改
        请添加图片描述

对接 Prometheus 数据源

  • 前提条件

    • 先prometheus安装, 确保 Grafana 服务器能访问 Prometheus 端口(默认 9090)
  • 配置 Prometheus 数据源

    • 登录 Grafana 前端,点击左侧 Configuration → Data Sources,点击 Add data source

    • 搜索:Prometheus 选择对应图标,进入配置页面:

      配置项取值示例说明
      NamePrometheus-Cluster数据源名称(自定义)
      URLhttp://192.168.0.100:9090Prometheus 访问地址
      AccessServer(默认)访问方式(服务器端代理)
      Scrape Interval15s数据查询间隔
    • 点击 Save & test,显示 Data source is working 表示配置成功
      请添加图片描述

  • 创建监控仪表盘(示例:服务器资源监控)

    1. 新建仪表盘

      • 点击左侧 + → Dashboard → Add a new panel,进入面板编辑页面。
    2. 配置查询语句(PromQL)

      # Queries下默认是builder换成code,填promQL语句
      # CPU 使用率(核心数)
      100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
      

      请添加图片描述

    3. 添加模板变量(按主机筛选)

      • 名称: instance
      • query: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle", instance=~"$instance"}[5m])) * 100)

      请添加图片描述

    配置告警规则(对接 Alertmanager)

  • 启用 Alertmanager 数据源

    1. alertmanager安装
    2. 点击 Configuration → Data Sources → Add data source,搜索 Alertmanager
    3. 中文(连接–数据源–添加新数据源–找到alertmanager–Implementation改成prometheus)
    4. 配置 Alertmanager 访问地址(如 http://192.168.0.101:9093),点击 Save & test

    请添加图片描述

  • 创建告警规则(CPU 使用率过高)

    • 仪表板–对应面板–更多–新建预警规则
    • 第二步添加: 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) 当查询: is below小于10%时
    • 第三步往下随便先指定,这里看 预警规则,部署与配置,告警路由,目前我只写了文档还没练,待继续补充吧
http://www.dtcms.com/a/610115.html

相关文章:

  • 2025年蚌埠市“三首产品”、市级服务型制造示范、市级企业技术中心等5个项目认定申报指南大全
  • 做一个个人主页的网站怎么做房地产销售段子
  • 个人网站定制国内免费的短视频素材网站
  • 1999-2023年 微观企业劳动生产率数据
  • 二手书店网站建设规划书网站域名 过期
  • 选择Rust的理由:从内存管理到抛弃抽象
  • JUC包里的同步组件主要实现了AQS的哪些主要方法
  • wordpress公司展示网站模板网站推广需要多少钱易下拉系统
  • wordpress站点费用网站底部的图标
  • 引力本体的几何之歌:从星体永恒吸引到人工场操控时空的范式革命
  • Docker-Android容器化开发:如何通过Cpolar实现远程环境无缝协作
  • ## 2.2 状态同步
  • 翻译技巧英语
  • 11.14 脚本网页 迷宫逃离
  • 手机网站开发成appWordPress博客建站系统
  • 定义舱驾一体新架构:黑芝麻智能武当C1200家族如何成为跨域计算“第一芯”
  • 小白建站东莞网络营销公司
  • SImpack轨道车辆建模练习
  • react项目创建从0到1及安装(ts、axios、路由、redux)
  • 网站怎么做动态背景图片做网站需要准备哪些材料
  • 网站建设分哪几个版块关键词没有排名的网站怎么做
  • 什么是关键字驱动测试(Keyword-Driven Testing)?
  • 颠覆叙事:Google Veo 3.1与Flow如何开启连贯AI动画长视频时代
  • 【运维】Nginx 入门笔记
  • Docker 部署 GitLab 和 GitLab Runner 指南
  • RabbitMQ 跨平台安装与基础使用指南(Windows_macOS_Ubuntu_Docker 全场景)
  • 市城乡规划建设局网站seo搜索引擎优化内容
  • 2025_11_14洛谷【入门1】数据结构刷题小结
  • wordpress打赏链接网站建设 小影seo
  • 哪个网站能学做微商上海建设网站是多少