1. 首页 > 软件安装教程 > 正文

Grafana安装配置-Grafana可视化安装配置_升级迁移详细过程

1. Grafana概述与环境规划

Grafana是一个开源的可视化平台,用于监控和分析时间序列数据。Grafana支持多种数据源,包括Prometheus、Graphite、InfluxDB等,提供了丰富的可视化组件和告警功能。更多学习教程www.fgedu.net.cn

1.1 Grafana版本说明

Grafana目前主要版本为9.x系列,本教程以Grafana 9.5.2为例进行详细讲解。Grafana 9.x版本相比之前版本在性能、稳定性和功能方面都有显著提升,支持更多的可视化特性。

# 查看Grafana版本
$ grafana-server –version
Version 9.5.2 (commit: abcdefg1234567890abcdefg1234567890abcdefg, branch: HEAD, compiled: 2023-04-05T15:33:19Z)

# 查看系统版本
$ cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

# 查看内核版本
$ uname -r
5.4.17-2136.302.7.2.el8uek.x86_64

1.2 环境规划

本次安装环境规划如下:

Grafana服务器:
grafana01.fgedu.net.cn (192.168.1.93) – Grafana主服务器
grafana02.fgedu.net.cn (192.168.1.94) – Grafana备用服务器

Grafana版本:9.5.2
数据库:PostgreSQL 14.0
Web服务器:Nginx 1.20.0
安装方式:RPM包安装
数据存储:本地文件系统 + NFS共享存储

2. 硬件环境要求

Grafana作为可视化平台,对硬件资源要求根据监控目标数量和数据量而定。学习交流加群风哥微信: itpux-com

2.1 物理主机环境要求

# Grafana服务器要求
– CPU:至少4核
– 内存:至少16GB
– 磁盘:系统盘120GB SSD + 数据盘500GB SSD

# 检查Grafana服务器资源
# free -h
total used free shared buff/cache available
Mem: 16G 4.2G 10G 256M 1.8G 11G
Swap: 8G 0B 8G

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 120G 20G 100G 17% /
/dev/sdb1 500G 50G 450G 10% /data

生产环境建议:Grafana服务器至少2个,实现高可用。建议使用SSD存储以提高I/O性能。网络带宽建议10Gbps以上,以支持大量数据传输和用户访问。

2.2 vSphere虚拟主机环境要求

虚拟机配置:
– Grafana服务器:
– vCPU:4核
– 内存:16GB
– 磁盘:系统盘120GB SSD + 数据盘500GB SSD
– 网络:VMXNET3网卡,10Gbps网络

资源池配置:
– CPU预留:2GHz
– 内存预留:8GB
– 内存限制:16GB
– CPU份额:正常
– 内存份额:正常

2.3 云平台主机环境要求

云主机规格(阿里云/腾讯云/华为云):
– Grafana服务器:
– 实例规格:ecs.g6.2xlarge或同等规格
– vCPU:8核
– 内存:32GB
– 系统盘:SSD云盘 120GB
– 数据盘:SSD云盘 500GB
– 网络带宽:10Gbps以上

存储配置:
– OSS对象存储:用于存储仪表板备份
– NAS文件存储:用于共享配置文件
– 云盘快照:定期备份数据

3. 操作系统环境准备

在安装Grafana之前,需要对操作系统进行必要的配置和优化。

3.1 操作系统版本检查

# 检查操作系统版本
# cat /etc/os-release
NAME=”Oracle Linux Server”
VERSION=”8.9″
ID=”ol”
PRETTY_NAME=”Oracle Linux Server 8.9″

# 检查内核版本
# uname -r
5.4.17-2136.302.7.2.el8uek.x86_64

# 检查SELinux状态
# getenforce
Enforcing

# 检查防火墙状态
# systemctl status firewalld
● firewalld.service – firewalld – dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running)

3.2 依赖服务安装

# 安装依赖包
# dnf install -y wget curl tar gzip epel-release

# 关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld

# 关闭SELinux
# setenforce 0
# sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/’ /etc/selinux/config

# 安装PostgreSQL
# dnf install -y postgresql-server postgresql-contrib
# postgresql-setup –initdb
# systemctl start postgresql
# systemctl enable postgresql

