说明与准备

  • 使用netdata 采集数据,并导出到prometheus中。
  • 使用prometheus充当数据库缓存时序数据(可替换为其他时序数据库,由于influxdb更新变更太大,放弃它了:->)。
  • 使用grafana抓取prometheus中时序数据进行可视化。

操作系统为ArchLinux,其使用pacman包管理工具。

prometheusnetdata都支持pushpull数据,在archlinux上默认开启的模式为:prometheus通过netdata接口拉取数据。

这里我的方案修改为:netdata关闭web功能(可视化以及数据存储较弱),通过netdata推送数据到prometheus中,然后通过grafana获取数据进行可视化,整体方案如下图。

netdata_grafana_0

部署 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访问,可以看见已经有数据写入。

netdata_grafana_1

部署 grafana

安装和启动 grafana

sudo pacman -Syu grafana
systemctl enable grafana
systemctl start grafana

启动后通过localhost:3000访问,配置数据源后可进行数据可视化。

netdata_grafana_2

最后修改:2023 年 02 月 06 日
如果觉得我的文章对你有用,请随意赞赏