node_exporter部署方式抓不到host上网络流量,只能看node_exporter这个容器的网络流量,期望改变部署方式,能够看到整个host上网络流量情况
时间: 2024-02-24 21:57:00 浏览: 16
如果你想要监控整个host上的网络流量情况,建议使用host网络模式来部署node_exporter容器。在host网络模式下,容器和宿主机共享网络命名空间,容器中的进程可以直接访问宿主机的网络设备,从而实现监控整个host上的网络流量情况。
具体的部署方式为:
1. 创建一个名为node_exporter的Docker容器,并将其部署在host网络模式下:
```
docker run -d --net=host --name=node_exporter prom/node-exporter
```
2. 然后访问宿主机的IP地址和node_exporter默认的metrics端口(9100),即可查看整个host上的网络流量情况。
注意:在host网络模式下,容器的网络端口将直接映射到宿主机上,容器内的端口和宿主机上的端口是一致的。因此,在部署多个相同的容器时,需要指定不同的端口,避免端口冲突。
相关问题
podman部署node-exporter
如果你想使用podman部署node-exporter,可以按照以下步骤进行操作:
1. 创建一个名为node-exporter的目录,用于存放node-exporter的配置文件和数据。使用以下命令创建:
```
mkdir node-exporter
```
2. 创建一个名为node-exporter.service的systemd服务单元文件,用于启动node-exporter服务。使用以下命令创建:
```
sudo vi /etc/systemd/system/node-exporter.service
```
将以下内容复制粘贴到文件中:
```
[Unit]
Description=Node Exporter
[Service]
Restart=always
ExecStartPre=podman rm node-exporter
ExecStart=/usr/bin/podman run --name node-exporter --net=host --pid=host --privileged=true -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /:/rootfs:ro -v /etc/node-exporter:/etc/node-exporter:z quay.io/prometheus/node-exporter
[Install]
WantedBy=multi-user.target
```
保存并退出文件。
3. 创建一个名为node-exporter的配置文件目录,用于存放node-exporter的配置文件。使用以下命令创建:
```
sudo mkdir /etc/node-exporter
```
4. 创建一个名为node-exporter.yml的node-exporter配置文件,用于指定node-exporter的参数和监控对象。使用以下命令创建:
```
sudo vi /etc/node-exporter/node-exporter.yml
```
将以下内容复制粘贴到文件中:
```
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'node'
metrics_path: /metrics
static_configs:
- targets: ['localhost:9100']
```
保存并退出文件。
5. 重新加载systemd守护程序并启动node-exporter服务。使用以下命令执行:
```
sudo systemctl daemon-reload
sudo systemctl enable node-exporter
sudo systemctl start node-exporter
```
6. 确认node-exporter服务已经成功启动。使用以下命令查看服务状态:
```
sudo systemctl status node-exporter
```
如果服务状态显示为“active (running)”则表示服务已经启动成功。
希望以上步骤能够帮助你成功部署node-exporter服务。
docker-compose 快速部署Prometheus,监控docker 容器, 宿主机,ceph -- cluster集群
好的,下面是一个快速部署 Prometheus 监控 docker 容器、宿主机和 Ceph 集群的 docker-compose.yaml 文件:
```yaml
version: '3'
services:
prometheus:
image: prom/prometheus
ports:
- 9090:9090
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
depends_on:
- node-exporter
- cadvisor
- ceph-exporter
node-exporter:
image: prom/node-exporter
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
cadvisor:
image: google/cadvisor
ports:
- 8080:8080
volumes:
- /:/rootfs:ro
- /var/run:/var/run:rw
- /sys:/sys:ro
- /var/lib/docker/:/var/lib/docker:ro
ceph-exporter:
image: galexrt/ceph-exporter:latest
environment:
CLUSTER_NAME: mycluster
CEPH_USERNAME: admin
CEPH_KEYRING_BASE64: <base64-encoded ceph.client.admin.keyring>
ports:
- 9128:9128
```
其中,Prometheus 监控的配置文件 prometheus.yml 可以参考下面的示例:
```yaml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'docker'
metrics_path: '/metrics'
static_configs:
- targets: ['node-exporter:9100']
labels:
group: 'docker'
- job_name: 'node'
metrics_path: '/metrics'
static_configs:
- targets: ['node-exporter:9100']
labels:
group: 'node'
- job_name: 'cadvisor'
metrics_path: '/metrics'
static_configs:
- targets: ['cadvisor:8080']
labels:
group: 'docker'
- job_name: 'ceph'
metrics_path: '/metrics'
static_configs:
- targets: ['ceph-exporter:9128']
labels:
group: 'ceph'
```
在这个配置文件中,我们定义了四个 job:
- prometheus:监控 Prometheus 本身的指标。
- docker:监控 Docker 容器运行时的指标。
- node:监控宿主机的指标。
- ceph:监控 Ceph 集群的指标。
对于 docker 和 node,它们都使用了 node-exporter 来收集指标。而对于 ceph,我们使用了 ceph-exporter 来收集指标。
在部署前,需要将 ceph.client.admin.keyring 文件的内容进行 base64 编码,并将编码后的内容填入 docker-compose.yaml 文件中的 CEHP_KEYRING_BASE64 环境变量中。
部署完成后,可以通过访问 http://localhost:9090 来访问 Prometheus 的 Web 界面。在这里,你可以查看所有收集到的指标,并且可以创建自己的监控规则和仪表盘。