说明与准备
- 使用
netdata
采集数据,并导出到prometheus
中。 - 使用
prometheus
充当数据库缓存时序数据(可替换为其他时序数据库,由于influxdb
更新变更太大,放弃它了:->)。 - 使用
grafana
抓取prometheus
中时序数据进行可视化。
操作系统为ArchLinux
,其使用pacman
包管理工具。
prometheus
和netdata
都支持push
和pull
数据,在archlinux
上默认开启的模式为:prometheus
通过netdata
接口拉取数据。
这里我的方案修改为:netdata
关闭web
功能(可视化以及数据存储较弱),通过netdata
推送数据到prometheus
中,然后通过grafana
获取数据进行可视化,整体方案如下图。
部署 netdata
安装与启动 netdata
# 安装 netdata
sudo pacman -Syu netdata
# 设置开机启动
systemctl enable netdata
systemctl start netdata
配置 netdata
# 访问 localhost:19999/netdata.conf
# 找到 directorys 节,查看配置文件所在位置
# 配置 /etc/netdata/netdata.conf
# 找到 [web] 节
# 加入 mode = none 关闭 19999 端口 web 显示功能
# 配置 /etc/netdata 中 exporting.conf
cd /etc/netdata
./edit-config exporting.conf
# exporting.conf 文件
[exporting:global]
enabled = yes
send configured labels = yes
send automatic labels = no
update every = 1
[prometheus_remote_write:netdata_to_prometheus]
enabled = yes
update every = 1
destination = localhost:9090
remote write URL path = /api/v1/write
配置完成后重启netdata
服务。
systemctl restart netdata
部署 prometheus
安装与启动 prometheus
# 安装 prometheus
sudo pacman -Syu prometheus
配置 prometheus
# 通过修改传入参数方式
vim /etc/systemd/system/multi-user.target.wants/prometheus.service
# 修改 ExecStart 中的参数打开 web 写入功能
ExecStart=/usr/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=xxx --web.enable-remote-write-receiver $PROMETHEUS_ARGS
启动 prometheus
systemctl enable prometheus
systemctl start prometheus
启动后可以通过localhost:9090
访问,可以看见已经有数据写入。
部署 grafana
安装和启动 grafana
sudo pacman -Syu grafana
systemctl enable grafana
systemctl start grafana
启动后通过localhost:3000
访问,配置数据源后可进行数据可视化。
1 条评论
你好,你的这个主题如何获取呢?感觉很好看。