问题一:刚接触chaosblade,目前看到的资料都是本机的故障测试,难道要在每个虚拟机节点上都安装chao
刚接触chaosblade,目前看到的资料都是本机的故障测试,难道要在每个虚拟机节点上都安装chao
参考回答:
可以看下官网文档先,不只是主机,我们还支持k8s、容器等
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/516788
问题二:访问chaosblade-box请求失败,日志报空指针
安装完成chaosblade-box后,登录chaosblade-box,页面返回http request failed with status code 500,日志中出现如下报错: 023-05-29 15:59:24.390 ERROR 25456 --- [nio-7001-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null at com.alibaba.chaosblade.box.controller.ExperimentController.initExperimentByAppCode(ExperimentController.java:207) ~[classes!/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_371] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_371] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_371] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_371] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:133) ~[spring-web-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at com.alibaba.chaosblade.box.filter.CrossFilter.doFilterInternal(CrossFilter.java:26) ~[classes!/:na] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.13.RELEASE.jar!/:4.3.13.RELEASE] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ~[tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_371] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_371] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.23.jar!/:8.5.23] at java.lang.Thread.run(Thread.java:750) [na:1.8.0_371]
参考回答:
根据您提供的日志信息分析,异常栈的根本原因是java.lang.NullPointerException
,这种错误通常是由于空引用变量的访问导致的。从日志中的堆栈信息看,这个错误发生在ExperimentController.initExperimentByAppCode()
方法中,该方法是chaosblade-box
的核心代码之一。
在这种情况下,您可以采取以下措施来尝试解决问题:
- 确认
chaosblade-box
的配置是否完整,尤其是与你应用相关的配置是否正确。请检查您的配置文件中,是否正确配置了与这个问题相关的参数。正确的配置信息和参数可以在chaosblade
的官方文档中获取。 - 检查
chaosblade-box
的依赖是否修复。该项目使用Java开发,可能存在一些依赖库存在缺陷或已经过时导致的问题。使用maven
或其他依赖库管理工具重新构建或更新依赖库。确保您使用的依赖库版本与chaosblade-box
的当前版本兼容。 - 查看您的开发环境是否具备执行
chaosblade-box
所需的全部组件和运行条件。chaosblade-box
需要一些特定的环境条件和组件来运行,如JDK版本、网络连接等。确保您已正确安装并配置运行所需的全部组件和条件。 - 查看
chaosblade-box
的日志文件并根据错误信息进行调试。错误日志和相关技术信息可以帮助定位此问题的根本原因。根据错误日志调查这个问题并根据错误信息执行相应的调整。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/516355
问题三:安装完成Chaosblade-box日志中一直报错某个数据库表不存在
安装完成Chaosblade-box后,日志中一直有如下报错: 2023-05-29 15:53:59.230 ERROR 25456 --- [_ClusterManager] c.a.c.b.d.s.quartz.ChaosJobStoreTX : ClusterManager: Error managing cluster: Failure identifying failed instances when checking-in: Table 'chaosblade.t_chaos_m_quartz_SCHEDULER_STATE' doesn't exist
org.quartz.JobPersistenceException: Failure identifying failed instances when checking-in: Table 'chaosblade.t_chaos_m_quartz_SCHEDULER_STATE' doesn't exist at org.quartz.impl.jdbcjobstore.JobStoreSupport.findFailedInstances(JobStoreSupport.java:3405) ~[quartz-2.3.0.jar!/:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport.clusterCheckIn(JobStoreSupport.java:3455) ~[quartz-2.3.0.jar!/:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport.doCheckin(JobStoreSupport.java:3325) ~[quartz-2.3.0.jar!/:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage(JobStoreSupport.java:3920) [quartz-2.3.0.jar!/:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.run(JobStoreSupport.java:3957) [quartz-2.3.0.jar!/:na] Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'chaosblade.t_chaos_m_quartz_SCHEDULER_STATE' doesn't exist
请问该报错如何解决?
参考回答:
这个错误提示是说运行的MySQL数据库里面没有找到 "chaosblade.t_chaos_m_quartz_SCHEDULER_STATE" 这个表。可能是因为在部署过程中没有正确初始化数据库表。
您可以尝试重新初始化数据库,使其包含所需的表。
具体地,您可以按照以下步骤来进行:
- 进入安装目录下的 "chaosblade-box" 文件夹。
- 执行以下命令,来初始化数据库:
./bin/chaosblade-box --db-init
执行该命令后,Chaosblade-box会根据配置文件中的数据库信息创建所需的数据库表。
- 重启 Chaosblade-box 服务,然后观察日志是否仍然存在该错误。
希望这些步骤可以帮助您解决问题。如果仍然存在问题,请查看Chaosblade-box的配置文件和MySQL数据库的配置是否正确设置,并检查MySQL数据库中是否存在正确的表。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/516350
问题四:问一下 chaosblade-box 启动的时候 初始化的DB数据是在哪配置的(比如:scene_
问一下 chaosblade-box 启动的时候 初始化的DB数据是在哪配置的(比如:scene_function等表里的数据)
参考回答:
chaosblade-box里有个表配置的文件,你全局搜一下就有了
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/514380
问题五:chaosblade无法在centos8上面运行么?看是没有netem这个模块
chaosblade无法在centos8上面运行么?看是没有netem这个模块
参考回答:
百度 安装一下kernel-modules-extra这个模块就可以了
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/508231