北京餐饮培训网站建设,my最新域名是什么,seo优化网站技术排名百度推广,深圳网站设计教程#x1f680; 优质资源分享 #x1f680;
学习路线指引#xff08;点击解锁#xff09;知识定位人群定位#x1f9e1; Python实战微信订餐小程序 #x1f9e1;进阶级本课程是python flask微信小程序的完美结合#xff0c;从项目搭建到腾讯云部署上线#xff0c;打造一… 优质资源分享
学习路线指引点击解锁知识定位人群定位 Python实战微信订餐小程序 进阶级本课程是python flask微信小程序的完美结合从项目搭建到腾讯云部署上线打造一个全栈订餐系统。Python量化交易实战入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统以往有篇文章介绍 EFKKibana ElasticSearch Filebeat的插件日志收集。Filebeat 插件用于转发和集中日志数据并将它们转发到 Elasticsearch 或 Logstash 以进行索引但 Filebeat 作为 Elastic 的一员只能在 Elastic 整个体系中使用。
Fluentd
Fluentd是一个开源的分布式日志采集系统可以从不同的服务数据源采集日志对日志进行过滤加工分发给多种存储和处理系统。支持各种插件数据缓存机制且本身所需的资源很少内置可靠性结合其他服务可以形成高效直观的日志收集平台。
本文介绍在 Rainbond 中使用 Fluentd 插件收集业务日志输出到多个不同的服务。
一、整合架构
在收集组件日志时只需在组件中开通 Fluentd 插件本文将演示以下两种方式
Kibana ElasticSearch FluentdMinio Fluentd
我们将 Fluentd 制作成 Rainbond 的 一般类型插件 在应用启动之后插件也随之启动并自动收集日志输出到多个服务源整个过程对应用容器无侵入且拓展性强。 二、插件原理分析
Rainbond V5.7.0 版本中新增了从开源应用商店安装插件本文中的插件已发布到开源应用商店当我们使用时一键安装即可根据需求修改配置文件。
Rainbond 插件体系是相对于 Rainbond 应用模型的一部分插件主要用来实现应用容器扩展运维能力。由于运维工具的实现有较大的共性因此插件本身可以被复用。插件必须绑定到应用容器时才具有运行时状态用以实现一种运维能力比如性能分析插件、网络治理插件、初始化类型插件。
在制作 Fluentd 插件的过程中使用到了 一般类型插件可以理解为一个POD启动两个 ContainerKubernetes原生支持一个POD中启动多个 Container但配置起来相对复杂在 Rainbond 中通过插件实现使用户操作更加简单。
三、EFK 日志收集实践
Fluentd-ElasticSearch7 输出插件将日志记录写入 Elasticsearch。默认情况下它使用批量 API创建记录该 API 在单个 API 调用中执行多个索引操作。这减少了开销并可以大大提高索引速度。
3.1 操作步骤
应用 Kibana ElasticSearch和插件Fluentd都可以通过开源应用商店一键部署。
对接开源应用商店在应用商店中搜索 elasticsearch 并安装 7.15.2 版本。团队视图 - 插件 - 从应用商店安装 Fluentd-ElasticSearch7 插件基于镜像创建组件镜像使用 nginx:latest并且挂载存储var/log/nginx。这里使用 Nginx:latest 作为演示 在组件内挂载存储后插件也会自定挂载该存储并可访问 Nginx 产生的日志文件。 在 Nginx 组件内开通插件可以根据所需进行修改 Fluentd 配置文件可参考下方配置文件简介部分。 添加 ElasticSearch 依赖将 Nginx 连接到 ElasticSearch如下图 访问 Kibana 面板进入到 Stack Management - 数据 - 索引管理可以看到已存在的索引名称为 fluentd.es.nginx.log访问 Kibana 面板进入到 Stack Management - Kibana - 索引模式创建索引模式。进入到 Discover日志正常展示。 3.2 配置文件介绍
配置文件参考 Fluentd 文档 output_elasticsearch。
type tailpath /var/log/nginx/access.log,/var/log/nginx/error.logpos_file /var/log/nginx/nginx.access.log.postype nginxtag es.nginx.logtype elasticsearch log\_level info hosts 127.0.0.1port 9200user elasticpassword elasticindex\_name fluentd.${tag}chunk\_limit\_size 2Mqueue\_limit\_length 32flush\_interval 5sretry\_max\_times 30
配置项解释
日志的输入源
配置项解释说明type采集日志类型tail表示增量读取日志内容path日志路径多个路径可以使用逗号分隔pos_file用于标记已经读取到位置的文件position file所在的路径日志格式解析根据你自己的日志格式编写对应的解析规则。
日志的输出端
配置项解释说明type输出到的服务类型log_level设置输出日志的级别为info支持的日志级别有fatal, error, warn, info, debug, trace.hostselasticsearch的地址portelasticsearch的端口user/passwordelasticsearch用到的用户名/密码index_nameindex定义的名称日志的缓冲区用于缓存日志事件提高系统性能。默认使用内存也可以使用file文件chunk_limit_size每个块的最大大小:事件将被写入块直到块的大小变成这个大小内存默认为8M文件256Mqueue_limit_length此缓冲插件实例的队列长度限制flush_interval缓冲区日志刷新事件默认60s刷新输出一次retry_max_times重试失败块输出的最大次数
以上只是部分配置参数其他配置可以跟官网文档自定义。
四、Fluentd Minio 日志收集实践
Fluentd S3 输出插件将日志记录写入到标准的 S3 对象存储服务例如 Amazon、Minio。
4.1 操作步骤
应用Minio和插件Fluentd S3都可以通过开源应用商店进行一键部署。 对接开源应用商店。在开源应用商店中搜索 minio并安装 22.06.17 版本。 团队视图 - 插件 - 从应用商店安装 Fluentd-S3 插件。 访问 Minio 9090 端口用户密码在 Minio 组件 - 依赖中获取。 创建 Bucket自定义名称。 进入 Configurations - Region设置 Service Location Fluentd 插件的配置文件中 s3_region 默认为 en-west-test2。 基于镜像创建组件镜像使用 nginx:latest并且挂载存储var/log/nginx。这里使用 Nginx:latest 作为演示 在组件内挂载存储后插件也会自定挂载该存储并可访问 Nginx 产生的日志文件。 进入到 Nginx 组件内开通 Fluentd S3 插件修改配置文件中的 s3_bucket s3_region 建立依赖关系Nginx 组件依赖 Minio更新组件使其生效。 访问 Nginx 服务让其产生日志片刻后就可以在 Minio 的 Bucket 中看到。 4.2 配置文件介绍
配置文件参考 Fluentd 文档 Apache to Minio。
type tailpath /var/log/nginx/access.logpos_file /var/log/nginx/nginx.access.log.postag minio.nginx.accesstype nginxtype s3 aws\_key\_id #{ENV[MINIO\_ROOT\_USER]}aws\_sec\_key #{ENV[MINIO\_ROOT\_PASSWORD]}s3\_endpoint http://127.0.0.1:9000/s3\_bucket tests3\_region en-west-test2time\_slice\_format %Y%m%d%H%M force\_path\_style truepath logs/type filepath /var/log/nginx/s3timekey 1m timekey\_wait 10s chunk\_limit\_size 256m
配置项解释
日志的输入源
配置项解释说明type采集日志类型tail表示增量读取日志内容path日志路径多个路径可以使用逗号分隔pos_file用于标记已经读取到位置的文件position file所在的路径日志格式解析根据你自己的日志格式编写对应的解析规则。
日志的输出端
配置项解释说明type输出到的服务类型aws_key_idMinio 用户名aws_sec_keyMinio 密码s3_endpointMinio 访问地址s3_bucketMinio 桶名称force_path_style防止 AWS SDK 破坏端点 URLtime_slice_format每个文件名都加上这个时间戳日志的缓冲区用于缓存日志事件提高系统性能。默认使用内存也可以使用file文件timekey每 60 秒刷新一次累积的chunktimekey_wait等待 10 秒再刷新chunk_limit_size每个块的最大大小
最后
Fluentd 插件可以很灵活的收集业务日志并输出至多个服务并结合 Rainbond 插件市场的一键安装让我们的使用变得更加简单、快捷。
目前 Rainbond 开源插件应用市场的 Flunetd 插件只有 Flunetd-S3 Flunetd-ElasticSearch7欢迎小伙伴们贡献插件哦