AWSFireLens轻松实现容器日志处理

applog应用程序和fluent-bit共享磁盘,日志内容是json格式数据,输出到S3也是JSON格式

applog应用部分在applog目录:

Dockerfile文件内容
FROM alpine
RUN mkdir -p /data/logs/
COPY testlog.sh /bin/
RUN chmod 777 /bin/testlog.sh
ENTRYPOINT ["/bin/testlog.sh"]

testlog.sh文件内容
#!/bin/sh
while :
do
   echo "{\"server_date\":\"2020-01-19\",\"hostname\":\"ip-172-31-43-24.cn-northwest-1.compute.internal\",\"pid\":5404,\"method\":\"POST\",\"clientIP\":\"10.11.12.13\",\"countryCode\":\"ID\",\"url\":\"/v1/mail/list\",\"status\":\"200\",\"latency\":7,\"length\":24,\"userId\":9536605,\"code\":20001}" >> /data/logs/access.log
   echo "{\"server_date\":\"2020-01-19\",\"hostname\":\"ip-172-31-43-24.cn-northwest-1.compute.internal\",\"pid\":1000,\"method\":\"GET\",\"clientIP\":\"20.21.22.23\",\"countryCode\":\"ID\",\"url\":\"/v1/mail/list\",\"status\":\"500\",\"latency\":10,\"length\":12,\"userId\":1010001,\"code\":10001}" >> /data/logs/error.log
sleep 10
done

fluent-bit部分在fluent-bit目录:

Dockerfile文件内容
FROM amazon/aws-for-fluent-bit:latest
ADD extra.conf /extra.conf

extra.conf文件内容
[SERVICE]
    Parsers_File /fluent-bit/parsers/parsers.conf
    Flush 1
    Grace 30

[INPUT]
    Name tail
    Path /data/logs/access.log
    Tag access

[INPUT]
    Name tail
    Path /data/logs/error.log
    Tag error

[FILTER]
    Name parser
    Match *
    Key_Name log
    Parser json  
    Reserve_Data True

[OUTPUT]
    Name firehose
    Match access
    region us-east-1
    delivery_stream fluentbit-access

[OUTPUT]
    Name firehose
    Match error
    region us-east-1
    delivery_stream fluentbit-error  #要在firehouse里面设置
    
----------------
报错信息/ecs/firelens-sample/文件夹下面ecs/log_router/03aafe7fa1f4452d862854b33311190f

打镜像步骤:
cd fleuntbit
docker build -t fleuntbit:v3 .
docker tag fleuntbit:v3 402097323/fleuntbit:v3
docker push 402097323/fleuntbit:v3

