Grafana+Zabbix监控数据展示
本文最后更新于90 天前,其中的信息可能已经过时,如有错误请发送邮件到1979007616@qq.com

简介

Grafana 是一个可视化工具,简单点说就是用来展示数据的,不能解决监控问题,需要配合监控工具一起使用。

Grafana 官方是这么介绍 Grafana 的:grafana是用于可视化大型测量数据的开源程序,他提供了强大和优雅的方式去创建、共享、浏览数据。dashboard中显示了你不同metric数据源中的数据。

安装Grafana

下载

用户可以根据当前的操作系统,到 Grafana 官网下载安装包,并执行安装。下载地址如下:grafana官方下载地址

ubuntu安装grafana

安装脚本如下:

sudo apt-get install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.5.14_amd64.deb
sudo dpkg -i grafana-enterprise_9.5.14_amd64.deb

执行命令:

#查看服务状态
systemctl status grafana-server.service
#设置服务开机自启动
systemctl enable grafana-server.service
#启动服务
systemctl start grafana-server.service

选择配置选项

Grafana 后端在其配置文件中定义了许多配置选项(通常位于 Linux 系统上的/etc/grafana/grafana.ini),有兴趣可以查看官方文档。

在此配置文件中,您可以更改默认管理员密码、http 端口、grafana 数据库(sqlite3、mysql、postgres)、身份验证选项(google、github、ldap、auth proxy)以及许多其他选项。

启动 grafana 服务器http://ip:3000。使用您的管理员用户(默认 admin/admin)登录。打开侧边菜单(单击顶部菜单中的 Grafana 图标),前往数据源并添加您的数据源。

Grafana设置中文

在默认情况下,Grafana使用英文作为其用户界面语言。对于非英语用户来说,这可能会造成一些不便。Grafana提供了设置中文的选项,下面就让我们来详细了解一下如何进行设置。从Grafana 6.3.0版本开始,官方正式支持中文语言设置。如下图:

也可以通过修改配置文件/etc/grafana/grafana.ini

#default_language = en-US
default_language = zh-Hans

两种方法汉化的都不是很彻底,可能是我的设置有问题。

添加zabbix数据源

首先在插件中心安装zabbix插件

配置zabbix数据源,添加urlusernamepassword,其他的默认就行,保存测试。

根据自己的需求添加图形

更多设置需要自己去发现

配置Grafana

图形名称显示

升级到11.0.0版本后发现图形名称不显示Host:Item这种格式了,通过查看官方文档,发现可以用表达式来显示。如下图:${__field.labels.host}:${__field.labels.item}

升级Grafana

版本:从9.5.14升级到11.0.0

备份Grafana相关数据

先关闭Grafana服务:systemctl stop grafana-server.service

备份grafana数据库文件grafana.db(一般情况下路径:/var/lib/grafana)

mv /var/lib/grafana/grafana.db /var/lib/grafana/grafana.db.bak

备份插件目录plugins(一般情况下路径:/var/lib/grafana/plugins)

mv /var/lib/grafana/plugins /var/lib/grafana/plugins.bak

备份Grafana配置文件(一般情况下路径:/etc/grafana/grafana.ini)

mv /etc/grafana/grafana.ini /etc/grafana/grafana.ini.bak

下载安装新版本Grafana

wget https://dl.grafana.com/enterprise/release/grafana-enterprise_11.0.0_amd64.deb
sudo dpkg -i grafana-enterprise_11.0.0_amd64.deb

和安装步骤一样,会进行覆盖安装,启动Grafana服务(软件会自动生成上面备份的相关目录)。

恢复备份数据

先关闭Grafana服务:systemctl stop grafana-server.service

再把上面备份的文件覆盖掉新生成的文件和目录,保持原有属性。

最后启动Grafana服务:systemctl start grafana-server.service,恢复完成。

Grafana数据迁移

