跳转至

Grafana 介绍

Grafana 是一个监控仪表系统,它是由 Grafana Labs 公司开源的的一个系统监测工具,它可以大大帮助我们简化监控的复杂度,我们只需要提供需要监控的数据,它就可以帮助生成各种可视化仪表,同时它还有报警功能,可以在系统出现问题时发出通知。

Grafana 支持许多不同的数据源,每个数据源都有一个特定的查询编辑器,每个数据源的查询语言和能力都是不同的,我们可以把来自多个数据源的数据组合到一个仪表板,但每一个面板被绑定到一个特定的数据源。目前官方支持以下数据源:

  • Alertmanager
  • AWS CloudWatch
  • Azure Monitor
  • Elasticsearch
  • Google Cloud Monitoring
  • Graphite
  • InfluxDB
  • Loki
  • Microsoft SQL Server (MSSQL)
  • MySQL
  • OpenTSDB
  • PostgreSQL
  • Prometheus
  • Jaeger
  • Zipkin
  • Tempo

我们这里当然重点需要介绍的就是 Prometheus 这个数据源了。

接下来我们就来安装 Grafana,Grafana 本身是非常轻量级的,不会占用大量资源,此外 Grafana 需要一个数据库来存储其配置数据,比如用户、数据源和仪表盘等,目前 Grafana 支持 SQLite、MySQL、PostgreSQL 3 种数据库,默认使用的是 SQLite,该数据库文件会存储在 Grafana 的安装位置,所以需要对 Grafana 的安装目录进行持久化。

要安装 Grafana 的方式有很多,我们这里使用的是 CentOS 系统,可以在 Grafana 官方下载页面筛选合适的版本 https://grafana.com/grafana/download?edition=oss&platform=linux 根据自己的需求来进行安装,比如我们这里直接使用 rpm 包进行安装:

☸ ➜ wget https://dl.grafana.com/oss/release/grafana-8.2.1-1.x86_64.rpm
☸ ➜ sudo yum install grafana-8.2.1-1.x86_64.rpm

安装完成后我们就可以使用 systemd 来管理 Grafana:

☸ ➜ sudo systemctl daemon-reload
☸ ➜ sudo systemctl enable grafana-server
☸ ➜ sudo systemctl start grafana-server
☸ ➜ sudo systemctl status grafana-server

默认的启动配置环境变量位于 /etc/sysconfig/grafana-server 文件中:

☸ ➜ cat /etc/sysconfig/grafana-server
GRAFANA_USER=grafana

GRAFANA_GROUP=grafana

GRAFANA_HOME=/usr/share/grafana

LOG_DIR=/var/log/grafana

DATA_DIR=/var/lib/grafana

MAX_OPEN_FILES=10000

CONF_DIR=/etc/grafana

CONF_FILE=/etc/grafana/grafana.ini

RESTART_ON_UPGRADE=true

PLUGINS_DIR=/var/lib/grafana/plugins

PROVISIONING_CFG_DIR=/etc/grafana/provisioning

# Only used on systemd systems
PID_FILE_DIR=/var/run/grafana

从上面文件中可以找到 Grafana 的各种数据配置路径,比如数据目录、日志目录、插件目录等等,正常启动完成后 Grafana 会监听在 3000 端口上,所以我们可以在浏览器中打开 Grafana 的 WebUI。

grafana login

默认的用户名和密码为 admin,也可以在配置文件 /etc/grafana/grafana.ini 中配置 admin_useradmin_password 两个参数来进行覆盖。

grafana homepage

当然如果我们想要部署一个高可用版本的 Grafana 的话,那么使用 SQLite 数据库就不行了,需要切换到 MySQL 或者 PostgreSQL,我们可以在 Grafana 配置的 [database] 部分找到数据库的相关配置,Grafana 会将所有长期数据保存在数据库中,然后部署多个 Grafana 实例使用同一个数据库即可实现高可用。

Grafana HA