无法使用 Linux Azure VM 在公共 IP 地址上公开 Graylog Web 界面

问题描述

我正在关注 this guide 在 Linux Azure VM 实例上设置 Graylog。 它表明:

sudo nano /etc/graylog/server/server.conf

更新以下条目 您将访问 Graylog 网站的系统 IP 地址 界面。

http_bind_address = your-server-ip:9000

但是我没有这样做,当我将值设置为 40.112.69.234:9000(我可以公开 IP)时,Graylog 拒绝启动

2021-02-07T17:07:33.967Z ERROR [ServerBootstrap] Graylog startup Failed. Exiting. Exception was:
java.lang.IllegalStateException: Expected to be healthy after starting. The following services are not running: {Failed=[JerseyService [Failed]]}
        at com.google.common.util.concurrent.ServiceManager$ServiceManagerState.checkHealthy(ServiceManager.java:741) ~[graylog.jar:?]
        at com.google.common.util.concurrent.ServiceManager$ServiceManagerState.awaitHealthy(ServiceManager.java:553) ~[graylog.jar:?]
        at com.google.common.util.concurrent.ServiceManager.awaitHealthy(ServiceManager.java:314) ~[graylog.jar:?]
        at org.graylog2.bootstrap.ServerBootstrap.startCommand(ServerBootstrap.java:148) [graylog.jar:?]
        at org.graylog2.bootstrap.CmdLinetool.run(CmdLinetool.java:210) [graylog.jar:?]
        at org.graylog2.bootstrap.Main.main(Main.java:50) [graylog.jar:?]
        Suppressed: com.google.common.util.concurrent.ServiceManager$FailedService: JerseyService [Failed]
        Caused by: java.net.BindException: Cannot assign requested address
                at sun.nio.ch.Net.bind0(Native Method) ~[?:1.8.0_275]
                at sun.nio.ch.Net.bind(Net.java:461) ~[?:1.8.0_275]
                at sun.nio.ch.Net.bind(Net.java:453) ~[?:1.8.0_275]
                at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222) ~[?:1.8.0_275]
                at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85) ~[?:1.8.0_275]
                at org.glassfish.grizzly.nio.transport.TCPNIOBindingHandler.bindtochannelAndAddress(TCPNIOBindingHandler.java:131) ~[graylog.jar:?]
                at org.glassfish.grizzly.nio.transport.TCPNIOBindingHandler.bind(TCPNIOBindingHandler.java:88) ~[graylog.jar:?]
                at org.glassfish.grizzly.nio.transport.TCPNIOTransport.bind(TCPNIOTransport.java:238) ~[graylog.jar:?]
                at org.glassfish.grizzly.nio.transport.TCPNIOTransport.bind(TCPNIOTransport.java:218) ~[graylog.jar:?]
                at org.glassfish.grizzly.nio.transport.TCPNIOTransport.bind(TCPNIOTransport.java:209) ~[graylog.jar:?]
                at org.glassfish.grizzly.http.server.NetworkListener.start(NetworkListener.java:723) ~[graylog.jar:?]
                at org.glassfish.grizzly.http.server.HttpServer.start(HttpServer.java:277) ~[graylog.jar:?]
                at org.graylog2.shared.initializers.JerseyService.startUpApi(JerseyService.java:196) ~[graylog.jar:?]
                at org.graylog2.shared.initializers.JerseyService.startUp(JerseyService.java:142) ~[graylog.jar:?]
                at com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:62) ~[graylog.jar:?]
                at com.google.common.util.concurrent.Callables$4.run(Callables.java:119) ~[graylog.jar:?]
                at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_275]
2021-02-07T17:07:33.972Z INFO  [Server] SIGNAL received. Shutting down.

我尝试保持认值 127.0.0.1:9000,看起来服务运行正常,但我无法从外部访问 Web 界面,只能通过 curl。如何在公共 IP 上访问 Graylog?如果需要,我们很乐意分享更多细节。

enter image description here

enter image description here

enter image description here

解决方法

添加您的外部 IP 地址作为以下内容的值:

http_external_uri =