CentOS7下Grafana简单安装测试使用。

本文详细介绍了在CentOS7系统中如何通过yum安装Grafana,以及利用Grafana的Data Source、Dashboard、Row和Panel等功能进行数据可视化。文章还涵盖了配置collectd、influxdb,并导入共享dashboard来监控Linux系统状态,以及创建自定义Panel展示网络流量数据的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Grafana安装

yum 方式安装

设置安装源

vim /etc/yum.repos.d/grafana.repo
[grafana]
name=grafana
baseurl=https://packages.grafana.com/enterprise/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

安装

yum clean all && yum makecache
yum -y install grafana-enterprise
下载RPM包进行安装。

https://grafana.com/grafana/download

wget https://dl.grafana.com/oss/release/grafana-7.3.6-1.x86_64.rpm 
sudo yum install grafana-7.3.6-1.x86_64.rpm 
启动服务,web访问
systemctl enable grafana-server
systemctl start grafana-server
http:IP:3000

初次使用登录账号密码都是admin
登录后会提示更改密码

初次登录后页面

Grafana基本概念
  • Data Source:grafana确切的说是一个前端展示工具,将数据以非常美观直接的图形展示出来。那么这些数据必须有一个来源吧,grafana获取数据的地方就称为Data Source。官方文档上说grafana支持以下数据源:Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch。在Grafana 3.0+之后,grafana不仅仅支持上面说的这些数据源,还支持一些其它的数据源,这些就称为Grafana Plugins,grafana支持的插件非常多(grafana支持的插件传送门)。

  • DashBoard:仪表盘,就像汽车仪表盘一样可以展示很多信息,包括车速,水箱温度等。Grafana的DashBoard就是以各种图形的方式来展示从Datasource拿到的数据。

  • Row:DashBoard的基本组成单元,一个DashBoard可以包含很多个row。一个row可以展示一种信息或者多种信息的组合,比如系统内存使用率,CPU五分钟及十分钟平均负载等。所以在一个DashBoard上可以集中展示很多内容。

  • Panel:面板,实际上就是row展示信息的方式,支持表格(table),列表(alert list),热图(Heatmap)等多种方式,具体可以去官网上查阅。

  • Query Editor:用来指定获取哪一部分数据。类似于sql查询语句,比如你要在某个row里面展示test这张表的数据,那么Query Editor里面就可以写成select *from test。这只是一种比方,实际上每个DataSource获取数据的方式都不一样,所以写法也不一样,比如像zabbix,数据是以指定某个监控项的方式来获取的。

  • Organization:org是一个很大的概念,每个用户可以拥有多个org,grafana有一个默认的main org。用户登录后可以在不同的org之间切换,前提是该用户拥有多个org。不同的org之间完全不一样,包括datasource,dashboard等都不一样。创建一个org就相当于开了一个全新的视图,所有的datasource,dashboard等都要再重新开始创建。

  • User:这个概念应该很简单,不用多说。Grafana里面用户有三种角色admin,editor,viewer。admin权限最高,可以执行任何操作,包括创建用户,新增Datasource,创建DashBoard。editor角色不可以创建用户,不可以新增Datasource,可以创建DashBoard。viewer角色仅可以查看DashBoard。在2.1版本及之后新增了一种角色read only editor(只读编辑模式),这种模式允许用户修改DashBoard,但是不允许保存。每个user可以拥有多个organization。

grafana数据存储位置
[paths]
data = /var/lib/grafana
logs = /var/log/kolla/grafana
plugins = /var/lib/grafana/plugins
provisioning = /etc/grafana/provisioning

Path to where grafana can store temp files, sessions, and the sqlite3 db (if that is used)

grafana数据存储是通过 sql 数据库存储的。如果未设置 mysql的database,会本地创建 sqlite3 db 文件保存。

使用共享的dashboard查看linux系统状态。

https://grafana.com/grafana/dashboards/554
使用influxdb数据库, collectd工具收集数据。

collectd 设置
LoadPlugin logfile

<Plugin logfile>
        LogLevel info
        File "/var/log/collectd.log"
        Timestamp true
        PrintSeverity false
</Plugin>


LoadPlugin cpu
LoadPlugin df
LoadPlugin fhcount
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin network

<Plugin interface>
        Interface "ens33"
</Plugin>

<Plugin network>
        Server "192.168.199.80" "25826"
