【Graylog】索引模板mapping自定义

2023-11-28 10:38

本文主要是介绍【Graylog】索引模板mapping自定义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

前言

一、Logstash输入到Elasticsearch

二、进入主题

1.根据拿到的template.json分析

2.新建文件

3.插入

4.验证

5. 遇到的错误

总结



前言

Graylog使用中,总会有千奇百怪的要求,比如有同事就想全盘挪移ELK那套东西到Graylog,目前迁移一个业务日志到平台中,要求使用Logstash输入到Elasticsearch,Graylog管控索引声明周期,负责查询功能。


一、Logstash输入到Elasticsearch

这一步很好实现,但是如果想要在Graylog中可以查看到,需要下一番功夫,我遇到的问题有以下两点。

  1. 时间戳问题,@timestamp转换为timestamp,还要对时间进行矫正,要不然会有八个小时的时差
  2. 补全字段,如果想要在Graylog可以搜索到,需要补全字段。

二、进入主题

1.根据拿到的template.json分析

  通过查看json文件,发现大部分都是keyword类型,所以根据可以不用加入到json中,最特殊的是其中一个使用ik分词器的(安装分词器,分词器的安装比较烂大街,就不在赘述了)所以使用Graylog默认的mapping肯定是行不通的。

        查看官方文档,很容易就找到了创建外挂mapping,我的理解是,新建索引集后,会根据默认的mapping+外挂的mapping共同生成一个索引mapping,参考文档:Graylog文档。

2.新建文件

        新建一个json文件,新增字段的mapping。

{"template": "cce_*","mappings": {"message": {"properties": {"cluster_name": {"type": "keyword"},"log_level": {"type": "keyword"},"type": {"type": "keyword"},"log_time": {"type": "keyword"},"namespace_name": {"type": "keyword"},"pod_name": {"type": "keyword"},"log_type": {"type": "keyword"},"cluster_uuid": {"type": "keyword"},"container_name": {"type": "keyword"},"log_data": {"search_analyzer": "ik_smart","analyzer": "ik_max_word","type": "text","fields": {"keyword": {"ignore_above": 256,"type": "keyword"}}},"workload_name": {"type": "keyword"},"collect_time": {"type": "date"}}}}
}

3.插入

curl -X PUT -d @'graylog-custom-mapping-7x.json' -H 'Content-Type: application/json' 'http://localhost:9200/_template/graylog-custom-mapping?pretty'

返回true即可。

4.验证

轮换索引集,查看mapping,成功。

{ - "cce_2": { - "mappings": { - "message": { - "dynamic_templates": [ - { - "internal_fields": { - "match": "gl2_*","match_mapping_type": "string","mapping": { - "type": "keyword"}}},{ - "store_generic": { - "match_mapping_type": "string","mapping": { - "type": "keyword"}}}],"properties": { - "_time": { - "type": "date"},"cluster_name": { - "type": "keyword"},"cluster_uuid": { - "type": "keyword"},"collect_time": { - "type": "date"},"container_name": { - "type": "keyword"},"full_message": { - "type": "text","analyzer": "ik_max_word"},"gl2_message_id": { - "type": "keyword"},"gl2_processing_timestamp": { - "type": "date","format": "yyyy-MM-dd HH:mm:ss.SSS"},"gl2_receive_timestamp": { - "type": "date","format": "yyyy-MM-dd HH:mm:ss.SSS"},"gl2_remote_ip": { - "type": "keyword"},"gl2_remote_port": { - "type": "long"},"gl2_source_input": { - "type": "keyword"},"gl2_source_node": { - "type": "keyword"},"log_data": { - "type": "text","fields": { - "keyword": { - "type": "keyword","ignore_above": 256}},"analyzer": "ik_max_word","search_analyzer": "ik_smart"},"log_level": { - "type": "keyword"},"log_time": { - "type": "keyword"},"log_type": { - "type": "keyword"},"message": { - "type": "text","analyzer": "ik_max_word"},"namespace_name": { - "type": "keyword"},"pod_name": { - "type": "keyword"},"source": { - "type": "text","analyzer": "analyzer_keyword","fielddata": true},"source_type": { - "type": "keyword"},"streams": { - "type": "keyword"},"time_day": { - "type": "date"},"time_hours": { - "type": "keyword"},"time_min": { - "type": "keyword"},"time_min_zero": { - "type": "keyword"},"time_month": { - "type": "date"},"time_nano": { - "type": "long"},"time_sec": { - "type": "keyword"},"timestamp": { - "type": "date","format": "yyyy-MM-dd HH:mm:ss.SSS"},"type": { - "type": "keyword"},"workload_name": { - "type": "keyword"}}}}}
}

