Debezium发布历史63

原文地址: https://debezium.io/blog/2019/07/08/tutorial-sentry-debezium-container-images/

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

将 Sentry 添加到 Debezium 容器镜像的教程
2019 年 7 月 8 日 作者: 雷纳托·梅菲
哨兵 码头工人
Debezium最近对其容器镜像的结构进行了巨大改进,使得扩展其行为变得极其简单。

这是一个小教程,展示了如何添加Sentry,“一种开源错误跟踪[软件],可帮助开发人员实时监控和修复崩溃”。在这里,我们将使用它来收集和报告来自 Kafka Connect 及其连接器的任何异常。请注意,这仅适用于 Debezium 0.9+。

我们需要一些东西才能让 Sentry 工作,我们将添加所有这些东西,然后创建一个 Dockerfile,将其全部正确粘合:

配置Log4j

Sentry.io的 SSL 证书,因为默认情况下它不在 JVM 可信链中

和图书馆sentry_sentry-log4j

Log4j 配置
让我们在本地项目中创建一个文件config/log4j.properties ,该文件是 Debezium 映像附带的文件的副本,并向其中添加 Sentry。请注意,我们添加Sentry并log4j.rootLogger创建了该部分log4j.appender.Sentry,其余部分保持原始配置:

kafka.logs.dir=logs

log4j.rootLogger=INFO, stdout, appender, Sentry

Disable excessive reflection warnings - KAFKA-5229

log4j.logger.org.reflections=ERROR

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.threshold=INFO
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %X{dbz.connectorType}|%X{dbz.connectorName}|%X{dbz.connectorContext} %m [%c]%n

log4j.appender.appender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.appender.DatePattern=’.'yyyy-MM-dd-HH
log4j.appender.appender.File=${kafka.logs.dir}/connect-service.log
log4j.appender.appender.layout=org.apache.log4j.PatternLayout
log4j.appender.appender.layout.ConversionPattern=%d{ISO8601} %-5p %X{dbz.connectorType}|%X{dbz.connectorName}|%X{dbz.connectorContext} %m [%c]%n

log4j.appender.Sentry=io.sentry.log4j.SentryAppender
log4j.appender.Sentry.threshold=WARN
Sentry.io SSL 证书
从sentry.io下载getsentry.pem文件并将其放入项目目录中的ssl/下。

Dockerfile
现在我们可以将 Debezium 图像中的所有内容粘合在一起:

我们首先使用我们的 Sentry 证书创建一个 JKS 文件;这使用了 Docker 多阶段构建过程,我们在其中生成一个,certificates.jks稍后将其复制到 Kafka Connect with Debezium 阶段

复制log4j.properties到$KAFKA_HOME/config/log4j.properties

从多阶段构建中复制 JKS 文件

使用 Sentry 版本和 m5sums 设置 ENV

下载 Sentry 依赖项,您看到的调用的脚本docker-maven-download是我们默认在映像中提供的帮助程序。在本例中,我们使用它从 Maven Central 下载 JAR 文件并将其放入 Kafka libs 目录中。我们通过设置 ENV var 来做到这一点MAVEN_DEP_DESTINATION=$KAFKA_HOME/libs:
FROM fabric8/java-centos-openjdk8-jdk:1.6 as ssl-jks

ARG JKS_STOREPASS=“any random password, you can also set it outside via the arguments from docker build”

USER root:root

COPY /ssl /ssl

RUN chown -R jboss:jboss /ssl

USER jboss:jboss

WORKDIR /ssl

RUN keytool -import -noprompt -alias getsentry
-storepass “${JKS_STOREPASS}”
-keystore certificates.jks
-trustcacerts -file “/ssl/getsentry.pem”

FROM debezium/connect:0.10 AS kafka-connect

EXPOSE 8083

COPY config/log4j.properties “$KAFKA_HOME/config/log4j.properties”

COPY --from=ssl-jks --chown=kafka:kafka /ssl/certificates.jks /ssl/

ENV SENTRY_VERSION=1.7.23
MAVEN_DEP_DESTINATION=$KAFKA_HOME/libs

RUN docker-maven-download
central io/sentry sentry “KaTeX parse error: Expected 'EOF', got '&' at position 50: …526e2094b9bbde &̲& \ docker-…SENTRY_VERSION” 74af872827bd7e1470fd966449637a77
构建并运行
现在我们可以简单地构建图像:

$ docker build -t debezium/connect-sentry:1 --build-arg=JKS_STOREPASS=“123456789” .
运行图像时,我们现在必须配置 Kafka Connect 应用程序以通过设置加载 JKS 文件KAFKA_OPTS: -Djavax.net.ssl.trustStore=/ssl/certificates.jks -Djavax.net.ssl.trustStorePassword=。

Sentry 可以通过多种方式进行配置,我喜欢通过环境变量来配置,我们可以设置的最小值是 Sentry DSN(指向您的项目所必需的)和实际运行环境名称(即:生产、暂存)。

在这种情况下,我们可以配置变量:SENTRY_DSN=<GET THE DNS IN SENTRY’S DASHBOARD>, SENTRY_ENVIRONMENT=dev。

如果您想了解有关使用 Debezium 容器镜像的更多信息,请查看我们的教程。

就是这样,以 Sentry 为例扩展 Docker 设置的基本方法;其他的修改也应该和这个一样简单。作为此设置中来自 Kafka 生产者的异常的示例RecordTooLarge,请参见下图:

哨兵异常示例
结论
由于最近对 Debezium 容器镜像进行了重构,使用自定义扩展来修改它们变得非常容易。下载外部依赖项并将其添加到图像中成为一项微不足道的任务,我们很乐意听到您的反馈!

如果您对重构本身感到好奇,可以在拉取请求debezium/container-images#131中找到详细信息。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓11菜单实现hdmi-4K动态切换

客户要求系统实现动态hdmi-4K与普通分辨率直接热切换&#xff0c;先在菜单中做个试验&#xff0c;设置中加个切换开关&#xff0c;点击开关就可以直接切到hdmi-4K&#xff0c;这个功能实现后可以通过插拔hdmi那个状态&#xff08;sys/class/drm/card0-HDMI-A-1/status&#xff…

41k+ stars 闪电般快速的开源搜索引擎 docker安装教程

目录 1.下载 2.启动 成功示例 3.创建索引 4.插入数据 4.1下载数据 4.2插入数据 4.3查看数据 5.官方地址 1.下载 docker pull getmeili/meilisearch:latest 2.启动 mkdir -p /opt/meili_datadocker run -it --rm \-p 7700:7700 \-v /opt/meili_data:/meili_data \ge…

YOLOV7剪枝流程

YOLOV7剪枝流程 1、训练 1&#xff09;划分数据集进行训练前的准备&#xff0c;按正常的划分流程即可 2&#xff09;修改train.py文件 第一次处在参数列表里添加剪枝的参数&#xff0c;正常训练时设置为False&#xff0c;剪枝后微调时设置为True parser.add_argument(--pr…

2401d,讨论d串滑动参数

原文 因为对编译时执行的i串的兴趣,我一直在考虑搞个通用用例,而不是相关i串的用例. 滑动模板参数 请考虑以下模板: void pluto(string s)() {pragma(msg, s); } void test() {pluto!"hello"(); }因为s是编译时参数,这编译,而pragma(msg,s) 期望s为编译时值. voi…

Linux第28步_编译“正点原子的TF-A源码”

编译“正点原子的TF-A源码”&#xff0c;目的是想得到TF-A文件&#xff0c;即“tf-a-stm32mp157d-atk-trusted.stm32”。 在前27步的基础上&#xff0c;才可以学习本节内容&#xff0c;学习步骤如下&#xff1a; 1、创建“alientek_tf-a”目录&#xff1b; 2、复制正点原子的…

.【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)

概率图模型是一种用图形表示概率分布和条件依赖关系的数学模型。概率图模型可以分为两大类&#xff1a;有向图模型和无向图模型。有向图模型也叫贝叶斯网络&#xff0c;它用有向无环图表示变量之间的因果关系。无向图模型也叫马尔可夫网络&#xff0c;它用无向图表示变量之间的…

02.部署LVS-DR群集

技能展示&#xff1a; 了解LVS-DR群集的工作原理 会构建LVS-DR负载均衡群集 2.1 LVS-DR 集群 LVS-DR&#xff08; Linux Virtual Server Director Server &#xff09;工作模式&#xff0c;是生产环境中最常用的一种工作模式。 2.1.1&#xff0e;LVS-DR 工作原理 LVS-DR 模式&…

在root账号下启动 elasticsearch

最新版本的 elasticsearch 不能用root账号运行&#xff0c;但是每次启动都要切换到其他账号下面&#xff0c;也是一件很麻烦的事情。下面写个脚本&#xff0c;以指定用户运行elasticsearch 假设服务器已经装好了elasticsearch&#xff0c;并且在 /usr/local/elasticsearch-8.1…

