kettle监控系统性能

这是官网对kettle监控系统性能介绍的链接:

https://help.pentaho.com/Documentation/7.0/0P0/Monitoring_System_Performance/About_System_Performance_Monitoring


                                                     为了方便多次查看,边将官网上纯英文版本的翻译了下


我们可以通过以下功能监控性能:

启用日志记录;

监控Job和Transformation结果;

使用检查点重新启动作业;

通过第三方监控SNMP集成Pentaho;

诊断技巧

应用Kettle日志记录最佳实践。


1、日志记录:

​ 数据集成中的日志功能能够更容易地排除复杂的错误和故障,并度量性能。使用以下步骤打开数据集成中的日志记录:

  • 创建一个名为pdi_logging的数据库或表空间。

  • 启动Spoon,并打开一个转换或作业,为其启用日志记录。

  • 进入编辑菜单,选择设置对话框。

  • 选择Logging选项卡。

  • kettle监控系统性能_第1张图片

  • 在左边的列表中,选择要记录的函数。

  • 单击日志连接字段旁边的“新建连接”按钮。出现数据库连接对话框。

  • 输入数据库连接详细信息,然后单击“测试连接”以确保它们是正确的。完成后单击OK。

  • 查看要记录的字段列表,并确保选择了正确的字段。

注意:监视LOG_FIELD字段会对Pentaho服务器性能产生负面影响。但是,如果在配置转换日志记录时没有选择所有字段,包括LOG_FIELD,那么将不会在operation Mart日志记录中看到关于此转换的信息。

日志轮转

Pentaho服务器使用Apache log4j Java日志框架存储服务器反馈。log4j.xmll中的默认设置对于某些生产环境,可能太过冗长,并且太大。按照这些说明修改设置,使Pentaho服务器日志文件旋转和压缩:

  • 停止所有相关服务器。

  • 为log4j包下载Apache Extras附带的ZIP文档: Apache Logging Services

  • 从ZIP中解压apache-log4j-extras.jar文件,并复制到服务器/pentaho-server/tomcat/webapps/pentaho/WEB-INF/lib/。

  • 编辑log4j。Pentaho服务器的xml设置文件。这个XML文件位于server/pentaho-server/tomcat/webapps/pentaho/WEB-INF/classes/。

  • 从配置中删除所有PENTAHOCONSOLE appender。

  • 修改PENTAHOFILE appenders以匹配您喜欢的日志旋转条件,示例:

  • 保存并关闭文件,然后启动所有受影响的服务器来测试配置。

    Daily (date-based) log rotation with compression:(基于日期的日志旋转与压缩)
    
    	    
    	    
    	    
    	    
    	        
    	        
    	    
    	    
    	        
    	    
    
    Size-based log rotation with compression:(基于大小的日志旋转与压缩)
    
    	    
    	    
        
    	    
    	        
    	        
    	        
    	    
    	    
    	        
    	        
    	    
    	    
    	        
    	    
    	

     

  • 2、 监控Job和Transformation结果

    ​ 可以通过PDI状态页面查看远程执行和计划的作业和转换细节,包括它们运行的日期和时间,以及它们的状态和结果。要查看它,导航到pentaho服务器上的/pentaho/kettle/status页面(更改主机名和端口以匹配您的配置):

    http://localhost:8080/pentaho/kettle/status

    ​ 通过使用从服务器的监视器功能,可以在Spoon中访问类似的页面。此页面在服务器重新启动时或在object_timeout_minutes设置指定的时间间隔内清除。

    On Carte

    ​ 对嵌入到Pentaho服务器中的Carte服务器进行的任何操作都通过/ Pentaho /server/ Pentaho -server/ Pentaho -solutions/system/kettle/ sla-server- config.xml文件控制。

    注意:修改从服务器配置sla-server- config.xml,必须停止Pentaho服务器。

    从服务器配置sla-server- config.xml文件中的三个可配置选项如下表所示:

    Property Values Description
    max_log_lines Any value of 0 (zero) or greater. 0 indicates that there is no limit. 当执行日志超过设定的最大行数时,截断它
    max_log_timeout_minutes Any value of 0 (zero) or greater. 0 indicates that there is no timeout. 如果每个日志条目的时间超过设定的分钟,则删除其中的行。
    object_timeout_minutes Any value of 0 (zero) or greater. 0 indicates that there is no timeout. 从列表中删除超过这个时间目录的条目

以下是sla-server- config.xml文件中的例子:


	  0
	  0
	  0
	

 


