如何在代理后面设置 M/monit 代理?

How to setup M/monit agent behind a proxy?

我一直在为多个不同的主机使用 mmonit 来监视各种运行良好的应用程序,我对它的工作方式非常满意。

不过最近我 运行 遇到了麻烦,试图在代理后面设置 M/monit 代理。不是网络界面,而是实际的代理。

主机与外界的连接有限,只能通过 https 代理(源地址和目标地址有限)。

我尝试导出 https_proxy and/or http_proxy 无济于事。

我已经查阅了可用的文档,但是凡是提到代理的地方都是关于在代理后面设置 Web 界面,而不是实际的代理。我忽略了一些简单的事情吗?或者我应该使用 socat 或其他类似的解决方案?

非常感谢任何帮助

我遇到了同样的问题,决定使用 tsocks

编辑:tsocks 不起作用,因为 monit 生成未被 tsocks 包装的子进程。

我最终使用了 socat。由于我的 m/monit 实例使用有效(非自签名)证书支持 SSL,因此我不得不再跳过一个环节。

/etc/hosts 中,我将 m/monit 域指向 localhost:

# /etc/hosts
127.0.0.1 mmonit.myserver.com

然后我开始 socat 是这样的:

socat TCP4-LISTEN:9900,fork SOCKS4:socksproxy.our.corporate.network:123.45.67.89:443,socksport=1080

这会执行以下操作:

  • 绑定到 TCP(4) 端口 9900
  • 允许多个连接(fork 选项)
  • 通过 SOCKS4 代理发送所有请求socksproxy.our.corporate.network
  • 将所有请求转发到 SSL 端口 443 上的 123.45.67.89(这是我的 m/monit 主机)

monitrc 中,像这样配置 m/monit 主机:

set mmonit https://monit:<yourpassword>@mmonit.myserver.com:9900/collector