You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何增大Graylog(基于Elasticsearch)的日志消息最大存储尺寸?

解决Graylog自定义映射未生效的问题

咱们一步步来排查你的自定义映射没在新索引graylog_5上生效的原因,毕竟要突破32KB的消息尺寸限制,映射生效是核心前提。

1. 先确认自定义模板的优先级与匹配规则

Graylog自带的默认索引模板优先级可能比你的自定义模板高,导致新索引没应用你的配置。你可以先做这两步检查:

  • 用命令查看所有Elasticsearch模板,重点对比优先级和匹配模式:
    curl -X GET 'http://localhost:9200/_template?pretty'
    
  • 找到你的graylog-custom-mapping模板,确认两点:
    • order值(优先级)要高于Graylog默认模板(默认模板order一般是0,你可以把自定义模板设为10,确保它优先被应用)
    • index_patterns要匹配Graylog的索引命名规则,比如设为graylog_*,这样新创建的graylog_5才能被匹配到

2. 验证自定义映射文件的格式与内容

你的graylog-custom-mapping.json可能存在格式错误,导致Elasticsearch无法正确解析。移除full_message字段索引的正确映射示例应该是这样的:

{
  "index_patterns": ["graylog_*"],
  "order": 10,
  "mappings": {
    "_doc": {
      "properties": {
        "full_message": {
          "type": "text",
          "index": false
        }
      }
    }
  }
}

你可以用本地的JSON校验工具检查文件是否有语法错误,比如逗号遗漏、括号不匹配等问题。

3. 确认模板已成功加载到Elasticsearch

重新上传模板时,务必确保命令执行成功:

curl -X PUT -d @'graylog-custom-mapping.json' 'http://localhost:9200/_template/graylog-custom-mapping?pretty'

如果返回"acknowledged": true,说明模板上传成功;如果有错误提示,根据提示修正问题(比如JSON格式、字段定义错误)。

4. 检查新索引的实际映射

等deflector切换到graylog_5后,用命令查看该索引的实际映射:

curl -X GET 'http://localhost:9200/graylog_5/_mapping?pretty'

重点看full_message字段的index属性是否为false。如果不是,说明模板没被应用,回到前面的步骤排查优先级和匹配规则。

5. 别忘了修改Graylog本身的消息尺寸限制

除了Elasticsearch的映射,你还需要调整Graylog的配置来允许更大的消息:

  • 编辑Graylog的配置文件(比如/etc/graylog/server/server.conf),修改参数:
    # 单位为字节,比如设为1MB就是1048576
    message_size_limit = 1048576
    
  • 如果使用了Beats等输入插件,还要在对应的输入配置里调整最大字节数
  • 修改后重启Graylog服务,确保配置生效

等所有配置都调整正确后,再次手动循环deflector创建新索引,再检查映射是否生效,这样应该就能解决消息尺寸限制的问题了。

内容的提问来源于stack exchange,提问作者Paul

火山引擎 最新活动