本文做为对开源Talend-ESB的SAM监控配置的一个说明,重点是对于监控日志信息能够入数据库的事件日志中,对于企业版的Talend本身提供了专门的管控平台,而对于社区版无Administrator管控,但是对于监控的日志数据仍然可以采集到数据库中。
整个SAM的架构设计参考Talend提供的技术文档,如下图所示:
其中核心内容可以看到首先是你设计的服务需要配置为支持SAM进行事件采集,对于产生的日志事件首先进行收集进入MQ,其次是SAM Server启动后会提供MonitoringService服务,通过该Web服务来实现事件最终持久化到数据库中。
这篇主要说明如何将事件日志信息采集并存储到Mysql数据库中。
第一步:数据库的初始化
首先我们需要在Mysql中新建立一个数据库,比如命名为TalendESB,在/Runtime_ESBSE/add-ons/sam/db目录下找到两个Mysql相关的.sql脚本,一个是创建表的,一个是创建索引的,在新建的TalendESB数据库中运行着两个.sql文件,即完成了数据库本身的初始化操作。
第二步:配置文件修改
由于Talend SAM默认配置的数据库监控是在Debry开源数据库里面,因此如果监控日志需要采集到Mysql数据库需要对一些配置文件进行修改。具体如下:
1. 修改/Runtime_ESBSE/container/etc目录下的org.talend.esb.sam.server文件,将原来Debry数据库配置的两行代码替换为Mysql的数据库配置,具体为:
db.datasource=ds-mysql
db.dialect=mysqlDialect
2. 修改/Runtime_ESBSE/container/system/org/talend/esb/ds-service-mysql/6.1.1目录下的ds-service-mysql-6.1.1-org.talend.esb.datasource.mysql.cfg文件,配置为你服务器mysql信息,例如
datasource.url=jdbc:mysql://localhost:3306/talendesb
datasource.username=root
datasource.password=root
datasource.pool.maxActive=20
datasource.pool.maxIdle=5
datasource.pool.maxWait=30000
在修改完成后需要将文件拷贝到/Runtime_ESBSE/container/etc目录下,并将该文件重命名为org.talend.esb.datasource.mysql.cfg,该步骤很重要否则SAM无法找到新数据库配置信息
第三步:相关扩展包的安装
在Talend服务端启动后,对于Mysql相关的Feature包默认是没有安装的,因此SAM监控信息要入Mysql数据库,还需要Mysql特征包的支持,因此需要在Talend Server启动后运行如下命名安装Mysql包
>>feature:install pax-jdbc-mysql
>>feature:install tesb-datasource-mysql
第四步:启动SAM Server
在启动SAM Server前首先可以运行如下命令,查看下SAM相关的特征包是否都已经安装,如果没有安装,则首先需要运行feature:install安装相应的包,具体命令为
>>feature:list | grep sam
其中涉及到的SAM-Server,SAM-Agent等包都必须要正常安装,在安装完成后启动SAM
>>tesb:start-sam
第五步:安装验证和访问
在SAM启动后访问http://localhost:8040/services/MonitoringServiceSOAP?wsdl,正常的话说明安装完成
在设置完成SAM监控后,对于ESB设计的服务注意要在Serice的ESB Runtime设置中,勾选
[]Use Service Activity Monitor
[]Use Service Locator
[]Use Log Message
这三个选择项目都选择后,将Service发布为Kar包部署到Deploy目录即可完成对服务的日志监控。
在通过SoapUI运行和测试后可以看到,在数据库的Event表中已经有相应的服务调用日志记录。