diff --git a/docker-compose.yml b/docker-compose.yml index 2f42bda..9b56b55 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -22,7 +22,9 @@ services: - prometheus node-exporter: build: docker/node_exporter - privileged: true +# privileged: true + network_mode: host + pid: host volumes: - '/:/host:ro' opcua-exporter: diff --git a/docker/node_exporter/Dockerfile b/docker/node_exporter/Dockerfile index f9562ba..4bdb58d 100644 --- a/docker/node_exporter/Dockerfile +++ b/docker/node_exporter/Dockerfile @@ -24,4 +24,4 @@ RUN architecture=$(uname -m); \ RUN mkdir /host -CMD ["node_exporter","--path.rootfs=/host"] \ No newline at end of file +CMD ["node_exporter","--path.rootfs=/host","--web.listen-address=0.0.0.0:9100"] \ No newline at end of file diff --git a/docker/prometheus/prometheus.yml b/docker/prometheus/prometheus.yml index df0fe54..63abd12 100644 --- a/docker/prometheus/prometheus.yml +++ b/docker/prometheus/prometheus.yml @@ -4,7 +4,7 @@ global: scrape_configs: - job_name: 'node_exporter' static_configs: - - targets: [ 'node-exporter:9100' ] + - targets: [ '172.17.0.1:9100' ] - job_name: 'opcua_exporter' static_configs: diff --git a/management-panel/app/Filament/Widgets/NetworkMonitor.php b/management-panel/app/Filament/Widgets/NetworkMonitor.php index 47f5d36..8a1142e 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{device="eth0"}[1m])'; + $uploadQuery = 'rate(node_network_transmit_bytes_total{device!~"^(veth.*|docker.*|lo|br-.*)$"}[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, 2); // 转换为 MB/s } } } if ($selectedFilter === 'download') { // 查询过去 1 分钟内每秒的下载流量 - $downloadQuery = 'rate(node_network_receive_bytes_total{device="eth0"}[1m])'; + $downloadQuery = 'rate(node_network_receive_bytes_total{device!~"^(veth.*|docker.*|lo|br-.*)$"}[1m])'; $downloadResult = $prometheus->queryRange( $downloadQuery, now()->subMinutes(1)->timestamp, @@ -80,7 +80,7 @@ class NetworkMonitor extends ChartWidget foreach ($timestamps as $timestamp) { $labels[] = date('H:i:s', $timestamp); // 格式化时间戳为小时:分钟:秒 - $downloadData[] = round(floatval($downloadValues[$timestamp]) / (1024 * 1024), 2); // 转换为 MB/s + $downloadData[] = round(floatval($downloadValues[$timestamp]) / 1024, 2); // 转换为 MB/s } } } @@ -89,7 +89,7 @@ class NetworkMonitor extends ChartWidget $datasets = []; if ($selectedFilter === 'upload') { $datasets[] = [ - 'label' => '上传流量 (MB/s)', + 'label' => '上传流量 (KB/s)', 'data' => $uploadData, 'borderColor' => 'rgba(255, 99, 132, 0.6)', 'backgroundColor' => 'rgba(255, 99, 132, 0.2)', @@ -98,7 +98,7 @@ class NetworkMonitor extends ChartWidget } if ($selectedFilter === 'download') { $datasets[] = [ - 'label' => '下载流量 (MB/s)', + 'label' => '下载流量 (KB/s)', 'data' => $downloadData, 'borderColor' => 'rgba(54, 162, 235, 0.6)', 'backgroundColor' => 'rgba(54, 162, 235, 0.2)',