# 安装Nginx
# dnf install -y nginx
# systemctl start nginx
# systemctl enable nginx

3.3 数据库配置

# 创建Grafana数据库和用户
# su – postgres
$ psql
CREATE USER grafana WITH PASSWORD ‘password’;
CREATE DATABASE grafana OWNER grafana;
\q
$ exit

# 验证数据库连接
# psql -U grafana -d grafana -h localhost
Password for user grafana:
psql (14.0)
Type “help” for help.

grafana=> \q

4. Grafana安装配置

完成环境准备后,开始安装Grafana。

4.1 安装Grafana

# 添加Grafana仓库
# cat > /etc/yum.repos.d/grafana.repo << EOF [grafana] name=grafana baseurl=https://packages.grafana.com/oss/rpm enabled=1 gpgcheck=1 gpgkey=https://packages.grafana.com/gpg.key EOF # 安装Grafana # dnf install -y grafana # 配置Grafana # vi /etc/grafana/grafana.ini [database] type = postgres host = localhost:5432 name = grafana user = grafana password = password [server] protocol = http http_port = 3000 domain = grafana.fgedu.net.cn root_url = http://grafana.fgedu.net.cn [paths] data = /var/lib/grafana logs = /var/log/grafana plugins = /var/lib/grafana/plugins provisioning = /etc/grafana/provisioning # 启动Grafana # systemctl start grafana-server # systemctl enable grafana-server # 验证安装 # systemctl status grafana-server # curl http://localhost:3000

4.2 访问Grafana Web界面

# 访问Grafana Web界面
# 打开浏览器访问 http://grafana.fgedu.net.cn

# 初始登录
# 用户名:admin
# 密码:admin

# 完成首次登录设置
# 1. 输入新密码
# 2. 点击”Save”
# 3. 进入Grafana主界面

5. Grafana配置优化

为了提高Grafana的性能和稳定性,需要进行一些配置优化。

5.1 服务器配置优化

# 编辑Grafana配置
# vi /etc/grafana/grafana.ini

# 服务器配置
[server]
protocol = http
http_port = 3000
domain = grafana.fgedu.net.cn
root_url = http://grafana.fgedu.net.cn

# 数据库配置
[database]
type = postgres
host = localhost:5432
name = grafana
user = grafana
password = password
max_idle_conn = 10
max_open_conn = 100

# 会话配置
[session]
provider = postgres
session_life_time = 86400

# 日志配置
[log]
mode = file
level = info

# 重启Grafana
# systemctl restart grafana-server

5.2 数据库优化

# 编辑PostgreSQL配置
# vi /var/lib/pgsql/data/postgresql.conf

# 内存配置
shared_buffers = 4GB
work_mem = 32MB
maintenance_work_mem = 1GB

# 查询优化
effective_cache_size = 12GB
random_page_cost = 1.1

# 写入优化
temp_buffers = 256MB
max_wal_size = 2GB
min_wal_size = 512MB

# 并发配置
max_connections = 100

# 重启PostgreSQL
# systemctl restart postgresql

# 优化数据库表
# su – postgres
$ psql -d grafana
VACUUM ANALYZE;
REINDEX DATABASE grafana;
\q
$ exit

5.3 高可用配置

# 在备用服务器安装Grafana
# 重复主服务器的安装步骤

# 配置主服务器Grafana
# vi /etc/grafana/grafana.ini
[database]
type = postgres
host = localhost:5432
name = grafana
user = grafana
password = password

# 配置备用服务器Grafana
# vi /etc/grafana/grafana.ini
[database]
type = postgres
host = grafana01.fgedu.net.cn:5432
name = grafana
user = grafana
password = password

# 配置数据库主从复制
# 在主服务器上
# vi /var/lib/pgsql/data/postgresql.conf
wal_level = replica
max_wal_senders = 10
max_replication_slots = 10

# 编辑pg_hba.conf
# vi /var/lib/pgsql/data/pg_hba.conf
host replication replica 192.168.1.94/32 md5

# 重启PostgreSQL
# systemctl restart postgresql

# 在备用服务器上
# su – postgres
$ pg_basebackup -h 192.168.1.93 -U replica -D /var/lib/pgsql/data -P -v
$ vi /var/lib/pgsql/data/recovery.conf
standby_mode = ‘on’
primary_conninfo = ‘host=192.168.1.93 port=5432 user=replica password=password’

