From d59cf061ab016186d3c363cf574035117f7f3575 Mon Sep 17 00:00:00 2001 From: 10908 <1090814301@qq.com> Date: Mon, 23 Sep 2024 14:40:41 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E6=94=B9]node-exporter=E7=89=B9?= =?UTF-8?q?=E6=9D=83=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 3 +++ docker/node_exporter/Dockerfile | 4 +++- management-panel/app/Filament/Widgets/NetworkMonitor.php | 6 +++--- management-panel/app/Filament/Widgets/SystemStats.php | 4 ++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 4876e21..2f42bda 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,6 +22,9 @@ services: - prometheus node-exporter: build: docker/node_exporter + privileged: true + volumes: + - '/:/host:ro' opcua-exporter: build: opcua-exporter ## volumes: diff --git a/docker/node_exporter/Dockerfile b/docker/node_exporter/Dockerfile index 92c47b1..f9562ba 100644 --- a/docker/node_exporter/Dockerfile +++ b/docker/node_exporter/Dockerfile @@ -22,4 +22,6 @@ RUN architecture=$(uname -m); \ exit 1; \ fi -CMD ["node_exporter"] \ No newline at end of file +RUN mkdir /host + +CMD ["node_exporter","--path.rootfs=/host"] \ No newline at end of file diff --git a/management-panel/app/Filament/Widgets/NetworkMonitor.php b/management-panel/app/Filament/Widgets/NetworkMonitor.php index 332ad96..47f5d36 100644 --- a/management-panel/app/Filament/Widgets/NetworkMonitor.php +++ b/management-panel/app/Filament/Widgets/NetworkMonitor.php @@ -36,7 +36,7 @@ class NetworkMonitor extends ChartWidget if ($selectedFilter === 'upload') { // 查询过去 1 分钟内每秒的上传流量 - $uploadQuery = 'rate(node_network_transmit_bytes_total[1m])'; + $uploadQuery = 'rate(node_network_transmit_bytes_total{device="eth0"}[1m])'; $uploadResult = $prometheus->queryRange( $uploadQuery, now()->subMinutes(1)->timestamp, @@ -55,14 +55,14 @@ class NetworkMonitor extends ChartWidget foreach ($timestamps as $timestamp) { $labels[] = date('H:i:s', $timestamp); // 格式化时间戳为小时:分钟:秒 - $uploadData[] = round(floatval($uploadValues[$timestamp]) / (1024 * 1024), 2); // 转换为 MB/s + $uploadData[] = round(floatval($uploadValues[$timestamp]) / (1024*1024), 2); // 转换为 MB/s } } } if ($selectedFilter === 'download') { // 查询过去 1 分钟内每秒的下载流量 - $downloadQuery = 'rate(node_network_receive_bytes_total[1m])'; + $downloadQuery = 'rate(node_network_receive_bytes_total{device="eth0"}[1m])'; $downloadResult = $prometheus->queryRange( $downloadQuery, now()->subMinutes(1)->timestamp, diff --git a/management-panel/app/Filament/Widgets/SystemStats.php b/management-panel/app/Filament/Widgets/SystemStats.php index 7de5e98..6d614d3 100644 --- a/management-panel/app/Filament/Widgets/SystemStats.php +++ b/management-panel/app/Filament/Widgets/SystemStats.php @@ -27,14 +27,14 @@ class SystemStats extends BaseWidget $memoryDisplay = round($memoryUsed / (1024 * 1024 * 1024), 2) . ' GB / ' . round($memoryTotal / (1024 * 1024 * 1024), 2) . ' GB'; // 获取硬盘总量 - $diskTotalQuery = 'node_filesystem_size_bytes{fstype!="rootfs",fstype!="tmpfs",fstype!="squashfs"}'; + $diskTotalQuery = 'node_filesystem_size_bytes{fstype!="rootfs",fstype!="tmpfs",fstype!="squashfs",mountpoint=~"/|/home|/boot"}'; $diskTotalResult = $prometheus->query($diskTotalQuery); $diskTotal = array_sum(array_map(function ($item) { return $item['value'][1] ?? 0; }, $diskTotalResult['data']['result'])); // 获取已用硬盘 - $diskFreeQuery = 'node_filesystem_free_bytes{fstype!="rootfs",fstype!="tmpfs",fstype!="squashfs"}'; + $diskFreeQuery = 'node_filesystem_free_bytes{fstype!="rootfs",fstype!="tmpfs",fstype!="squashfs",mountpoint=~"/|/home|/boot"}'; $diskFreeResult = $prometheus->query($diskFreeQuery); $diskFree = array_sum(array_map(function ($item) { return $item['value'][1] ?? 0;