如何将Ubuntu机器统计数据发送至Databox?有无网页查看替代方案?
把Ubuntu机器统计数据同步到Databox的方案&替代网页查看方案
当然可行!我之前帮团队配置过类似的需求,下面分两部分给你详细说明:
一、将Ubuntu统计数据发送到Databox的具体步骤
Databox支持通过自定义API推送指标,我们可以写脚本收集数据后推送到它的平台,步骤如下:
获取Databox API令牌
登录你的Databox账户,进入「Settings > API」页面,复制你的API Key(这个是推送数据的凭证,别泄露给无关人员)。在Ubuntu上编写数据收集脚本
先确保安装必要的工具(比如curl和ifstat,如果需要监控网络流量):sudo apt update && sudo apt install curl ifstat -y然后创建一个脚本文件(比如
databox_push.sh),内容示例如下,你可以根据需要调整收集的指标:#!/bin/bash # 配置Databox API Key API_KEY="你的API_KEY" DATABOX_URL="https://push.databox.com/custom" # 收集统计数据 UPTIME=$(uptime -p | sed 's/up //') # 格式化运行时间 FREE_SPACE=$(df -h / | awk 'NR==2 {print $4}') # 根目录可用空间 NET_TRAFFIC=$(ifstat -i eth0 1 1 | awk 'NR==3 {print $1" / "$2}') # eth0网卡的进出流量(根据你的网卡名调整) # 构建Databox接受的JSON数据 JSON_DATA=$(cat <<EOF { "series": [ { "metric": "ubuntu_uptime", "value": "$UPTIME", "unit": "duration" }, { "metric": "ubuntu_free_space", "value": "$FREE_SPACE", "unit": "storage" }, { "metric": "ubuntu_net_traffic", "value": "$NET_TRAFFIC", "unit": "traffic" } ] } EOF ) # 推送数据到Databox curl -X POST -H "Content-Type: application/json" -H "Authorization: Token $API_KEY" -d "$JSON_DATA" $DATABOX_URL给脚本添加执行权限:
chmod +x databox_push.sh设置定时任务自动推送
用crontab设置定时执行脚本,比如每5分钟推送一次:crontab -e在打开的编辑器里添加一行:
*/5 * * * * /path/to/your/databox_push.sh >> /var/log/databox_push.log 2>&1这样脚本就会自动定时收集并推送数据到Databox,你的同事登录Databox就能看到这些指标了。
二、让同事通过网页查看机器统计数据的替代方案
如果不想用Databox,下面几个方案更适合网页直接查看:
1. Netdata(轻量级、开箱即用)
Netdata是一款轻量级的实时监控工具,安装后直接通过网页就能看到所有系统指标,步骤:
- 安装Netdata:
sudo bash <(curl -Ss https://my-netdata.io/kickstart.sh) - 开放防火墙端口(默认是19999):
sudo ufw allow 19999/tcp - 你的同事直接在浏览器访问
http://你的Ubuntu机器IP:19999就能看到完整的系统监控面板,包括运行时间、网络流量、磁盘空间等,还能设置密码保护访问。
2. Prometheus + Grafana(功能强大、适合多机器)
如果你们有多个机器需要监控,这个组合更合适:
- 先安装
node_exporter(用于收集Ubuntu的系统指标):sudo apt install prometheus-node-exporter -y - 安装Prometheus并配置它抓取
node_exporter的指标(默认端口9100)。 - 安装Grafana,然后导入官方的Ubuntu监控仪表盘(比如ID为1860的仪表盘),同事访问Grafana的网页(默认端口3000)就能看到可视化的监控数据。
3. 自定义简单网页(适合极简需求)
如果只需要展示几个关键指标,可以用Python写个简单的Flask服务:
- 安装Flask:
pip install flask - 写一个简单的app.py脚本,收集数据并在网页展示,然后启动服务,同事访问对应的端口就能查看。
内容的提问来源于stack exchange,提问作者Lulucmy
相关产品推荐
相关产品推荐

