• ELK分布式日志系统


    目录

    日志管理方案:

    ELK组件

    ElasticSearch索引管理

    logstash filter模块常用的插件


    日志管理方案:

    服务器数量较少时:
    直接登录到目标服务器捞日志查看  --> 通过 rsyslog 或 shell/python 等脚本实现日志收集,并集中保存到统一的日志服务器

    服务器数量较多时:
    ELK 大型的日志系统,实现日志收集、日志存储、日志检索和分析

    云原生 容器环境:
    EFK   Loki+Granfana    SLS(阿里云)


    ELK组件

    Logstash           采集日志数据,通过插件模块对数据进行过滤、格式化处理,再输出给ElasticSearch

    ElasticSearch      对日志数据进行分片、存储,并创建索引,方便全文检索
                       集群化部署,节点分三种类型:master/data/client,设置相同的cluster.name并使用Zen Discovery模块通过单播实现集群中节点的服务发现

    Kibana             接入ElasticSearch的数据源,将日志数据进行图形化展示,方便用户通过浏览器查看、统计、分析日志

    Filebeat           替代Logstash采集日志数据
    Fluentd            替代Logstash采集日志数据和过滤转换等功能,常用于K8S容器环境

    Kafka/Redis        作为MQ消息队列,实现流量削峰、缓冲


    ELK -> ELFK(ELK + Filebeat) -> EFLFK(ELK + Filebeat + Kafka)


    ElasticSearch索引管理

    1)命令行管理方式
    创建索引
    curl -X PUT[|POST] http://IP:9200/<索引名>[/<类型>/<文档ID>?pretty&pretty] \
    [-H 'content-Type: application/json' -d '{"键名1":"键值","键名2":"键值"}']

    删除索引
    curl -X DELETE http://IP:9200/<索引名>[,<索引名2>,....]

    查看索引配置
    curl -X GET http://IP:9200/<索引名>/_settings

    修改索引配置
    curl -X PUT http://IP:9200/<索引名>/_settings \
    -H 'content-Type: application/json' -d '{"键名":"键值"}'

    创建索引别名
    curl -X POST http://IP:9200/_aliases \
    -H 'content-Type: application/json' -d '{"actions":[{"add":{"index":"索引名","alias":"索引别名"}}]}'

    删除索引别名
    curl -X POST http://IP:9200/_aliases \
    -H 'content-Type: application/json' -d '{"actions":[{"remove":{"index":"索引名","alias":"索引别名"}}]}'

    2)kibana接入ES,在管理界面中进行图形化索引管理


    logstash filter模块常用的插件

    grok:将大文本字段分片成若干个小字段      

    内置正则匹配格式:%{内置正则表达式:自定义的小字段名称}
    自定义正则匹配格式:(?<自定义的小字段名称>自定义的正则表达式)

    multiline:将多行日志内容合并成一整行    

    pattern(通过正则表达式匹配行)

    negate(false|true,是否取反。false不取反,表示正则匹配的行做合并操作;

    true取反,表示正则不匹配的行做合并操作)

    what(previous|next,previous表示向上合并,next表示向下合并)

    mutate:对logstash收集的日志事件字段进行格式化处理(包括重名名字段名、增加字段、删除字段、替换字段的值、修改字段值的字符串、数据类型等)
    rename、add_field、remove_field、replace、update、gsub、convert

    date:将logstash收集的日志事件时间 @timestamp 与日志实际的打印时间进行格式统一    需要先配置grok插件获取日志时间的小字段,再用match匹配日志时间字段的时间格式,最后用target导出到指定字段,默认为 @timestamp 。

  • 相关阅读:
    虹科分享 | 超低温冷冻箱温度分布验证的9步指南
    Count-based exploration with neural density models论文笔记
    Web前端:跨浏览器测试和响应式测试之间的主要区别
    Scrum敏捷开发的的优势和实施中的一些挑战
    ROS学习番外篇14—nuScenes-LidarSeg数据集的下载和解析
    Win10 NVIDIA Incompatible
    Java版本+企业电子招投标系统源代码+支持二开+招投标系统+中小型企业采购供应商招投标平台
    R语言的物种气候生态位动态量化与分布特征模拟实践技术
    Machine Learning Pre-Basics
    微信公众号消息推送教程
  • 原文地址:https://blog.csdn.net/bob_gem/article/details/136298012