# 重启PostgreSQL
# systemctl restart postgresql

6. Grafana数据源配置

Grafana支持多种数据源,包括Prometheus、Graphite、InfluxDB等。

6.1 添加Prometheus数据源

# 访问Grafana Web界面
# 1. 点击左侧菜单的”Configuration” -> “Data sources”
# 2. 点击”Add data source”
# 3. 选择”Prometheus”
# 4. 配置URL为 http://prometheus.fgedu.net.cn:9090
# 5. 点击”Save & Test”

# 验证数据源
# 1. 点击”Test”按钮
# 2. 确认显示”Data source is working”

6.2 添加InfluxDB数据源

# 访问Grafana Web界面
# 1. 点击左侧菜单的”Configuration” -> “Data sources”
# 2. 点击”Add data source”
# 3. 选择”InfluxDB”
# 4. 配置URL为 http://influxdb.fgedu.net.cn:8086
# 5. 填写数据库名称、用户名和密码
# 6. 点击”Save & Test”

# 验证数据源
# 1. 点击”Test”按钮
# 2. 确认显示”Data source is working”

6.3 添加MySQL数据源

# 访问Grafana Web界面
# 1. 点击左侧菜单的”Configuration” -> “Data sources”
# 2. 点击”Add data source”
# 3. 选择”MySQL”
# 4. 配置Host为 mysql.fgedu.net.cn:3306
# 5. 填写数据库名称、用户名和密码
# 6. 点击”Save & Test”

# 验证数据源
# 1. 点击”Test”按钮
# 2. 确认显示”Data source is working”

7. Grafana仪表板配置

Grafana仪表板用于可视化监控数据。

7.1 导入仪表板

# 访问Grafana Web界面
# 1. 点击左侧菜单的”Dashboards” -> “Import”
# 2. 输入仪表板ID(如1860 for Node Exporter Full)
# 3. 点击”Load”
# 4. 选择数据源
# 5. 点击”Import”

# 查看仪表板
# 1. 点击左侧菜单的”Dashboards” -> “Browse”
# 2. 选择导入的仪表板
# 3. 查看监控数据

7.2 创建自定义仪表板

# 访问Grafana Web界面
# 1. 点击左侧菜单的”Dashboards” -> “New dashboard”
# 2. 点击”Add new panel”
# 3. 选择数据源
# 4. 配置查询
# 5. 调整面板设置
# 6. 点击”Apply”
# 7. 点击”Save dashboard”

# 配置仪表板变量
# 1. 点击仪表板设置
# 2. 点击”Variables”
# 3. 点击”Add variable”
# 4. 配置变量设置
# 5. 点击”Add”

8. Grafana告警配置

Grafana告警用于通知管理员系统异常。

8.1 配置告警通道

# 访问Grafana Web界面
# 1. 点击左侧菜单的”Alerting” -> “Notification channels”
# 2. 点击”Add channel”
# 3. 填写通道名称和类型(如Email)
# 4. 配置SMTP服务器信息
# 5. 点击”Save”

# 测试告警通道
# 1. 点击”Test”按钮
# 2. 检查邮件是否收到

8.2 配置告警规则

# 访问Grafana Web界面
# 1. 打开一个仪表板
# 2. 编辑一个面板
# 3. 点击”Alert”
# 4. 点击”Create Alert”
# 5. 配置告警规则
# 6. 选择通知通道
# 7. 点击”Apply”
# 8. 点击”Save dashboard”

# 测试告警
# 1. 手动触发一个告警
# 2. 检查邮件是否收到

9. Grafana安全配置

Grafana提供了多种安全功能,包括认证、授权、加密等。

9.1 认证配置

# 访问Grafana Web界面
# 1. 点击左侧菜单的”Configuration” -> “Users”
# 2. 点击”New user”
# 3. 填写用户名、邮箱和密码
# 4. 选择角色
# 5. 点击”Create”

# 配置用户组
# 1. 点击左侧菜单的”Configuration” -> “Teams”
# 2. 点击”New team”
# 3. 填写团队名称和描述
# 4. 点击”Create”
# 5. 添加成员

9.2 授权配置