5. 遇到的错误

  • 注意json文件格式
  • 由于我使用版本,搭配的es为6,所以类型上一定不要错。

总结

熟能生巧,多看官方文档,特别是国外产品。

这篇关于【Graylog】索引模板mapping自定义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/429553

相关文章

Java利用Spire.Doc for Java实现在模板的基础上创建Word文档

《Java利用Spire.DocforJava实现在模板的基础上创建Word文档》在日常开发中,我们经常需要根据特定数据动态生成Word文档,本文将深入探讨如何利用强大的Java库Spire.Do... 目录1. Spire.Doc for Java 库介绍与安装特点与优势Maven 依赖配置2. 通过替换

kafka自定义分区器使用详解

《kafka自定义分区器使用详解》本文介绍了如何根据企业需求自定义Kafka分区器,只需实现Partitioner接口并重写partition()方法,示例中,包含cuihaida的数据发送到0号分区... 目录kafka自定义分区器假设现在有一个需求使用分区器的方法总结kafka自定义分区器根据企业需求

Elasticsearch 的索引管理与映射配置实战指南

《Elasticsearch的索引管理与映射配置实战指南》在本文中,我们深入探讨了Elasticsearch中索引与映射的基本概念及其重要性,通过详细的操作示例,我们了解了如何创建、更新和删除索引,... 目录一、索引操作(一)创建索引(二)删除索引(三)关闭索引(四)打开索引(五)索引别名二、映射操作(一

Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)

《Python实现Word文档自动化的操作大全(批量生成、模板填充与内容修改)》在职场中,Word文档是公认的好伙伴,但你有没有被它折磨过?批量生成合同、制作报告以及发放证书/通知等等,这些重复、低效... 目录重复性文档制作,手动填充模板,效率低下还易错1.python-docx入门:Word文档的“瑞士

MySQL索引踩坑合集从入门到精通

《MySQL索引踩坑合集从入门到精通》本文详细介绍了MySQL索引的使用,包括索引的类型、创建、使用、优化技巧及最佳实践,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录mysql索引完整教程:从入门到入土(附实战踩坑指南)一、索引是什么?为什么需要它?1.1 什么

Mysql数据库聚簇索引与非聚簇索引举例详解

《Mysql数据库聚簇索引与非聚簇索引举例详解》在MySQL中聚簇索引和非聚簇索引是两种常见的索引结构,它们的主要区别在于数据的存储方式和索引的组织方式,:本文主要介绍Mysql数据库聚簇索引与非... 目录前言一、核心概念与本质区别二、聚簇索引(Clustered Index)1. 实现原理(以 Inno

使用Java填充Word模板的操作指南

《使用Java填充Word模板的操作指南》本文介绍了Java填充Word模板的实现方法,包括文本、列表和复选框的填充,首先通过Word域功能设置模板变量,然后使用poi-tl、aspose-words... 目录前言一、设置word模板普通字段列表字段复选框二、代码1. 引入POM2. 模板放入项目3.代码

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

一文详解MySQL索引(六张图彻底搞懂)

《一文详解MySQL索引(六张图彻底搞懂)》MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度,:本文主要介绍MySQL索引的相关资料,文中通过代码介绍的... 目录一、什么是索引?为什么需要索引?二、索引该用哪种数据结构?1. 哈希表2. 跳表3. 二叉排序树4.

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的