写点什么

Graylog 中文手册 常用功能和问题整理

  • 2022 年 5 月 14 日
  • 本文字数:1955 字

    阅读完需:约 6 分钟

索引保留策略



看这个配置时最多 2 个索引,多于的会删除,如下图:



注意: graylog_0 被删除了,但是不是立马删除。

[](()不同用户分配权限

1.添加用户



2.分配角色



一般分配 Reader 角色即可


3.用 admin 账户创建流和大屏面板



添加 Manage Alerts,例如 app_name = roadnet



分享–》选择用户或者团队–》选择权限–》点击 Add Collborator–》点击 Save



同理构建大屏分享给指定用户

[](()截取日志中的数据进行指标统计

有很多种方式去截取


  • 数据不规则,无格式

  • 正则表达式

  • grok 推荐

  • 数据规则,例如:log 使用 json 格式

  • 使用 json 抽取 推荐



有很多自己选



官网推荐使用 grok 抽取


以在 g 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】 rok 里预定义好命名正则表达式,Grok 支持把预定义的 grok 表达式 写入到文件中


USERNAME [a-zA-Z0-9._-]+


USER %{USERNAME}


第一行,用普通的正则表达式来定义一个 grok 表达式;第二行,通过打印赋值格式,用前面定义好的 grok 表达式来定义另一个 grok 表达式。


grok 表达式的打印复制格式的完整语法是下面这样的:


%{PATTERN_NAME:capture_name:data_type}


  • http://doc.yonyoucloud.com/doc/logstash-best-practice-cn/filter/grok.html

  • http://grokdebug.herokuapp.com/


常用总结


  • (?<temMsg>(.*)(?=Report)/?)获取 Report 之前的字符,作为 temMsg 字段的值

  • (?<temMsg>(?=Report)(.*)/?)获取 Report 之后的字符,作为 temMsg 字段的值

  • (?<temMsg>(?<=report).*?(?=msg)) 截取 report 和 msg 之间的值 不包含 report 和 msg 本身,作为 temMsg 字段的值

  • (?<temMsg>(report).*?(?=msg)) 截取 包含 report 但不包含 msg

  • (?<temMsg>(?<=report).*?(msg))截取 不包含 report 但包含 msg

  • (?<temMsg>(report).*?(msg|request))输出以 report 开头,以 msg 或者以 request 结尾的所有包含头尾信息

  • (?<temMsg>(report).*?(?=(msg|request)))输出以 report 开头,以 msg 或者以 request 结尾的不包含头尾信息

[](()自定义索引映射

Graylog 本身是使用默认映射包括用于设置timestampmessagefull_message,和source索引的消息的字段:


$ curl -X GET 'http://localhost:9200/_template/graylog-internal?pretty'


{


"graylog-internal" : {


"order" : -1,


"index_patterns" : [


"graylog_*"


],


"settings" : {


"index" : {


"analysis" : {


"analyzer" : {


"analyzer_keyword" : {


"filter" : "lowercase",


"tokenizer" : "keyword"


}


}


}


}


},


"mappings" : {


"message" : {


"_source" : {


"enabled" : true


},


"dynamic_templates" : [


{


"internal_fields" : {


"mapping" : {


"type" : "keyword"


},


"match_mapping_type" : "string",


"match" : "gl2_*"


}


},


{


"store_generic" : {


"mapping" : {


"type" : "keyword"


},


"match_mapping_type" : "string"


}


}


],


"properties" : {


"gl2_processing_timestamp" : {


"format" : "yyyy-MM-dd HH:mm:ss.SSS",


"type" : "date"


},


"gl2_accounted_message_size" : {


"type" : "long"


},


"gl2_receive_timestamp" : {


"format" : "yyyy-MM-dd HH:mm:ss.SSS",


"type" : "date"


},


"full_message" : {


"fielddata" : false,


"analyzer" : "standard",


"type" : "text"


},


"streams" : {


"type" : "keyword"


},


"source" : {


"fielddata" : true,


"analyzer" : "analyzer_keyword",


"type" : "text"


},


"message" : {


"fielddata" : false,


"analyzer" : "standard",


"type" : "text"


},


"timestamp" : {


"format" : "yyyy-MM-dd HH:mm:ss.SSS",


"type" : "date"


}


}


}


},


"aliases" : { }


}


为了扩展 Elasticsearch 和 Graylog 的默认映射,您可以创建一个或多个自定义索引映射并将它们作为索引模板添加到 Elasticsearch。


假设我们有一个数据架构,如下所示:


| 字段名称 | 字段类型 | 例子 |


| --- | --- | --- |


| http_method | keyword | GET |


| http_response_code | long | 200 |


| ingest_time | date | 2016-06-13T15:00:51.927Z |


| took_ms | long | 56 |


将自定义索引映射的以下索引模板保存到名为 的文件中graylog-custom-mapping.json


{


"template": "graylog_*",


"mappings" : {


"message" : {


"properties" : {


"http_method" : {


"type" : "keyword"


},


"http_response_code" : {


"type" : "long"


},


"ingest_time" : {


"type" : "date",


"format": "strict_date_time"


},


"took_ms" : {


"type" : "long"


}


}


}


}


}


上述模板仅兼容 Elasticsearch 6.X。如果将 Graylog 4.0 与 Elasticsearch 7.x 一起使用,请使用下面的模板,将其另存为graylog-custom-mapping-7x.json.


{


"template": "graylog_*",


"mappings": {


"properties": {


"http_method": {


"type": "keyword"


},


"http_response_code": {


"type": "long"


},


"ingest_time": {


"type": "date",


"format": "strict_date_time"


},


"took_ms": {


"type": "long"


}


}


}


最后,使用以下命令将索引映射加载到 Elasticsearch:

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
Graylog 中文手册 常用功能和问题整理_Java_爱好编程进阶_InfoQ写作社区