# 访问Grafana Web界面
# 1. 点击左侧菜单的”Configuration” -> “Roles”
# 2. 选择角色
# 3. 配置权限
# 4. 点击”Update”

# 配置仪表板权限
# 1. 打开一个仪表板
# 2. 点击仪表板设置
# 3. 点击”Permissions”
# 4. 配置访问权限
# 5. 点击”Save”

9.3 加密配置

# 生成TLS证书
# openssl req -newkey rsa:2048 -nodes -keyout /etc/grafana/grafana.key -x509 -days 365 -out /etc/grafana/grafana.crt

# 配置Grafana
# vi /etc/grafana/grafana.ini
[server]
protocol = https
http_port = 3000
domain = grafana.fgedu.net.cn
root_url = https://grafana.fgedu.net.cn
cert_file = /etc/grafana/grafana.crt
cert_key = /etc/grafana/grafana.key

# 重启Grafana
# systemctl restart grafana-server

# 访问Grafana Web界面
# 打开浏览器访问 https://grafana.fgedu.net.cn

10. Grafana性能优化

在生产环境中,需要对Grafana进行性能优化以提高可视化效率。from:www.itpux.com

10.1 服务器性能优化

# 编辑Grafana配置
# vi /etc/grafana/grafana.ini

# 内存配置
[server]
protocol = http
http_port = 3000

[database]
type = postgres
host = localhost:5432
name = grafana
user = grafana
password = password
max_idle_conn = 20
max_open_conn = 200

# 缓存配置
[cache]
enable = true

# 并发配置
[server]
disable_gzip = false

# 重启Grafana
# systemctl restart grafana-server

10.2 数据库性能优化

# 编辑PostgreSQL配置
# vi /var/lib/pgsql/data/postgresql.conf

# 内存配置
shared_buffers = 8GB
work_mem = 64MB
maintenance_work_mem = 2GB

# 查询优化
effective_cache_size = 24GB
random_page_cost = 1.0

# 写入优化
temp_buffers = 512MB
max_wal_size = 4GB
min_wal_size = 1GB

# 并发配置
max_connections = 200

# 重启PostgreSQL
# systemctl restart postgresql

# 定期优化数据库
# crontab -e
0 0 * * * su – postgres -c “psql -d grafana -c ‘VACUUM ANALYZE;'”

10.3 仪表板优化

# 优化仪表板查询
# 1. 访问Grafana Web界面
# 2. 编辑仪表板
# 3. 调整查询时间范围
# 4. 使用合适的聚合函数
# 5. 减少面板数量

# 优化数据源查询
# 1. 访问Grafana Web界面
# 2. 编辑数据源
# 3. 配置查询超时
# 4. 使用缓存

11. Grafana升级迁移

本节介绍Grafana的版本升级和数据迁移方法。

11.1 Grafana版本升级

# 备份Grafana数据
# su – postgres
$ pg_dump -U grafana -d grafana > /backup/grafana-backup-$(date +%Y%m%d).sql
$ exit

# 停止Grafana服务
# systemctl stop grafana-server

# 升级Grafana
# dnf clean all
# dnf update grafana

# 启动Grafana服务
# systemctl start grafana-server

# 验证升级
# grafana-server –version
Version 9.5.3 (commit: abcdefg1234567890abcdefg1234567890abcdefg, branch: HEAD, compiled: 2023-05-01T15:33:19Z)

# 访问Grafana Web界面
# 打开浏览器访问 http://grafana.fgedu.net.cn

11.2 Grafana数据迁移

# 备份原Grafana数据
# su – postgres
$ pg_dump -U grafana -d grafana > /backup/grafana-backup.sql
$ exit

# 在新服务器上恢复数据
# su – postgres
$ psql -U postgres -c “CREATE USER grafana WITH PASSWORD ‘password’;”
$ psql -U postgres -c “CREATE DATABASE grafana OWNER grafana;”
$ psql -U grafana -d grafana -f /backup/grafana-backup.sql
$ exit

# 安装Grafana
# 重复安装步骤

# 启动Grafana服务
# systemctl start grafana-server

# 验证迁移
# 访问Grafana Web界面,检查数据是否完整

12. Grafana备份恢复

本节介绍Grafana的备份和恢复方法。

12.1 Grafana备份