Spark---RDD持久化

文章目录 1.RDD持久化1.1 RDD Cache 缓存1.2 RDD CheckPoint 检查点1.3 缓存和检查点区别 1.RDD持久化 在Spark中&#xff0c;持久化是将RDD存储在内存中&#xff0c;以便在多次计算之间重复使用。这可以显著减少不必要的计算&#xff0c;提高Spark应用程序的性能。 val line…

蓝桥杯练习题(七)

&#x1f4d1;前言 本文主要是【算法】——蓝桥杯练习题&#xff08;七&#xff09;的文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是听风与他&#x1f947; ☁️博客首页&#xff1a;CSDN主页听风与他 …

kotlin运行

1.使用android studio 由于我本身是做android的&#xff0c;android studio本身有内置kotlin的插件。但若只是想跑kotlin的程序&#xff0c;并不像和android程序绑在一起&#xff0c;可以创建一个kt文件&#xff0c;在里面写一个main函数&#xff0c;就可以直接运行kotlin程序…

Qt中的多线程

Qt中的多线程 目录 1 为什么需要多线程 2 Qt中使用多线程的一些注意事项 3 QThread类 3.1 QThread类的主要接口 3.2 线程的优先级 4 通过继承QThread类实现多线程 5 从QObject类进行派生实现多线程 5 小结 1 为什么需要多线程 在现代化的程序设计开发中&#xff0c;多进程…

【机器学习 西瓜书】期末复习笔记整理

一些杂点&#xff1a; 测试集如何归一化&#xff1f; —— 不是用测试集的均值和标准差&#xff0c;而是用训练集的&#xff01; 机器学习&#xff1a; 对计算机一部分数据进行学习&#xff0c;然后对另外一些数据进行预测与判断。 参考计算例题&#xff1a; 机器学习【期末复习…

多汗症是否与情绪有关?

多汗症与情绪之间确实存在密切的关系。情绪波动、紧张、焦虑等心理因素是多汗症的常见诱因之一。多汗症患者在情绪激动或紧张时&#xff0c;常常会出现出汗量明显增加的情况。 首先&#xff0c;我们需要了解多汗症的基本病理生理机制。多汗症是由于交感神经过度兴奋引起汗腺过…

Spark-RDD的依赖

RDD的依赖 rdd之间是有依赖关系 窄依赖 每个父RDD的一个Partition最多被子RDD的一个Partition所使用父rdd和子rdd的分区是一对一 mapflatMapfliter 宽依赖 父RDD的Partition会被多个子RDD的Partition所使用父rdd和子rdd的分区是一对多 grouBy()grouByKey()sortBy()sortByKey()…

PyCharm安装使用教程2024

简介 PyCharm是一种PythonIDE&#xff08;Integrated Development Environment&#xff0c;集成开发环境&#xff09;&#xff0c;带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#xff0c;比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单…

[oeasy]python0004_游乐场_和python一起玩耍_python解释器_数学运算

和python玩耍 &#x1f94a; Python 回忆 上次 了解shell环境中的命令 命令作用whoami显示当前用户名pwd显示当前文件夹ls列出当前文件夹下的内容python3仿佛进入大于号黑洞 这python3 怎么玩啊&#xff01;&#x1f620; 说好的python教程呢&#xff1f;&#x1f914; 运…

vue2使用Lottie

文章目录 学习链接1.安装依赖2.创建lottie组件3.在相对应的页面应用4.相关data.json5.测试效果 学习链接 原文链接&#xff1a;lottie在vue中的使用 lottie官网&#xff1a;https://lottiefiles.com/ 1.安装依赖 npm install lottie-web2.创建lottie组件 <template>…

5G+体育 贵阳电信为亚高原训练基地插上“数字羽翼”

2023年是《5G应用“扬帆”行动计划&#xff08;2021—2023年&#xff09;》的收官之年&#xff0c;5G融合应用正在从点状示范向规模化发展。截至2023年10月底&#xff0c;我国开通5G基站总数达321.5万个&#xff0c;已经建成了全球规模最大、技术领先的5G网络。目前&#xff0c…

MetaGPT前期准备与快速上手

大家好&#xff0c;MetaGPT 是基于大型语言模型&#xff08;LLMs&#xff09;的多智能体协作框架&#xff0c;GitHub star数量已经达到31.3k。 接下来我们聊一下快速上手 这里写目录标题 一、环境搭建1.python 环境2. MetaGpt 下载 二、MetaGPT配置1.调用 ChatGPT API 服务2.简…