Loading BUILD_DOC.md 0 → 100644 +115 −0 Original line number Diff line number Diff line ### 部署第三方软件 - JDK 1.7 - 安装zookeeper 3.4.6 - 安装apache hbase 1.1.2 - 安装mysql - 安装tomcat 7 - redis-3.0.5 ### 编译安装SkyWalking Server - 编译工程 ```shell $cd github/sky-walking/skywalking-server $mvn package -Dmaven.test.skip=true $cd github/sky-walking/skywalking-server/target/installer ``` - 拷贝installer到服务器 - 根据服务器环境修改/config/config.properties ```properties #服务器收集数据监听端口 server.port=34000 #数据缓存文件目录,请确保此目录有一定的存储容量 buffer.data_buffer_file_parent_directory=D:/test-data/data/buffer #偏移量注册文件的目录,这里为系统绝对路径 registerpersistence.register_file_parent_directory=d:/test-data/data/offset #hbase zk quorum,hbase的zk地址 hbaseconfig.zk_hostname=10.1.235.197,10.1.235.198,10.1.235.199 #hbase zk port,hbase的zk使用端口 hbaseconfig.client_port=29181 #告警数据暂存的Redis配置 alarm.redis_server=10.1.241.18:16379 ``` - 启动服务 ```shell $cd installer/bin $./swserver.sh ``` - 可根据需要部署多个实例 - 启动服务前,请注意hbase的客户端使用机器名而非ip连接主机,请在server所在机器上正确配置hosts文件,否则会造成数据无法入库 ### 编译安装SkyWalking Alarm - 编译工程 ```shell $cd github/sky-walking/skywalking-alarm $mvn package -Dmaven.test.skip=true $cd github/sky-walking/skywalking-alarm/target/installer ``` - 拷贝installer到服务器 - 根据服务器环境修改/config/config.properties ```properties #zookeeper连接地址,用于协调集群,可以和hbase的zookeeper共用 zkpath.connect_str=10.1.241.18:29181,10.1.241.19:29181,10.1.241.20:29181 #管理数据库的JDBC连接信息 #数据库连接地址 db.url=jdbc:mysql://10.1.241.20:31306/sw_db #数据库用户名 db.user_name=sw_dbusr01 #数据库密码 db.password=sw_dbusr01 #告警信息存在的redis服务器地址,需要和skywalking-server的alarm.redis_server设置一致 alarm.redis_server=127.0.0.1:6379 ``` - 启动服务 ```shell $cd installer/bin $./sw-alarm-server.sh ``` - 可根据需要部署多个实例,根据实例启动数量,自动负载均衡 ### 编译安装SkyWalking WebUI - 修改配置文件config.properties ```properties #hbase的连接地址 hbaseconfig.quorum=10.1.235.197,10.1.235.198,10.1.235.199 hbaseconfig.client_port=29181 ``` - 修改配置文件jdbc.properties ```properties #管理数据库的JDBC连接信息 jdbc.url=jdbc:mysql://10.1.228.202:31316/test jdbc.username=devrdbusr21 jdbc.password=devrdbusr21 ``` - 编译工程 ```shell $cd github/sky-walking/skywalking-webui $mvn package ``` - 初始化管理数据库 根据[数据库脚本](https://github.com/wu-sheng/sky-walking/blob/master/skywalking-webui/src/main/sql/table.mysql)初始化管理数据库。其中,脚本中如下SQL片段需要修改: ```sql --配置告警邮件的发送人和SMTP信息 INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1000,'mail_info','{\"mail.host\":\"mail.asiainfo.com\",\"mail.transport.protocol\":\"smtp\",\"mail.smtp.auth\":\"true\",\"mail.smtp.starttls.enable\":\"false\",\"mail.username\":\"testA\",\"mail.password\":\"******\",\"mail.account.prefix\":\"@asiainfo.com\"}','json','默认邮件发送人信息','2015-12-10 11:54:06','A','2015-12-10 11:54:06'); --配置部署页面地址,用于告警邮件内的链接 INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1001,'portal_addr','http://10.1.235.197:48080/skywalking/','string','默认门户地址','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); --配置SkyWalking Server的集群地址(内网地址) INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1002,'servers_addr','10.1.235.197:34000;10.1.235.197:35000;','string','日志采集地址','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); --配置SkyWalking Server的集群地址(外网地址) INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1003,'servers_addr_1','60.194.3.183:34000;60.194.3.183:35000;60.194.3.184:34000;60.194.3.184:35000;','string','日志采集地址-外网','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); ``` - 上传war包到服务器,启动Tomcat服务器 ### 编译安装SkyWalking Analysis 暂未提供 ## 使用maven发布各插件工程 - 发布skywalking-sdk-plugin下的各子工程(dubbo-plugin,spring-plugin,web-plugin,jdbc-plugin,httpclient-4.2.x-plugin,httpclient-4.3.x-plugin) - 请跳过maven.test环节,避免打包失败 ```properties -Dmaven.test.skip=true ``` No newline at end of file README.md +22 −126 Original line number Diff line number Diff line Loading @@ -5,16 +5,17 @@ SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, 是一个对 * 支持国内常用的dubbo以及dubbox等常见RPC框架,支持应用异常的邮件告警 * 通过[byte-buddy](https://github.com/raphw/byte-buddy),部分插件将通过动态字节码机制,避免代码侵入性,完成监控。 |插件名称|配置文件支持|动态代码机制|代码侵入| | ----------- |---------| ----------|----------| |web-plugin|web.xml| - | - | |dubbo-plugin| dubbo/dubbox配置文件 | - | - | |spring-plugin| spring配置文件 | - | - | |jdbc-plugin| jdbc配置文件 | - | - | |mysql-plugin| - | YES | - | |httpClient-4.x-plugin| - | YES | - | |httpclient-4.2.x-plugin| - | - | YES | |httpclient-4.3.x-plugin| - | - | YES | |插件名称|配置文件支持|动态代码机制|代码侵入模式|备注| | ----------- |---------| ----------|----------|----------| |web-plugin|web.xml| - | - | - | |dubbo-plugin| dubbo/dubbox配置文件 | - | - | - | |spring-plugin| spring配置文件 | - | - | - | |jdbc-plugin| jdbc配置文件 | - | - | - | |mysql-plugin| - | YES | - | - | |httpClient-4.x-plugin| - | YES | - | - |httpClient-4.x-plugin-dubbox-rest-attachment| - | YES | - | 需引用httpClient-4.x-plugin | |httpclient-4.2.x-plugin| - | - | YES | 需要使用新提供的httpClient包装对象 | |httpclient-4.3.x-plugin| - | - | YES | 需要使用新提供的httpClient包装对象 | # 新版本能力规划 * 提供一定的日志数据分析和展现能力,减少或者避免使用团队的二次开发 Loading Loading @@ -46,121 +47,7 @@ SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, 是一个对 # Quick Start ## 编译与部署 ### 部署第三方软件 - JDK 1.7 - 安装zookeeper 3.4.6 - 安装apache hbase 1.1.2 - 安装mysql - 安装tomcat 7 - redis-3.0.5 ### 编译安装SkyWalking Server - 编译工程 ```shell $cd github/sky-walking/skywalking-server $mvn package -Dmaven.test.skip=true $cd github/sky-walking/skywalking-server/target/installer ``` - 拷贝installer到服务器 - 根据服务器环境修改/config/config.properties ```properties #服务器收集数据监听端口 server.port=34000 #数据缓存文件目录,请确保此目录有一定的存储容量 buffer.data_buffer_file_parent_directory=D:/test-data/data/buffer #偏移量注册文件的目录,这里为系统绝对路径 registerpersistence.register_file_parent_directory=d:/test-data/data/offset #hbase zk quorum,hbase的zk地址 hbaseconfig.zk_hostname=10.1.235.197,10.1.235.198,10.1.235.199 #hbase zk port,hbase的zk使用端口 hbaseconfig.client_port=29181 #告警数据暂存的Redis配置 alarm.redis_server=10.1.241.18:16379 ``` - 启动服务 ```shell $cd installer/bin $./swserver.sh ``` - 可根据需要部署多个实例 - 启动服务前,请注意hbase的客户端使用机器名而非ip连接主机,请在server所在机器上正确配置hosts文件,否则会造成数据无法入库 ### 编译安装SkyWalking Alarm - 编译工程 ```shell $cd github/sky-walking/skywalking-alarm $mvn package -Dmaven.test.skip=true $cd github/sky-walking/skywalking-alarm/target/installer ``` - 拷贝installer到服务器 - 根据服务器环境修改/config/config.properties ```properties #zookeeper连接地址,用于协调集群,可以和hbase的zookeeper共用 zkpath.connect_str=10.1.241.18:29181,10.1.241.19:29181,10.1.241.20:29181 #管理数据库的JDBC连接信息 #数据库连接地址 db.url=jdbc:mysql://10.1.241.20:31306/sw_db #数据库用户名 db.user_name=sw_dbusr01 #数据库密码 db.password=sw_dbusr01 #告警信息存在的redis服务器地址,需要和skywalking-server的alarm.redis_server设置一致 alarm.redis_server=127.0.0.1:6379 ``` - 启动服务 ```shell $cd installer/bin $./sw-alarm-server.sh ``` - 可根据需要部署多个实例,根据实例启动数量,自动负载均衡 ### 编译安装SkyWalking WebUI - 修改配置文件config.properties ```properties #hbase的连接地址 hbaseconfig.quorum=10.1.235.197,10.1.235.198,10.1.235.199 hbaseconfig.client_port=29181 ``` - 修改配置文件jdbc.properties ```properties #管理数据库的JDBC连接信息 jdbc.url=jdbc:mysql://10.1.228.202:31316/test jdbc.username=devrdbusr21 jdbc.password=devrdbusr21 ``` - 编译工程 ```shell $cd github/sky-walking/skywalking-webui $mvn package ``` - 初始化管理数据库 根据[数据库脚本](https://github.com/wu-sheng/sky-walking/blob/master/skywalking-webui/src/main/sql/table.mysql)初始化管理数据库。其中,脚本中如下SQL片段需要修改: ```sql --配置告警邮件的发送人和SMTP信息 INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1000,'mail_info','{\"mail.host\":\"mail.asiainfo.com\",\"mail.transport.protocol\":\"smtp\",\"mail.smtp.auth\":\"true\",\"mail.smtp.starttls.enable\":\"false\",\"mail.username\":\"testA\",\"mail.password\":\"******\",\"mail.account.prefix\":\"@asiainfo.com\"}','json','默认邮件发送人信息','2015-12-10 11:54:06','A','2015-12-10 11:54:06'); --配置部署页面地址,用于告警邮件内的链接 INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1001,'portal_addr','http://10.1.235.197:48080/skywalking/','string','默认门户地址','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); --配置SkyWalking Server的集群地址(内网地址) INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1002,'servers_addr','10.1.235.197:34000;10.1.235.197:35000;','string','日志采集地址','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); --配置SkyWalking Server的集群地址(外网地址) INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1003,'servers_addr_1','60.194.3.183:34000;60.194.3.183:35000;60.194.3.184:34000;60.194.3.184:35000;','string','日志采集地址-外网','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); ``` - 上传war包到服务器,启动Tomcat服务器 ### 编译安装SkyWalking Analysis 暂未提供 ## 使用maven发布各插件工程 - 发布skywalking-sdk-plugin下的各子工程(dubbo-plugin,spring-plugin,web-plugin,jdbc-plugin,httpclient-4.2.x-plugin,httpclient-4.3.x-plugin) - 请跳过maven.test环节,避免打包失败 ```properties -Dmaven.test.skip=true ``` - 参考《[代码编译部署说明](BUILD_DOC.md)》 ## 引入核心SDK 无论试用哪种插件,都必须引入 Loading @@ -180,8 +67,17 @@ INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val </dependency> ``` ## 使用全新的main class。原main class,以及参数作为参数传入 ```shell #原进程启动命令: java com.company.product.Startup arg0 arg1 #全新的进程启动命令: java com.ai.cloud.skywalking.plugin.TracingBootstrap com.company.product.Startup arg0 arg1 ``` ## 根据所需插件,配置应用程序 - 参考[SDK用户指南](https://github.com/wu-sheng/sky-walking/tree/master/skywalking-sdk-plugin) - 参考《[SDK用户指南](skywalking-sdk-plugin)》 - 注意:插件不会引用所需的第三方组件(如Spring、dubbo、dubbox等),请自行引入所需的版本。 Loading skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Constants.java +1 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ public class Constants { /** * 务必严格保持两位的version */ public static String SDK_VERSION = "1.0a2"; public static String SDK_VERSION = "1.0b"; public static final String HEALTH_DATA_SPILT_PATTERN = "^~"; Loading skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/PluginCfg.java +0 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Set; import com.ai.cloud.skywalking.util.StringUtil; Loading skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceClazz4Interceptor.java +10 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.ai.cloud.skywalking.plugin.PluginCfg; import com.ai.cloud.skywalking.util.StringUtil; public class EnhanceClazz4Interceptor { private static Logger logger = LogManager Loading Loading @@ -50,13 +51,18 @@ public class EnhanceClazz4Interceptor { private void enhance0(String interceptorDefineClassName) throws InstantiationException, IllegalAccessException, ClassNotFoundException { ClassNotFoundException, EnhanceException { logger.debug("prepare to enhance class by {}.", interceptorDefineClassName); InterceptorDefine define = (InterceptorDefine) Class.forName( interceptorDefineClassName).newInstance(); String enhanceOriginClassName = define.getBeInterceptedClassName(); if(StringUtil.isEmpty(enhanceOriginClassName)){ logger.warn("classname of being intercepted is not defined by {}.", interceptorDefineClassName); return; } logger.debug("prepare to enhance class {} by {}.", enhanceOriginClassName, interceptorDefineClassName); Loading Loading @@ -94,6 +100,9 @@ public class EnhanceClazz4Interceptor { * required by interceptorDefineClass. <br/> */ IAroundInterceptor interceptor = define.instance(); if(interceptor == null){ throw new EnhanceException("no IAroundInterceptor instance. "); } DynamicType.Builder<?> newClassBuilder = new ByteBuddy().subclass( originClass, ConstructorStrategy.Default.IMITATE_SUPER_CLASS); Loading Loading
BUILD_DOC.md 0 → 100644 +115 −0 Original line number Diff line number Diff line ### 部署第三方软件 - JDK 1.7 - 安装zookeeper 3.4.6 - 安装apache hbase 1.1.2 - 安装mysql - 安装tomcat 7 - redis-3.0.5 ### 编译安装SkyWalking Server - 编译工程 ```shell $cd github/sky-walking/skywalking-server $mvn package -Dmaven.test.skip=true $cd github/sky-walking/skywalking-server/target/installer ``` - 拷贝installer到服务器 - 根据服务器环境修改/config/config.properties ```properties #服务器收集数据监听端口 server.port=34000 #数据缓存文件目录,请确保此目录有一定的存储容量 buffer.data_buffer_file_parent_directory=D:/test-data/data/buffer #偏移量注册文件的目录,这里为系统绝对路径 registerpersistence.register_file_parent_directory=d:/test-data/data/offset #hbase zk quorum,hbase的zk地址 hbaseconfig.zk_hostname=10.1.235.197,10.1.235.198,10.1.235.199 #hbase zk port,hbase的zk使用端口 hbaseconfig.client_port=29181 #告警数据暂存的Redis配置 alarm.redis_server=10.1.241.18:16379 ``` - 启动服务 ```shell $cd installer/bin $./swserver.sh ``` - 可根据需要部署多个实例 - 启动服务前,请注意hbase的客户端使用机器名而非ip连接主机,请在server所在机器上正确配置hosts文件,否则会造成数据无法入库 ### 编译安装SkyWalking Alarm - 编译工程 ```shell $cd github/sky-walking/skywalking-alarm $mvn package -Dmaven.test.skip=true $cd github/sky-walking/skywalking-alarm/target/installer ``` - 拷贝installer到服务器 - 根据服务器环境修改/config/config.properties ```properties #zookeeper连接地址,用于协调集群,可以和hbase的zookeeper共用 zkpath.connect_str=10.1.241.18:29181,10.1.241.19:29181,10.1.241.20:29181 #管理数据库的JDBC连接信息 #数据库连接地址 db.url=jdbc:mysql://10.1.241.20:31306/sw_db #数据库用户名 db.user_name=sw_dbusr01 #数据库密码 db.password=sw_dbusr01 #告警信息存在的redis服务器地址,需要和skywalking-server的alarm.redis_server设置一致 alarm.redis_server=127.0.0.1:6379 ``` - 启动服务 ```shell $cd installer/bin $./sw-alarm-server.sh ``` - 可根据需要部署多个实例,根据实例启动数量,自动负载均衡 ### 编译安装SkyWalking WebUI - 修改配置文件config.properties ```properties #hbase的连接地址 hbaseconfig.quorum=10.1.235.197,10.1.235.198,10.1.235.199 hbaseconfig.client_port=29181 ``` - 修改配置文件jdbc.properties ```properties #管理数据库的JDBC连接信息 jdbc.url=jdbc:mysql://10.1.228.202:31316/test jdbc.username=devrdbusr21 jdbc.password=devrdbusr21 ``` - 编译工程 ```shell $cd github/sky-walking/skywalking-webui $mvn package ``` - 初始化管理数据库 根据[数据库脚本](https://github.com/wu-sheng/sky-walking/blob/master/skywalking-webui/src/main/sql/table.mysql)初始化管理数据库。其中,脚本中如下SQL片段需要修改: ```sql --配置告警邮件的发送人和SMTP信息 INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1000,'mail_info','{\"mail.host\":\"mail.asiainfo.com\",\"mail.transport.protocol\":\"smtp\",\"mail.smtp.auth\":\"true\",\"mail.smtp.starttls.enable\":\"false\",\"mail.username\":\"testA\",\"mail.password\":\"******\",\"mail.account.prefix\":\"@asiainfo.com\"}','json','默认邮件发送人信息','2015-12-10 11:54:06','A','2015-12-10 11:54:06'); --配置部署页面地址,用于告警邮件内的链接 INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1001,'portal_addr','http://10.1.235.197:48080/skywalking/','string','默认门户地址','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); --配置SkyWalking Server的集群地址(内网地址) INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1002,'servers_addr','10.1.235.197:34000;10.1.235.197:35000;','string','日志采集地址','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); --配置SkyWalking Server的集群地址(外网地址) INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1003,'servers_addr_1','60.194.3.183:34000;60.194.3.183:35000;60.194.3.184:34000;60.194.3.184:35000;','string','日志采集地址-外网','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); ``` - 上传war包到服务器,启动Tomcat服务器 ### 编译安装SkyWalking Analysis 暂未提供 ## 使用maven发布各插件工程 - 发布skywalking-sdk-plugin下的各子工程(dubbo-plugin,spring-plugin,web-plugin,jdbc-plugin,httpclient-4.2.x-plugin,httpclient-4.3.x-plugin) - 请跳过maven.test环节,避免打包失败 ```properties -Dmaven.test.skip=true ``` No newline at end of file
README.md +22 −126 Original line number Diff line number Diff line Loading @@ -5,16 +5,17 @@ SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, 是一个对 * 支持国内常用的dubbo以及dubbox等常见RPC框架,支持应用异常的邮件告警 * 通过[byte-buddy](https://github.com/raphw/byte-buddy),部分插件将通过动态字节码机制,避免代码侵入性,完成监控。 |插件名称|配置文件支持|动态代码机制|代码侵入| | ----------- |---------| ----------|----------| |web-plugin|web.xml| - | - | |dubbo-plugin| dubbo/dubbox配置文件 | - | - | |spring-plugin| spring配置文件 | - | - | |jdbc-plugin| jdbc配置文件 | - | - | |mysql-plugin| - | YES | - | |httpClient-4.x-plugin| - | YES | - | |httpclient-4.2.x-plugin| - | - | YES | |httpclient-4.3.x-plugin| - | - | YES | |插件名称|配置文件支持|动态代码机制|代码侵入模式|备注| | ----------- |---------| ----------|----------|----------| |web-plugin|web.xml| - | - | - | |dubbo-plugin| dubbo/dubbox配置文件 | - | - | - | |spring-plugin| spring配置文件 | - | - | - | |jdbc-plugin| jdbc配置文件 | - | - | - | |mysql-plugin| - | YES | - | - | |httpClient-4.x-plugin| - | YES | - | - |httpClient-4.x-plugin-dubbox-rest-attachment| - | YES | - | 需引用httpClient-4.x-plugin | |httpclient-4.2.x-plugin| - | - | YES | 需要使用新提供的httpClient包装对象 | |httpclient-4.3.x-plugin| - | - | YES | 需要使用新提供的httpClient包装对象 | # 新版本能力规划 * 提供一定的日志数据分析和展现能力,减少或者避免使用团队的二次开发 Loading Loading @@ -46,121 +47,7 @@ SkyWalking: Large-Scale Distributed Systems Tracing Infrastructure, 是一个对 # Quick Start ## 编译与部署 ### 部署第三方软件 - JDK 1.7 - 安装zookeeper 3.4.6 - 安装apache hbase 1.1.2 - 安装mysql - 安装tomcat 7 - redis-3.0.5 ### 编译安装SkyWalking Server - 编译工程 ```shell $cd github/sky-walking/skywalking-server $mvn package -Dmaven.test.skip=true $cd github/sky-walking/skywalking-server/target/installer ``` - 拷贝installer到服务器 - 根据服务器环境修改/config/config.properties ```properties #服务器收集数据监听端口 server.port=34000 #数据缓存文件目录,请确保此目录有一定的存储容量 buffer.data_buffer_file_parent_directory=D:/test-data/data/buffer #偏移量注册文件的目录,这里为系统绝对路径 registerpersistence.register_file_parent_directory=d:/test-data/data/offset #hbase zk quorum,hbase的zk地址 hbaseconfig.zk_hostname=10.1.235.197,10.1.235.198,10.1.235.199 #hbase zk port,hbase的zk使用端口 hbaseconfig.client_port=29181 #告警数据暂存的Redis配置 alarm.redis_server=10.1.241.18:16379 ``` - 启动服务 ```shell $cd installer/bin $./swserver.sh ``` - 可根据需要部署多个实例 - 启动服务前,请注意hbase的客户端使用机器名而非ip连接主机,请在server所在机器上正确配置hosts文件,否则会造成数据无法入库 ### 编译安装SkyWalking Alarm - 编译工程 ```shell $cd github/sky-walking/skywalking-alarm $mvn package -Dmaven.test.skip=true $cd github/sky-walking/skywalking-alarm/target/installer ``` - 拷贝installer到服务器 - 根据服务器环境修改/config/config.properties ```properties #zookeeper连接地址,用于协调集群,可以和hbase的zookeeper共用 zkpath.connect_str=10.1.241.18:29181,10.1.241.19:29181,10.1.241.20:29181 #管理数据库的JDBC连接信息 #数据库连接地址 db.url=jdbc:mysql://10.1.241.20:31306/sw_db #数据库用户名 db.user_name=sw_dbusr01 #数据库密码 db.password=sw_dbusr01 #告警信息存在的redis服务器地址,需要和skywalking-server的alarm.redis_server设置一致 alarm.redis_server=127.0.0.1:6379 ``` - 启动服务 ```shell $cd installer/bin $./sw-alarm-server.sh ``` - 可根据需要部署多个实例,根据实例启动数量,自动负载均衡 ### 编译安装SkyWalking WebUI - 修改配置文件config.properties ```properties #hbase的连接地址 hbaseconfig.quorum=10.1.235.197,10.1.235.198,10.1.235.199 hbaseconfig.client_port=29181 ``` - 修改配置文件jdbc.properties ```properties #管理数据库的JDBC连接信息 jdbc.url=jdbc:mysql://10.1.228.202:31316/test jdbc.username=devrdbusr21 jdbc.password=devrdbusr21 ``` - 编译工程 ```shell $cd github/sky-walking/skywalking-webui $mvn package ``` - 初始化管理数据库 根据[数据库脚本](https://github.com/wu-sheng/sky-walking/blob/master/skywalking-webui/src/main/sql/table.mysql)初始化管理数据库。其中,脚本中如下SQL片段需要修改: ```sql --配置告警邮件的发送人和SMTP信息 INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1000,'mail_info','{\"mail.host\":\"mail.asiainfo.com\",\"mail.transport.protocol\":\"smtp\",\"mail.smtp.auth\":\"true\",\"mail.smtp.starttls.enable\":\"false\",\"mail.username\":\"testA\",\"mail.password\":\"******\",\"mail.account.prefix\":\"@asiainfo.com\"}','json','默认邮件发送人信息','2015-12-10 11:54:06','A','2015-12-10 11:54:06'); --配置部署页面地址,用于告警邮件内的链接 INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1001,'portal_addr','http://10.1.235.197:48080/skywalking/','string','默认门户地址','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); --配置SkyWalking Server的集群地址(内网地址) INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1002,'servers_addr','10.1.235.197:34000;10.1.235.197:35000;','string','日志采集地址','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); --配置SkyWalking Server的集群地址(外网地址) INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val_desc`,`create_time`,`sts`,`modify_time`) VALUES (1003,'servers_addr_1','60.194.3.183:34000;60.194.3.183:35000;60.194.3.184:34000;60.194.3.184:35000;','string','日志采集地址-外网','2015-12-10 15:23:53','A','2015-12-10 15:23:53'); ``` - 上传war包到服务器,启动Tomcat服务器 ### 编译安装SkyWalking Analysis 暂未提供 ## 使用maven发布各插件工程 - 发布skywalking-sdk-plugin下的各子工程(dubbo-plugin,spring-plugin,web-plugin,jdbc-plugin,httpclient-4.2.x-plugin,httpclient-4.3.x-plugin) - 请跳过maven.test环节,避免打包失败 ```properties -Dmaven.test.skip=true ``` - 参考《[代码编译部署说明](BUILD_DOC.md)》 ## 引入核心SDK 无论试用哪种插件,都必须引入 Loading @@ -180,8 +67,17 @@ INSERT INTO `system_config` (`config_id`,`conf_key`,`conf_value`,`val_type`,`val </dependency> ``` ## 使用全新的main class。原main class,以及参数作为参数传入 ```shell #原进程启动命令: java com.company.product.Startup arg0 arg1 #全新的进程启动命令: java com.ai.cloud.skywalking.plugin.TracingBootstrap com.company.product.Startup arg0 arg1 ``` ## 根据所需插件,配置应用程序 - 参考[SDK用户指南](https://github.com/wu-sheng/sky-walking/tree/master/skywalking-sdk-plugin) - 参考《[SDK用户指南](skywalking-sdk-plugin)》 - 注意:插件不会引用所需的第三方组件(如Spring、dubbo、dubbox等),请自行引入所需的版本。 Loading
skywalking-api/src/main/java/com/ai/cloud/skywalking/conf/Constants.java +1 −1 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ public class Constants { /** * 务必严格保持两位的version */ public static String SDK_VERSION = "1.0a2"; public static String SDK_VERSION = "1.0b"; public static final String HEALTH_DATA_SPILT_PATTERN = "^~"; Loading
skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/PluginCfg.java +0 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,6 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Set; import com.ai.cloud.skywalking.util.StringUtil; Loading
skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceClazz4Interceptor.java +10 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.ai.cloud.skywalking.plugin.PluginCfg; import com.ai.cloud.skywalking.util.StringUtil; public class EnhanceClazz4Interceptor { private static Logger logger = LogManager Loading Loading @@ -50,13 +51,18 @@ public class EnhanceClazz4Interceptor { private void enhance0(String interceptorDefineClassName) throws InstantiationException, IllegalAccessException, ClassNotFoundException { ClassNotFoundException, EnhanceException { logger.debug("prepare to enhance class by {}.", interceptorDefineClassName); InterceptorDefine define = (InterceptorDefine) Class.forName( interceptorDefineClassName).newInstance(); String enhanceOriginClassName = define.getBeInterceptedClassName(); if(StringUtil.isEmpty(enhanceOriginClassName)){ logger.warn("classname of being intercepted is not defined by {}.", interceptorDefineClassName); return; } logger.debug("prepare to enhance class {} by {}.", enhanceOriginClassName, interceptorDefineClassName); Loading Loading @@ -94,6 +100,9 @@ public class EnhanceClazz4Interceptor { * required by interceptorDefineClass. <br/> */ IAroundInterceptor interceptor = define.instance(); if(interceptor == null){ throw new EnhanceException("no IAroundInterceptor instance. "); } DynamicType.Builder<?> newClassBuilder = new ByteBuddy().subclass( originClass, ConstructorStrategy.Default.IMITATE_SUPER_CLASS); Loading