3、使用检查点重新启动作业

​ 检查点允许重新启动失败的作业,而无需从头重新运行整个作业。在跳转处添加检查点,将一个作业条目连接到另一个作业条目。然后,当运行作业并遇到检查点时,保存作业条目的状态,包括参数、内部结果行和结果文件。如果出现导致作业失败的错误,比如数据库没有正常工作,因此无法连接到它导致作业就结束。但是,当错误得到解决并重新启动作业时,它从错误发生之前的最后一个检查点开始,而不是从一开始就开始执行作业。由于保存了一直执行到检查点的作业条目的状态,所以该作业恢复时就好像没有发生故障一样。除了设置检查点之外,还需要设置检查点日志。检查点日志记录每一次作业运行以及故障发生的位置。这有助于进行故障排除。

增加一个检查点:

  • 在Spoon,打开一份工作。

  • 右键单击作业中的一个步骤或转换,然后从出现的菜单中选择 Restartable Checkpoint

  • 检查点被添加到作业

删除一个检查点:

  • 在Spoon,打开一份工作。

  • 右键单击作业中的一个步骤或转换,然后从出现的菜单中选择Clear Checkpoint Marker。

  • 检查点从工作中清除。

设置检查点日志:

  • 在Spoon,打开一份工作。

  • 右键单击作业选项卡中出现在Spoon窗口中的空白区域。在“属性”窗口中,单击“日志”选项卡。

  • 选择检查点日志表。


4、通过第三方监控SNMP集成Pentaho

​ 简单网络管理协议(SNMP)插件的主要目标是为大型企业提供一种与第三方工具集成的方式来监控数据集成(DI)事件。通过SNMP接收到的信息将帮助您确定转换或作业的运行时,并确定影响网络性能异常的长时间运行的事件。这些SNMP事件可以直接绑定到执行中的某个特定时间点,例如转换开始的时刻,或Kettle步骤完成执行的时刻。这些事件可以在更广泛的范围内使用,例如成功的数据库连接或单点服务器初始化。

​ SNMP插件通过利用Kettle生态系统中的现有扩展点来生成事件来工作。然后将这些事件转换为SNMP陷阱,例如从SNMP代理发送的非请求消息或异步消息。从那里,事件被转发到SNMP manager, SNMP manager被动地侦听这些消息。

​ 在网络上设置SNMP监视的一个选项是使用现有的Pentaho服务器之一作为JMS监视服务器来处理从队列接收的陷阱事件。然后,该服务器通过SNMP将这些事件转发给您安装的任何第三方监控工具。

kettle监控系统性能_第2张图片

要设置发送SNMP陷阱的服务器,您需要一个pentaho - mi - v2c.mib的副本文件。如果您需要帮助定位这个文件,请联系Pentaho Support。要接收陷阱事件,您需要下载并安装第三方SNMP监视工具,比如Nagios。确保您还知道您的DI和监视服务器的IP地址

Step 1:配置Pentaho服务器以发送陷阱事件

​ 以下步骤指导您完成配置Pentaho服务器以协同工作进行SNMP监视的过程。Pentaho服务器只需知道JMS监视服务器的IP地址,就可以开始向事件队列发送消息。还可以设置要监视的事件的特定类型。如果服务器在两台不同的机器上,具有不同的IP地址,请确保它们能够通过ping来建立通信。

  • 找到这个目录并打开并编辑pentaho-osgi-config-7.0.0.0-25-snmp.cfg。

  • \kettle\pdi-ce-7.0.0.0-25\data-integration\system\karaf\system\pentaho\pentaho-osgi-config

     

  • 找到fromHost的属性并设置与Pentaho服务器匹配的IP地址。

  • 查找toHost属性并将其替换为监视服务器的IP地址。

  • 如果SNMP端口不是默认端口(162端口),则在此文件中更改它以匹配您的端口。

  • 将其他Pentaho服务器配置为不执行SNMP监视。默认情况下,它们被配置为这样做。

    ​ 打开org.apache.karaf.features.cfg文件,位于kettle\pdi-ce-7.0.0.0-25\data-integration\system\karaf\etc中。

    ​ 找到featuresBoot属性并删除pentaho-monitoring-2-snmp和pentaho-monitoring-jms-broker。

    ​ 在featuresBoot属性中添加 pentaho-brokering-jms 。

  • 保存并关闭org. apache .karaf.features.cfg,并启动Pentaho服务器。