服务迁移的操作和Grafana升级差不多,把相关数据文件备份,然后进行恢复即可,需要注意的是备份文件进行移动后,文件所属的用户和用户组会发生变化,导致权限问题而无法启动服务。

# 修改文件夹所属用户和用户组
chown grafana:grafana grafana.db

相关文件夹权限参考如下图:

查看 Grafana 的日志文件,通常可以在vim /var/log/grafana/grafana.log。

数据存储从SQLite迁移到mysql

默认的 Grafana 数据库是 SQLite,就单独的一个db文件:/var/lib/grafana/grafana.db,但随着数据量越来越多,稳定性让人担忧,所以迁移到mysql。

导出SQLite历史数据

为确保数据完整性,请在备份 SQLite 数据库之前关闭 Grafana 服务。
systemctl stop grafana-server.service

# 安装SQLite数据库,不然下面的脚本无法执行
apt-get install sqlite3

使用以下脚本将数据导出:vim export_sqlite.sh

#!/bin/bash
DB=$1
TABLES=$(sqlite3 $DB .tables | sed -r 's/(\S+)\s+(\S)/\1\n\2/g' | grep -v migration_log)
for t in $TABLES; do
    echo "TRUNCATE TABLE $t;"
done
for t in $TABLES; do
    echo -e ".mode insert $t\nselect * from $t;"
done | sqlite3 $DB

执行 ./export_sqlite.sh grafana.db > grafana.sql

grafana.db为grafana本地存储的db文件,执行完成之后即可在当前目录下生成mysql 文件。可以理解为格式转换。

mysql新建库及用户

create database grafana;

# 下面的新建用户可以不用,直接使用root用户是一样的
CREATE USER 'grafana'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON `grafana`.* to 'grafana'@'localhost' with grant option;
flush privileges;

修改grafana配置文件

vim /etc/grafana/grafana.ini

修改完成之后重启grafana, 这样grafana会连上mysql数据库, 自动生成所有的表。

systemctl start grafana-server.service

当看到日志显示数据库migration已经做完了之后,就可以再次停用grafana,然后把数据导进去

systemctl stop grafana-server.service

导入数据

mysql -u root -p grafana < grafana.sql

导完之后再次启动grafana

systemctl start grafana-server.service

验证

当grafana启动之后,登录grafana,所有的数据都在,迁移成功。

数据库问题

我先发现用下面这种方法过几个月这个配置就重置了,需要重新配置,好在是频率不是很高,希望有一劳永逸的方法

Grafana添加zabbix数据源失败,可能原因是当前官方版本 4.2.10 在与 Zabbix 通信并请求 “user.login” api 调用时仍然使用 “user” 而不是 “username”。

解决方法:修改文件vim /usr/share/zabbix/include/classes/api/clients/CLocalApiClient.php

在128行添加一个判断

--- /usr/share/zabbix/include/classes/api/clients/CLocalApiClient.php.orig	2023-03-08 16:23:26.555055621 +0100
+++ /usr/share/zabbix/include/classes/api/clients/CLocalApiClient.php	2023-03-08 16:22:46.378217849 +0100
@@ -128,6 +128,13 @@
 				$newTransaction = true;
 			}

+			// UGLY GRAFANA DATASOURCE HACK
+			// rename "user" param to "username" when present
+			if ($params['user'] ?? null) {
+				$params['username'] = $params['user'];
+				unset($params['user']);
+			}
+
 			$result = call_user_func_array([$this->serviceFactory->getObject($api), $method], [$params]);

 			// if the method was called successfully - commit the transaction

重启服务:systemctl restart grafana-server.service

相关链接

Grafana官方文档:https://grafana.com/docs/grafana/latest/

Grafana添加zabbix数据源失败:https://github.com/grafana/grafana-zabbix/issues/1583#issuecomment-1460335481

数据库更换:Grafana学习(将数据存储从SQLite3迁移到mysql)

小提示:您可以通过RSS订阅本站文章更新,订阅地址:https://blog.xmhweb.cn/feed

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