dockerup账号******/******

taskdef.json:
{
    "family": "firelens-sample",
    "taskRoleArn": "arn:aws:iam::254278701124:role/ecsTaskExecutionRole",
    "executionRoleArn": "arn:aws:iam::254278701124:role/ecsTaskExecutionRole",
    "containerDefinitions": [
        {
            "essential": true,
            "name": "log_router",
            "image": "402097323/fleuntbit:v3",
            "logConfiguration": {
                "logDriver": "awslogs",
                "options": {
                    "awslogs-create-group": "true",
                    "awslogs-group": "/ecs/firelens-sample",
                    "awslogs-region": "us-east-1",
                    "awslogs-stream-prefix": "ecs"
                }
            },
            "mountPoints": [
                {
                    "sourceVolume": "data",
                    "containerPath": "/data",
                    "readOnly": false
                }
            ],
            "firelensConfiguration": {
                "type": "fluentbit",
                "options": {
                    "config-file-type": "file",
                    "config-file-value": "/extra.conf",
                    "enable-ecs-log-metadata": "false"  #如果不设置enable-ecs-log-metadata 为 false,则日志条目中会包括以下元数据信息:1、ecs_cluster任务所属的集群的名称;2、ecs_task_arn容器所属的任务的完整ARN;3、ecs_task_definition任务正在使用的任务定义名称和修订;4、ec2_instance_id容器托管于的 Amazon EC2实例ID。此字段仅对使用EC2启动类型的任务有效
                }
            }
            "user": "0",
        },
        {
            "essential": true,
            "name": "myapp",
            "image": "402097323/applog:v2",
            "logConfiguration": {
                "logDriver": "awsfirelens"
            }
            "mountPoints": [
                {
                    "sourceVolume": "data",
                    "containerPath": "/data",
                    "readOnly": false
                }
            ],
            "dependsOn": [
                {
                    "containerName": "log_router",
                    "condition": "START"
                }
            ],

        }
    ],
    "cpu": "256",
    "memory": "512"
    "volumes": [
        {
            "name": "data",
            "host": {}
        }
    ],
    "compatibilities": [
        "EC2",
        "FARGATE"
    ],
    "requiresCompatibilities": [
        "FARGATE"
    ],
     "networkMode": "awsvpc"
}

创建 Amazon Kinesis Firehose 传输流和 S3 存储桶,S3对应存储桶如图,要设置S3存储桶权限为允许公开,ref:  使用 AWS FireLens 轻松实现 AWS Fargate 容器日志处理 | 亚马逊AWS官方博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/15856.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL知识学习01

1、什么是关系型数据库? 顾名思义,关系型数据库(RDBMS,Relational Database Management System)就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多&am…

宏基因组组装 | 就现在!做出改变!!

微生态研究的核心难点是什么! 基因组组装! 从宏基因组数据中组装获得细菌的完整基因组(complete MAGs)是微生物组研究的长期目标,但基于NGS的宏基因组测序和组装方法是无法实现完整的细菌基因组组装的。即便是红极一…

【五一创作】Apollo(入门)

Apollo(入门) Quick Start 配置中心是一种统一管理各种应用配置的基础服务组件 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且…

使用pands.rolling方法实现移动窗口的聚合计算

一个问题举例 假设有一个5天的收益数据,需要每3天求出一次平均值来达成某个需求: daterevenue2023-05-01102023-05-02202023-05-03302023-05-04402023-05-0550 1号、2号和3号的数据求一次平均值,2号、3号和4号的数据求一次平均值&#xff…

5.4.1树的存储结构 5.4.2树和森林的遍历

回忆一下树的逻辑结构: 双亲表示法(顺序存储) 如果增加一个结点M,L。毋须按照逻辑上的次序存储。 如果是删除元素: 方案一:比如说删除元素为G,设置其双亲结点为-1。 方案二: 把尾部的结点提上…

Sybase使用sp_helptext查看系统存储过程的源码

sp_helptext存储过程用于显示已编译对象的源代码。 sp_helptext是Sybase ASE内置的存储过程,可从任何位置调用。 但实际上,如果直接使用,常常会得到(令人头大的)错误提示: Msg 17461 Object does not exi…

基于JavaSpringboot+vue国风汉服文化交流宣传系统

基于JavaSpringbootvue国风汉服文化交流宣传系统 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目…

【可解释AI】图神经网络的可解释性方法及GNNexplainer代码示例

图神经网络的可解释性方法及GNNexplainer代码示例 GNNExplainerIntroductionModelSingle-instance explanations(Explanation via Structural Information)Joint learning of graph structural and node feature information(Explanation via…

SuperMap iClient3D for Cesium 构建隧道

作者:kele 背景 前段时间看到一篇构建隧道的文章(https://blog.csdn.net/supermapsupport/article/details/128453116),突然想到一个使用场景:隧道通常是建在山体下面,是否可以通过这种方式构建出一条贯穿…

使用Python和机器学习进行文本情感分类

使用Python和机器学习进行文本情感分类 1. 效果图2. 原理3. 源码参考这篇博客将介绍如何使用Python进行机器学习的文本情感分类(Text Emotions Classification)。 1. 效果图 训练文本及情感分类前5条数据如下: 训练过程及测试文本情感分类效果图如下: 可以看到 对文本“S…

【量化交易笔记】5.SMA,EMA 和WMA区别

股票中的SMA,EMA和WMA是常用的技术分析指标。这些指标基于历史股价计算得出,可以帮助投资者了解股票的趋势,为决策提供依据。虽然它们都是平均值算法,但它们之间还是有一些区别的。 SMA 简单移动平均线(Simple Moving…

分布式的流处理平台Kafka

目录: 一、简介二、基本概念三、生产者使用详解四、发送消息五、消费者代码示例 一、简介 ApacheKafka 是一个分布式的流处理平台。它具有以下特点: 支持消息的发布和订阅,类似于 RabbtMQ、ActiveMQ 等消息队列;支持数据实时处理…

计算机组成原理第五章(2)---中断

5.1概述 产生和应用 在IO设备和主机交换数据时,由于设备本身的机电特性的影响,其工作速度比较低,与CPU无法匹配,如果采用程序查询的方式需要CPU进行等待,但是如果在等待的过程中CPU可以执行其他的程序,可…

【@Param注解】| 台面使用——>底层原理分析

🐇 🐇 😄 🐇 🐇 🐇 🐇 😄 🐇 🐇 🐇 🐇 😄 🐇 🐇 🐇 🐇 😄 🐇 🐇 🐇 🐇 😄 目录 🦁 定义🦁 台面使用🦁 底层原理分析🦁 尾声🐇 🐇 😄 🐇 🐇 🐇 🐇 😄 🐇 🐇 🐇 🐇 😄 🐇 🐇 🐇 🐇 😄…

java实现乘法的方法

我们都知道,乘法运算的核心思想就是两个数相乘,如果能将乘法运算转化成一个加数的运算,那么这个问题就很容易解决。比如我们要实现23的乘法,首先需要定义两个变量:2和3。我们将这两个变量定义为一个变量:2x…

PySide6/PyQT多线程之 信号与槽 / (Signal Slot)的高效利用

前言 PySide6/PyQT信号槽是一种事件处理方式,允许程序中的对象发送和接收信号。 在 PySide6/PyQT 精进的过程中,一定躲不开 信号和槽 这座大山,这是一个比较有意思的知识点: 初接触的看不懂,觉得复杂;看得…

本地 WAF 已死,云 WAF 永生

多年来,Web 应用程序防火墙 (WAF) 一直是应用程序保护的代名词。事实上,许多应用程序安全团队认为保护其应用程序的最佳选择是一流的本地 WAF 解决方案,尤其是当这些应用程序部署在本地或私有云中时。 但自从引入本地 WAF 以来,…

JMeter的使用(二)

九、直连数据库 通过直连数据库让程序代替接口访问数据库,如果二者预期结果不一致,就找到了程序缺陷。 获取某条学院的名字,放在百度搜索: JMeter 不具备直连数据库功能,必须整合第三方(jar包)实现配置数据库的连接通过JDBC Re…

@PostConstruct注解和@PreDestroy注解

前言 Bean注解指定初始化和销毁的方法,也介绍了使用InitializingBean和DisposableBean来处理bean的初始化和销毁。JDK中还提供了两个注解能够在bean创建完成并且属性赋值完成之后执行一些初始化工作和在容器销毁bean之前通知我们进行一些清理工作。 1.PostConstru…

LDAP概念和原理介绍

LDAP概念和原理介绍 相信对于许多的朋友来说,可能听说过LDAP,但是实际中对LDAP的了解和具体的原理可能还比较模糊,今天就从“什么是LDAP”、“LDAP的主要产品”、“LDAP的基本模型”、“LDAP的使用案例”四个方面来做一个介绍。 我们在开始…