# 创建备份脚本
# vi /data/grafana/scripts/backup.sh

#!/bin/bash
BACKUP_DIR=”/backup/grafana”
DATE=$(date +%Y%m%d)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份数据库
su – postgres -c “pg_dump -U grafana -d grafana > $BACKUP_DIR/grafana-backup-$DATE.sql”

# 备份配置文件
cp /etc/grafana/grafana.ini $BACKUP_DIR/grafana-$DATE.ini
cp -r /var/lib/grafana/dashboards $BACKUP_DIR/dashboards-$DATE
cp -r /var/lib/grafana/plugins $BACKUP_DIR/plugins-$DATE

# 清理旧备份(保留7天)
find $BACKUP_DIR -type f -mtime +7 -exec rm -f {} \;

# 添加执行权限
# chmod +x /data/grafana/scripts/backup.sh

# 添加定时任务
# crontab -e
0 0 * * * /data/grafana/scripts/backup.sh

12.2 Grafana恢复

# 停止Grafana服务
# systemctl stop grafana-server

# 恢复数据库
# su – postgres
$ psql -U postgres -c “DROP DATABASE grafana;”
$ psql -U postgres -c “CREATE DATABASE grafana OWNER grafana;”
$ psql -U grafana -d grafana -f /backup/grafana/grafana-backup-20230405.sql
$ exit

# 恢复配置文件
# cp /backup/grafana/grafana-20230405.ini /etc/grafana/grafana.ini
# cp -r /backup/grafana/dashboards-20230405/* /var/lib/grafana/dashboards/
# cp -r /backup/grafana/plugins-20230405/* /var/lib/grafana/plugins/

# 启动Grafana服务
# systemctl start grafana-server

# 验证恢复
# systemctl status grafana-server
# 访问Grafana Web界面,检查数据是否完整

12.3 Grafana监控脚本

# 创建Grafana监控脚本
# vi /data/grafana/scripts/monitor.sh

#!/bin/bash
LOG_FILE=”/var/log/grafana_monitor.log”
ALERT_EMAIL=”admin@fgedu.net.cn”

check_grafana_status() {
echo “$(date): Checking grafana status…” >> $LOG_FILE
status=$(systemctl status grafana-server | grep Active | awk ‘{print $2}’)
if [ “$status” != “active” ]; then
echo “$(date): Grafana is not running” >> $LOG_FILE
echo “Grafana is not running” | mail -s “Grafana Alert” $ALERT_EMAIL
systemctl start grafana-server
else
echo “$(date): Grafana is running” >> $LOG_FILE
fi
}

check_grafana_web() {
echo “$(date): Checking grafana web…” >> $LOG_FILE
status=$(curl -s -o /dev/null -w “%{http_code}” http://grafana.fgedu.net.cn)
if [ “$status” = “200” ]; then
echo “$(date): Grafana web: OK” >> $LOG_FILE
else
echo “$(date): Grafana web: FAILED” >> $LOG_FILE
echo “Grafana web failed” | mail -s “Grafana Alert” $ALERT_EMAIL
fi
}

check_postgresql_status() {
echo “$(date): Checking postgresql status…” >> $LOG_FILE
status=$(systemctl status postgresql | grep Active | awk ‘{print $2}’)
if [ “$status” != “active” ]; then
echo “$(date): PostgreSQL is not running” >> $LOG_FILE
echo “PostgreSQL is not running” | mail -s “Grafana Alert” $ALERT_EMAIL
systemctl start postgresql
else
echo “$(date): PostgreSQL is running” >> $LOG_FILE
fi
}

main() {
check_grafana_status
check_grafana_web
check_postgresql_status
}

main

# 添加执行权限
# chmod +x /data/grafana/scripts/monitor.sh

# 添加定时任务
# crontab -e
*/15 * * * * /data/grafana/scripts/monitor.sh

生产环境建议:定期备份Grafana配置和数据,建议每天执行一次完整备份。监控脚本建议每15分钟执行一次,及时发现并处理问题。恢复操作前务必停止Grafana服务,避免数据不一致。

通过以上步骤,Grafana安装配置、性能优化、升级迁移、备份恢复等内容已全部完成。Grafana作为开源可视化平台,能够高效地可视化监控数据,是企业IT运维的重要工具。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息