</Plugin>
systemctl restart collectd
influxdb设置
> CREATE USER "admin" WITH PASSWORD 'password' WITH ALL PRIVILEGES
[http]
	enabled = true 
	bind-address = ":8086"
	auth-enabled = true
	log-enabled = true 
	write-tracing = false 
	pprof-enabled = false 
	https-enabled = false 
	https-certificate = "/etc/ssl/influxdb.pem"
	
[[collectd]]
    enabled = true
    bind-address = ":25826"
systemctl restart influxdb
curl -G "http://localhost:8086/query?u=admin&p=password&q=SHOW+DATABASES"
[root@server ~]# curl -G "http://localhost:8086/query?u=admin&p=password&q=SHOW+DATABASES"
{"results":[{"statement_id":0,"series":[{"name":"databases","columns":["name"],"values":[["_internal"],["collectd"]]}]}]}
grafana设置
1.设置数据库

设置数据库
选择influxdb数据库,设置name为LinuxStatus(这个随意)以及influxdb的连接设置(重点是设置这个)

http URL 设置 http://localhost:8086
因为将influxdb和grafana安装在同一个主机,如果不在同一个主机,将localhost替换为influxdb所在主机IP即可

InfluxDB Details

Database collectd	(和influxdb设置的collectd段有关,默认库名collectd)
user				influxdb账户 上面influxdb设置的是admin
password			influxdb密码 上面influxdb设置的是password

其它的选择默认或者不填即可
influxdb设置连接
点击save & test。设置成功失败都会有提示。
influxdb数据库设置完成

导入共享dashboard。

选择导入ID为554的模板。
选择导入ID为554的模板
选择数据库
选择数据库
点击 Import后即可看到结果
模板查看

测试自己创建Panel面板展示网络流量数据。

influxdb查看收集到的数据

> select * from interface_tx limit 10
name: interface_tx
time                host    instance type       value
----                ----    -------- ----       -----
1609747571243079714 client1 ens33    if_packets 12863
1609747571243080971 client1 ens33    if_octets  1157757
1609747571243081736 client1 ens33    if_errors  0
1609747571243082367 client1 ens33    if_dropped 0
1609747581243778029 client1 ens33    if_packets 12866
1609747581243780357 client1 ens33    if_octets  1160562
1609747581243781674 client1 ens33    if_errors  0
1609747581243782779 client1 ens33    if_dropped 0
1609747591243370915 client1 ens33    if_packets 12868
1609747591243372004 client1 ens33    if_octets  1161982
> select * from interface_rx limit 10
name: interface_rx
time                host    instance type       value
----                ----    -------- ----       -----
1609747571243079714 client1 ens33    if_packets 18518
1609747571243080971 client1 ens33    if_octets  22636122
1609747571243081736 client1 ens33    if_errors  0
1609747571243082367 client1 ens33    if_dropped 0
1609747581243778029 client1 ens33    if_packets 18526
1609747581243780357 client1 ens33    if_octets  22637368
1609747581243781674 client1 ens33    if_errors  0
1609747581243782779 client1 ens33    if_dropped 0
1609747591243370915 client1 ens33    if_packets 18540
1609747591243372004 client1 ens33    if_octets  22641670

创建个人的dashboard
点击左侧 + 选择dashboard
初始dashboard
初始什么都没有。可以可以模仿导入的模板的进行测试练习设置。

1.设置变量。

变量是展示图表中可供选择的不同值。例如不同主机,查询同一状态,便可将查询语句中主机设置为变量。变量可在展示过程中进行选择。

show tag values with key=host;

点击上方的设置图标 dashboard setting。
创建变量
设置变量

Name 	host
Data 	source LinuxStatus, 
Query 	show tag values with key=host

设置变量

设置的变量用来定义另一个变量,查询可以是’$变量名’

host是刚才定义的变量名。

show tag values from interface_rx,interface_tx with key=instance where host='$host'

定义变量时使用已定义的变量查询

2.创建panel,设置查询语句。

点击 Add new panel。创建panel,进行设置。
设置panel
模板dashboard设置如下
模板dashboard

SELECT non_negative_derivative(mean("value"), 1s)  *8 FROM "interface_rx" WHERE ("host" =~ /^$host$/ AND "type" = 'if_octets') AND $timeFilter GROUP BY time($interval) fill(null)

下方是查询influxdb数据相关,具体使用需要对influxdb数据库有一定了解。。。右方是坐标轴显示相关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值