(一)无法访问activemq控制台的原因可能是以下三点
说明
:这里默认是端口正常开启(或者是防火墙关闭),且系统后台可以看到acitvemq在运行。
1.找不到主机
2. 配置文件中的存储限制值过大
3.jetty.xml中的host的值为127.0.0.1,导致只能主机访问。
(二)确定出错原因,以及解决方法。
启动activemq之后,查看日志文件,位置在activemq文件夹下的data目录下的activemq.log
tail data/activemq.log
情况1:若出现如下错误信息
2022-10-04 00:13:41,300 | WARN | Failed to get host name: java.net.UnknownHostException: centos7-1: centos7-1: unknown error | io.fabric8.insight.log.support.LogQuerySupport | main
java.net.UnknownHostException: centos7-1: centos7-1: unknown error
at java.net.InetAddress.getLocalHost(InetAddress.java:1484)
at io.fabric8.insight.log.support.LogQuerySupport.<init>(LogQuerySupport.java:55)
at io.fabric8.insight.log.log4j.Log4jLogQuery.<init>(Log4jLogQuery.java:72)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:145)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89)
可以发现是找不到主机,那么去修改etc下的hosts文件,在127.0.0.1行的尾部添加主机名称。
vi /ect/hosts
如下图:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 centos7-1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
情况2:然后再次启动activemq,如果出现了几个警告,如下图
那么就去修改大小,修改位置在activemq文件夹下的conf目录下的activemq.xml
vi conf/activemq.xml
找到systemUsage
标签,里面有storeUsage
和tempUsage
两个子标签,根据自己电脑的存储空间大小进行设置大小。
<!--
The systemUsage controls the maximum amount of space the broker will
use before disabling caching and/or slowing down producers. For more information, see:
http://activemq.apache.org/producer-flow-control.html
-->
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage percentOfJvmHeap="70" />
</memoryUsage>
<storeUsage>
<storeUsage limit="1 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="500 mb"/>
</tempUsage>
</systemUsage>
</systemUsage>
情况3:修改完之后重新启动activemq,发现日志文件没有再出现警告,有没有出现报错,正常启动。但是还不能访问控制台。那么极有可能是设置了只能主机访问的原因了。
修改在activemq的目录下的conf目录下的jetty.xml文件
vi conf/jetty.xml
可以看到默认的设置值为127.0.0.1,代表只有本机能访问
吧它改为0.0.0.0,代表所有主机可以访问控制台
<bean id="jettyPort" class="org.apache.activemq.web.WebConsolePort" init-method="start">
<!-- the default port number for the web console -->
<property name="host" value="0.0.0.0"/>
<property name="port" value="8161"/>
</bean>
最后终于可以登录控制台:
总结
遇到问题时,要去多查看日志文件,可以找到出错的原因,然后解决,这是一个自我学习和提升能力的过程。