HelloWood

Raspberry Pi 4 使用 Grafana 监控

2020-09-20

Raspberry Pi 4 使用 Grafana 监控

运行 Influxdb

Influxdb 和 Prometheus 一样都是时序数据库,不同的是它能够作为一个转发代理接受来自不同程序的消息,这里使用 Telegraf 采集数据,存放到 Influxdb 中

  • 启动

挂载的目的是为了将数据保存在宿主机上,方便查询历史数据

1
2
3
4
docker run --name influxdb -d \
-p 8086:8086 \
-v /root/workspace/docker/influxdb:/var/lib/influxdb \
influxdb

运行 Telegraf

Telegraf 是一个用 Golang 写的基于插件驱动的数据收集Agent,可以用来收集机器的数据

  • telegraf.conf

在 telegraf 的配置文件末尾追加以下内容
telegraf 的配置可以先通过docker run telegraf直接启动一个,然后进入容器,从 /etc/telegraf/下修改

1
2
3
4
5
6
7
8
9
[[inputs.net]]

[[inputs.netstat]]

[[inputs.file]]
files = ["/sys/class/thermal/thermal_zone0/temp"]
name_override = "cpu_temperature"
data_format = "value"
data_type = "integer"
  • 启动

Telegraf 依赖于 Influxdb,所以使用同一个网络

1
2
3
4
5
6
7
8
9
docker run --name telegraf -d  \
--net=container:influxdb \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /proc:/host/proc:ro \
-v /opt/:/opt/ \
-v /usr/lib/:/usr/lib/ \
-v /root/workspace/docker/telegraf/config/telegraf.conf:/etc/telegraf/telegraf.conf \
-e HOST_PROC=/host/proc \
telegraf

运行 Grafana

  • 运行
1
2
3
4
5
docker run \
-d \
--name=grafana \
-p 3000:3000 \
grafana/grafana

修改 Influxdb 配置

在 Influxdb 中添加一个新的用户,并授予访问 telegraf 数据库的权限,用于 Grafana 拉取数据

  • 进入容器
1
docker exec -it influxdb bash 
  • 启动 influxdb 客户端
1
2
3
4
influx

Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
  • 添加用户并授予权限
1
create user admin with password '123456' with all privileges

添加监控面板

  • 访问面板

访问树莓派的地址和相应的端口 http://192.168.31.5:3000,输入用户名 admin 和密码 admin,输入新的密码后进入面板主页

  • 添加数据源

访问设置 -> DataSources -> Add Data Source,输入相应的信息

raspberrypi-metrics-grafana-datasource.png

  • 导入监控看板

点击侧边栏加号,import,然后输入面板的 id 10587,然后 load

raspberrypi-metrics-grafana-dashboard.png