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