【问题标题】:Unable to tell what port Logstash is bound to or listening on when started normally正常启动时无法判断 Logstash 绑定或监听的端口
【发布时间】:2016-07-19 09:27:53
【问题描述】:

我的logstash版本是:

# /opt/logstash/bin/logstash --version
logstash 2.2.4

配置为根据filebeat文件从5044端口接收输入:

/etc/logstash/conf.d/02-beats-input.conf

input {
  beats {
    port => 5044
    ssl => false
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}

我已将 ssl 设置为 false,因为我没有使用它

但是当我使用 systemctl 正常启动 logstash 服务时,它会启动并检查状态以确认它正在运行

   systemctl status logstash
    ● logstash.service - LSB: Starts Logstash as a daemon.
       Loaded: loaded (/etc/rc.d/init.d/logstash)
       Active: active (exited) since Mon 2016-07-18 19:14:51 BST; 15h ago
         Docs: man:systemd-sysv-generator(8)
      Process: 19965 ExecStop=/etc/rc.d/init.d/logstash stop (code=exited, status=0/SUCCESS)
      Process: 19970 ExecStart=/etc/rc.d/init.d/logstash start (code=exited, status=0/SUCCESS)
...
    logstash started

问题是logstash似乎没有在端口5044上接收输入。发送filebeats的主机遇到:

single.go:126: INFO Connecting error publishing events (retrying): dial tcp 192.72.0.92:5044: getsockopt: connection refused

当我检查端口时

# netstat  -an | grep 5044

我什么也得不到。因此,即使 logstash 正在运行,我也无法确定它绑定和监听的端口。

防火墙也暂时停止以调查此事。

奇怪的是我运行logstash是这样的调试模式:

# ./logstash --debug -f /etc/logstash/conf.d/02-beats-input.conf

我可以看到

# netstat -an | grep 5044
tcp6       0      0 :::5044                 :::*                    LISTEN
tcp6       0      0 192.72.0.92:5044        192.168.36.70:53720     ESTABLISHED
tcp6       0      0 192.72.0.92:5044        192.72.0.90:45980       ESTABLISHED
tcp6       0      0 192.72.0.92:5044        192.72.0.90:45975       ESTABLISHED
tcp6       0      0 192.72.0.92:5044        192.72.0.90:45976       ESTABLISHED

# lsof -i :5044
COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    15136 root    7u  IPv6 7191510      0t0  TCP *:lxi-evntsvc (LISTEN)
java    15136 root   33u  IPv6 7192379      0t0  TCP hostname:lxi-evntsvc->192.72.0.90:45975 (ESTABLISHED)

和发送filebeats的主机可以连接

 output.go:87: DBG  output worker: publish 7 events
2016/07/19 10:02:08.017890 client.go:146: DBG  Try to publish 7 events to logstash with window size 10
2016/07/19 10:02:08.038579 client.go:124: DBG  7 events out of 7 events sent to logstash. Continue sending ...
2016/07/19 10:02:08.038615 single.go:135: DBG  send completed

请帮助指出我在此配置中可能做错了什么。谢谢

【问题讨论】:

  • 你试过 systemctl logstash reload 吗?
  • 在 CentOS 7 上,命令 systemctl logstash reload 返回 Unknown operation 'logstash' 并且 systemctl reload logstash 返回 Failed to reload logstash.service: Job type reload is not applicable for unit logstash.service。
  • 好的。您是否检查过您的 .conf 文件是否已被解析和加载?
  • 请问如何检查?
  • @pi。要检查是否加载了配置文件,粗略的解决方案是在配置文件中添加错误(如无效选项)。然后你启动 Logstash,它应该会失败,比如"Error: Something is wrong with your configuration."

标签: logstash logstash-configuration


【解决方案1】:

基于@LiGhTx117 提供的hing

我认为

logstash 使用的启动脚本在:

/etc/init.d/logstash

具有以下变量:

LS_USER=logstash
LS_GROUP=logstash
LS_HOME=/var/lib/logstash
LS_LOG_DIR=/var/log/logstash
LS_LOG_FILE="${LS_LOG_DIR}/$name.log"
LS_CONF_DIR=/etc/logstash/conf.d

这些的所有权和许可似乎是个问题。

我确保目录可以递归访问 用户 logstash 以及组 logstash

然后我还确保 log_file: logstash.log 可以由 用户/组logstash

重启logstash

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-24
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2015-03-12
    • 1970-01-01
    相关资源
    最近更新 更多