无法从 EC2 上的公共 IP 地址访问 node_exporter
Posted
技术标签:
【中文标题】无法从 EC2 上的公共 IP 地址访问 node_exporter【英文标题】:Can't access node_exporter from public ip address on EC2 【发布时间】:2020-12-10 03:54:06 【问题描述】:我正在 AWS EC2 上设置 prometheus/node_exporter。配置如下
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
我可以通过使用带有 localhost 的 curl 来访问指标。类似于以下内容
curl localhost:9100/metrics
我也可以通过私有 IP 地址访问指标。例如
curl private_ip_address:9100/metrics
但是,当我尝试通过公共 IP 地址访问它时。它不工作,卷曲超时。
curl public_ip_address:9100/metrics
我尝试从服务器本身和本地计算机从ipv4:9100
访问。两者都遇到了同样的问题。
如何启用以使其可从 ipv4 地址访问?
【问题讨论】:
如果它从内部被阻止,也许你有一些防火墙(例如ufw
)阻止了实例上的端口?
@Marcin 我已经将端口 9000 也添加到了防火墙中。
您可以暂时禁用 ufw 以仔细检查它的效果吗?
@Marcin 已解决。我需要在我的 AWS 安全组中添加自定义 TCP 入站规则。
【参考方案1】:
默认情况下,EC2 实例不允许直接访问端口。
如果不存在,则需要在入站规则中为端口9100
创建Custom TCP
规则。
如果您还配置了防火墙,则还需要允许端口9100
。
您可以测试远程端口是否可达(参考:https://***.com/a/9463554/664229):
nc -zvw 5 <ip> <port>
【讨论】:
以上是关于无法从 EC2 上的公共 IP 地址访问 node_exporter的主要内容,如果未能解决你的问题,请参考以下文章
ec2 实例无法在没有弹性 IP 地址的情况下访问公共子网中的互联网?
无法通过PHP中的fsockopen访问ec2实例,指向我的ec2公共IP和指定端口