​ 每次更改pentaho-osgi-config-7.0.0.0-25 snmp.cfg时,你需要删除pentaho.snmp。cfg文件位于kettle\pdi-ce-7.0.0.0-25\data-integration\system\karaf\etc中。

​ 一个新的pentaho.snmp.cfg文件是根据pentaho-osgi-config-7.0.0.0-25 snmp.cfg中包含的最新信息自动生成的。

​ 在完成这个过程之后,在Pentaho服务器上执行的任何kettle作业或转换都会将SNMP trap事件发送到指定的监视服务器的IP地址。

Step 2:配置监视工具以接收陷阱事件

​ 在默认情况下,Pentaho服务器已经配置为处理消息。管理信息数据库(MIB)用于管理通信网络中的实体。结构是层次化的,每个条目分配一个对象标识符(OID)。

​ 以Nagios为例:

上传MIB文件到监视工具:

  1. 访问第三方SNMP工具web接口。

  2. 找到管理MIBs的选项。

  3. 上传你之前下载的PENTAHO-MIB-V2C.mib文件。

将MIB文件转换为.conf文件:

  1. ​ 与根用户通过SSH协议访问监控服务器

     ssh [email protected]

     

  2. 成功登录后,找到包含您上传的MIB文件的目录,例如/usr/share/snmp/mibs/。运行snmpttconvertmib命令,说明上传文件的路径,以及编译输出文件的路径:

  3. 运行snmpttconvertmib命令,说明上传文件的路径,以及编译输出文件的路径:  

snmpttconvertmib
	--in=
	--out=--
	exec='/usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" "$s" "$@" "$-*"'

       4.在本例中,我们编译了一个配置文件,我们称之为pentaho.di.conf,基于之前上传的Pentaho MIB文件:

snmpttconvertmib --in=/usr/share/snmp/mibs/PENTAHO-MIB-V2C.mib 
--out=/etc/snmp/pentaho.di.conf --exec='/usr/local/bin/snmptraphandling.py "$r" "SNMP Traps" 
"$s" "$@" "$-*"

将新生成的.conf文件添加到snmptt.ini文件中:

  1. 打开并编辑文件/etc/snmp/snmptt.ini。

  2. 定位[TrapFiles]部分——它应该位于文件的底部。

  3. 将新创建的配置文件放在主文件之后,但要放在结束声明之前。例如,如果使用默认snmptt.ini文件应该是这样的:

    [TrapFiles] snmptt_conf_files = <

     

  4. 保存并关闭文件。

  5. 重新启动监控服务器和snmptt服务:

    /etc/rc.d/init.d/nagios stop
    /etc/init.d/snmptt stop (wait ~5 seconds)
    /etc/init.d/snmptt start
    /etc/rc.d/init.d/nagios start

    从PDI工具发送陷阱到监视工具

    ​ 可以设置SNMP系统,使trap事件直接从PDI客户机工具(如Pan、Kitchen或Spoon)发送,而不是首先通过集中式监控服务器发送陷阱。有几种不同的方法可以通过这些工具设置监视应用程序。

    kettle监控系统性能_第3张图片

    可以按照以下选项之一配置SNMP环境以通过PDI客户机工具运行。

    从所有PDI客户端工具:**

    ​ 找到下面的目录并打开org.pentaho.features.cfg文件与任何文本编辑器。

    data-integration/system/karaf/system/pentaho/pentaho-osgi-config/7.0.0.0-25

    在功能启动列表的末尾添加五项监视到snmp特性。

    ​ 如果SNMP端口不是默认端口(162端口),则在此文件中更改它以匹配您的端口。

    ​ 保存并关闭文件。

    从特定的PDI客户端工具,如Carte:

    ​ 找到org.pentaho.features。客户etc文件夹中的cfg文件,

    ​ 在运行时特性列表中添加五项监视到snmp。

    ​ 默认情况下,除了Spoon特性之外的所有特性都是禁用的,因此您必须取消对其他工具的runtimeFeatures的注释。

    ​ 如果SNMP端口不是默认端口(162端口),则需要在此文件中修改它以匹配您的端口。

    ​ 保存并关闭文件。

    配置要监视的事件类型

    在默认情况下,Pentaho服务器将监视在执行kettle作业或转换时发生的所有可能的事件类型,但是您也可以通过从列表中删除项来指定要监视的事件类型。这些步骤描述了如何指定事件。

  1. 找到目录:/pentaho-server/pentaho-solutions/system/karaf/system/pentaho-osgi-config-7.0.0.0-25-pdi-monitoring。

  2. 打开并编辑监视。属性文件

  3. 定位extension.point.plugins.enabled属性,其中包含一个逗号分隔的事件类型列表,SNMP陷阱事件将被发送到监控服务器。

    在这个属性的上面,注释部分列出了所有可能的事件类型,以及每个事件类型的简要描述。

    编辑该列表,只留下您希望用作SNMP陷阱事件的项。

  4. 保存文件并重新启动Pentaho服务器。


