【问题标题】:Node exporter port already in use, service is failed节点导出器端口已在使用中,服务失败
【发布时间】:2021-05-26 06:14:34
【问题描述】:

节点导出器处于失败状态,journalctl 说:

level=fatal msg="listen tcp :9100: bind: address already in use" source="node_exporter.go:114"

我试过reset-failed 并重新启动服务仍然是同样的问题。然后我列出了使用 9100 端口的进程并终止了该进程(该进程是一个 node_exporter 进程)但是在我正常或使用 -9 终止它之后它只是启动一个新进程,因此我的 9100 端口始终在使用中并且可以' t 因为它而启动 node_exporter。有解决办法吗?

【问题讨论】:

    标签: linux prometheus prometheus-node-exporter


    【解决方案1】:
    1. 了解使用9100端口的进程的process-id

      netstat -lpn | grep 9100

    2. 了解进程的父 pid

      ps -p PID -o ppid

    3. 如果父进程是systemd(pid为1),则通过

      找到它的服务名

      systemctl status PID

      并决定如何处理它。
      如果父进程是不是 systemd,而是类似 containerd-shim,这意味着这个进程是通过 Kubernetes Daemonset 管理的。 在这种情况下,您需要决定重用现有进程,或者更改 node_exporter.service 中的端口,您可以将--web.listen-address=:9101 添加到服务清单中的 ExecStart 属性并应用systemctl daemon-reload,然后重新启动服务。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,但我找到了解决方案:

      搜索使用9100端口的进程:

      ss -ntpl 9100
      

      查看进程的PID然后杀死他:

      kill <pid>
      

      另外,请记住节点污点和容忍度

      【讨论】:

        猜你喜欢
        • 2022-11-03
        • 1970-01-01
        • 1970-01-01
        • 2019-09-01
        • 2015-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-14
        相关资源
        最近更新 更多