WSO2 Api Manager 集成 Analytics
WSO2 Api Manager仅实现了Api网关功能,但没有统计监控功能,必须与其Analytics组件集成才能实现,集成过程如下:
参考链接:https://docs.wso2.com/display/AM250/Analytics
1. 安装配置apim
参考前一篇: WSO2 API Manager安装部署配置
2. 安装analytics
- 下载并解压安装包:https://wso2.com/api-management/install/analytics/
- 安装jdk1.8-x64,注意要用64位jdk,并配置JAVA_HOME环境变量
- window下需要另外下载 snappy-java-1.1.1.7.jar包放到repository\components\lib目录下
3.在apim中开启analytics
- 打开配置文件: <API-M_HOME>/repository/conf/api-manager.xml
- 把<Analytics>下的Enabled设置为true
- 修改<Analytics>下的其他配置,如果需要的话
4.配置Log Analyzer
打开配置文件:<API-M_HOME>/repository/conf/log4j.properties,在root Logger上添加DAS_AGENT
log4j.rootLogger=<other loggers>, DAS_AGENT
检查该文件以下的相应配置是否需要修改
# DAS_AGENT is set to be a Custom Log Appender.
log4j.appender.DAS_AGENT=org.wso2.carbon.analytics.shared.data.agents.log4j.appender.LogEventAppender
# DAS_AGENT uses PatternLayout.
log4j.appender.DAS_AGENT.layout=org.wso2.carbon.analytics.shared.data.agents.log4j.util.TenantAwarePatternLayout
log4j.appender.DAS_AGENT.columnList=%D,%S,%A,%d,%c,%p,%m,%H,%I,%Stacktrace
log4j.appender.DAS_AGENT.userName=admin
log4j.appender.DAS_AGENT.password=admin
log4j.appender.DAS_AGENT.url=tcp://localhost:7612
log4j.appender.DAS_AGENT.maxTolerableConsecutiveFailure=5
log4j.appender.DAS_AGENT.streamDef=loganalyzer:1.0.0
log4j.logger.trace.messages=TRACE,CARBON_TRACE_LOGFILE
5. 配置数据源
- 把<API-M_ANALYTICS_HOME>/repository/conf/datasources/analytics-datasources.xml文件下的两个数据源WSO2_ANALYTICS_EVENT_STORE_DB和 WSO2_ANALYTICS_PROCESSED_DATA_STORE_DB配置为Oracle数据库,具体方式参考上一篇笔记,另外这两个数据源不需要执行脚本初始化数据库,运行程序会自动创建表
对于oracle数据库建议增加DB block的大小,参考: http://www.oratable.com/ora-01450-maximum-key-length-exceeded/ ,避免出现错误:ORA-01450: maximum key length (6398) exceeded
-
在apim和analytics中配置同样的数据源WSO2AM_STATS_DB,配置文件路径分别为:<API-M_ANALYTICS_HOME>/repository/conf/datasources/stats-datasources.xml和 <API-M_HOME>/repository/conf/datasources/master-datasources.xml
-
把数据库驱动文件放到<API-M_ANALYTICS_HOME>/repository/components/lib目录下
====================华丽分割线===========================
补充:经过测试发现 analytics 并不支持Oracle数据库,因为analytics的表名太长,超过了oracle对表名的最大长度限制,各个数据库表名长度限制如下表
数据库 |
表名长度限制 |
字段名长度限制 |
oracle |
30 |
30 |
mysql |
64 |
64 |
db2 |
128 |
128 |
access |
64 |
64 |
sqlserver |
128 |
128 |
注:该表应用自:https://blog.csdn.net/huangyanlong/article/details/45854385