文档

Logstash FAQ

本文介绍使用阿里云Logstash的常见问题。

Logstash支持将数据源配置为DRDS吗?

支持。可参考RDS MySQL数据迁移方案进行配置,具体操作请参见通过Logstash将RDS MySQL数据同步至Elasticsearch

如何将公网数据导入或导出到Logstash中?

Logstash实例部署在专有网络VPC(Virtual Private Cloud)下,可以通过配置NAT网关实现与公网的连通。具体操作,请参见配置NAT公网数据传输

使用自建Kafka作为Logstash的输入或者输出时,出现错误日志,如何处理?

常见错误日志如下:

  • No entry found for connection

    原因:Logstash节点无法解析到Kafka服务的hostname对应的IP地址。

    解决方法:在server.properties中添加配置信息,以Kafka服务运行在10.10.10.10的9092端口为例,配置信息如下。

    listeners=PLAINTEXT://10.10.10.10:9092
    advertised.listeners=PLAINTEXT://10.10.10.10:9092
    重要
    • 在配置信息时,请将10.10.10.10:9092替换为您Kafka集群的IP地址和端口号。

    • 推荐您使用阿里云Kafka服务,并且保证Logstash所在节点的IP地址在Kafka的访问白名单内。

  • could not be established. Broker may not be available

    原因:Kafka服务不存在或者无法连接。

    解决方法:检查Kafka服务是否正常运行,或者Logstash管道配置中的bootstrap_servers配置是否正确。

阿里云Logstash的JDBC支持MySQL数据库吗?

支持。需要上传mysql-connector-java驱动文件,具体操作请参见配置扩展文件

Logstash支持节点监控吗?

支持。可通过配置X-Pack,关联阿里云Elasticsearch实例后,在Kibana中监控Logstash节点。具体操作,请参见配置X-Pack监控

Logstash支持上传脚本文件吗?

不支持。目前,Logstash只支持通过Config配置文件配置管道,实现数据传输。详细信息,请参见通过配置文件管理管道

Logstash支持配置HTTP采集协议吗?

支持。Logstash支持通过HTTP或HTTPS接收单行或多行事件,详细信息请参见Http input plugin

说明

阿里云Logstash默认不提供公网访问能力,如果您需要采集公网HTTP请求,可通过配置NAT网关实现。具体操作,请参见配置NAT公网数据传输

如何通过Logstash,将日志服务数据同步到Elasticsearch上?

您可以通过logstash-input-sls插件实现,具体操作请参见logstash-input-sls插件使用说明

Logstash能够实时同步数据吗?

Logstash是准实时同步工具。只要您不停止管道任务,且源端有数据,Logstash就会一直向目标端写入数据。

通过logstash同步数据时报错 "[routing] is missing for join field [joinField]", 是什么原因?

包含子文档的数据路由值是强制性的,父文档和子文档必须保持写入同一分片。建议设置目标端索引主分片为1,同时管道中增加参数routing =>"0"

管道创建后,进程卡住了,实例变更进度不变,如何处理?

查看实例的主日志是否有报错,根据报错判断原因,具体操作请参见查询日志。常见的原因及解决方法如下。

原因

解决方法

管道配置错误。

中断变更,等到实例处于变更中断状态后,修改管道配置,触发重启恢复。具体操作,请参见查看实例任务进度详情

集群磁盘使用率过高。

升级实例规格。具体操作,请参见升配集群完成后,刷新实例,观察变更进度。

output为elasticsearch时,没有开启Elasticsearch实例的自动创建索引功能。

开启Elasticsearch实例的自动创建索引功能。具体操作,请参见配置YML参数完成后,刷新实例,观察变更进度。

input为beats时,port没有使用8000~9000的端口。

中断变更,等到实例处于变更中断状态后,在管道配置中,修改port为8000~9000的端口,触发重启恢复。

源端或目标端都使用了外网地址。

选择以下任意一种方式处理:

  • 中断变更,等到实例处于变更中断状态后,在管道配置中,将外网地址修改为私网地址。

  • 配置NAT网关实现公网数据传输。具体操作,请参见配置NAT公网数据传输完成后,刷新实例,观察变更进度。

管道配置中包含了file_extend,但没有安装logstash-output-file_extend插件。

选择以下任意一种方式处理:

  • 安装logstash-output-file_extend插件。具体操作,请参见使用Logstash管道配置调试功能完成后,刷新实例,观察变更进度。

  • 中断变更,等到实例处于变更中断状态后,在管道配置中,去掉file_extend配置,触发重启恢复。

Logstash私网地址是否能ping通?

Logstash私网地址默认禁止ping,可以使用telnet测试。

Logstash在两个Elasticsearch之间同步数据,如何保证mapping一致?

阿里云Elasticsearch为了保证用户操作数据的安全性,默认将自动创建索引配置设置为不允许。阿里云Logstash在传输数据的时候,使用提交数据的方式创建索引,而不是Create index API自动创建索引的方式。所以在使用阿里云Logstash上传数据之前,需要先把集群的自动创建索引设置为允许,或提前创建好索引和mapping。

阿里云Logstash支持rubydebug模式吗?

不支持。阿里云Logstash提供logstash-output-file_extend插件来打印调试日志,不推荐使用stdout,并且没提供相关的接口,因此不支持rubydebug等模式。

系统报错elasticsearch.errorcode.UnsafeKeyword.message,是什么原因?

当前阿里云Logstash的Config配置中的Ruby模块存在安全漏洞,如果Config配置中包含了Ruby模块指令,系统会提示如下错误信息,您需要重新配置Config。如果有疑问,请提交工单咨询。

image.png