5、诊断技巧

禁用服务器和超时会话的相关调试

按照下面的说明禁用与用户控制台关联的服务器和超时会话。

注意:这些说明在测试环境中是适用的。一旦上线,建议将超时时间设置为5或10分钟,以便保护与Pentaho服务器相关的敏感数据。时间必须用分钟来表示。

  1. 打开服务器。位于pentaho-server/tomcat/conf下的.xml文件。

  2. 查找connectionTimeout="20000"参数,并将其值更改为零("0")。如果该值设置为负数,则永远不会超时。

  3. 打开web.xml文件,位于pentaho-server/tomcat/webapps/pentaho/WEB-INF/web.xml之下。

  4. 找到会话超时session-timeout 参数并将其值更改为-1(“-1”)。

  5. 保存文件并刷新用户控制台。

定义结果行限制和超时

当用户在控制台中的查询返回异常多的行数时,这可能会影响服务器性能。要限制查询返回的行数并设置超时,必须在元数据编辑器中创建两个自定义属性max_rows和timeout。您为行数限制(最大行数)和超时属性定义的值将被传递给JDBC驱动程序。

为了定义最大行和超时:

 

  • 在元数据编辑器中,展开Business Model 节点并选择Orders。
  • 右键单击订单并选择Edit。业务模型属性页显示先前定义的属性列表。
  • 在Business Model Properties页面中,单击Add图标。将出现“添加新属性页”对话框。
  • 启用添加自定义属性
  • 在ID文本框中,输入max_rows。重要提示:ID是区分大小写的,必须按照显示的那样输入。
  • 单击Type字段中的向下箭头并选择Numeric。出现业务模型属性页。max_rows属性列在导航树的Custom下面。
  • 在“自定义”下的右窗格中,输入max_rows属性的值。例如,如果输入“3000”作为值,查询结果中允许显示的行数限制为3000。
  • 为超时定制属性重复步骤3到6。
  • 在“自定义”下的右窗格中,为超时属性输入一个值。timeout属性需要一个以秒为单位定义的数值。例如,如果输入3600,查询结果的限制是1分钟。
  • 在Business Model Properties页面中单击OK保存新创建的属性

6、应用kettle日志记录最佳实践

Kettle日志提供了广泛的灵活性,允许您确定日志位置、粒度以及捕获了哪些信息。下面是环境中设置日志记录的最佳实践。

  • 将日志存储在一个集中的数据库中。默认情况下,日志文件存储在本地。Spoon、Carte和Pentaho服务器日志分别存储。要使日志信息更容易找到,请将日志放在中心数据库中。这样做的好处是集中式日志记录可以更容易地更有效地使用PDI的性能监视。
  • 获取表的完整插入访问。如果没有适当的访问,日志记录可能会失败。使用适当的访问可以将这种风险降至最低。
  • 在本地和每个服务器上安装JDBC驱动程序。这有助于避免驱动程序没有发现错误。这里显示了支持的驱动程序列表。A list of supported drivers appears here.
  • 尽可能使用隐含模式。隐含模式会减少日志记录失败时故障排除的地方。当然,如果需要,也可以指定模式。
  • 为转换和作业文件创建模板。在模板中包含日志配置,以便可以轻松地重用它们。
  • 尽可能使用Kettle全局日志变量。为了避免将日志变量添加到每个转换或作业中,可以考虑使用全局日志变量。您可以根据需要通过向单个转换或作业添加信息来覆盖日志变量。

如果选择使用kettle.properties文件,遵循以下最佳实践:

备份kettle.properties文件。如果对kettle.properties做了很多改动,请考虑先备份文件。这将使问题发生时更容易恢复。

保存kettle.properties文件副本。通常对Spoon使用kettle.properties文件是最容易的,如果做了更改,则覆盖Carte和Pentaho服务器副本。但是,要确保维护可能更改的值,比如目录路径。

 

你可能感兴趣的:(kettle)