openstack rabbitmq container enable rabbitmq_tracing

移步小站获取更好的体验。

环境:

OpenStack pike with kolla-ansible deployment
os: centos7.3

操作:

进入rabbitmq容器

docker exec -u root -it rabbitmq bash

使能rabbitmq_tracing插件

(rabbitmq)[root@control02 /]# rabbitmq-plugins enable rabbitmq_tracing
Plugin configuration unchanged.

Applying plugin configuration to rabbit@control02... nothing to do.

修改配置, 由于是kolla-ansible推的所以:vi /etc/kolla/rabbitmq/rabbitmq.config
改成类似如下内容:

[
 {kernel, [
   {inet_dist_use_interface, {172,20,128,202}},
   {inet_dist_listen_min, 25672},
   {inet_dist_listen_max, 25672}
 ]},
 {rabbit, [
   {tcp_listeners, [
     {"172.20.128.202", 5672}
   ]},
   {cluster_partition_handling, autoheal}
 ]},
 {rabbitmq_management, [
   {listener, [
     {ip, "172.20.128.202"},
     {port, 15672}
   ]},
   {load_definitions, "/etc/rabbitmq/definitions.json"}
 ]},
 {rabbitmq_clusterer, [{config, "/etc/rabbitmq/rabbitmq-clusterer.config"}]},
 {rabbitmq_tracing,
    [
     {directory, "/var/log/kolla/rabbitmq/rabbitmq_tracing"},
     {username, "openstack"},
     {password, "P1DT5ZrK9ldDd3hEoHYJUBd4i54HckuF7TiJ7dWt"}
    ]
 }
].
% EOF

主要是增加了

 {rabbitmq_tracing,
    [
     {directory, "/var/log/kolla/rabbitmq/rabbitmq_tracing"},
     {username, "openstack"},
     {password, "P1DT5ZrK9ldDd3hEoHYJUBd4i54HckuF7TiJ7dWt"}
    ]
 }

如果不加上面一段的话,你在页面上创建trace的话会出现如下的报错:
Something went wrong trying to start the trace - check the logs.
查看日志:/var/lib/docker/volumes/kolla_logs/_data/rabbitmq/rabbit-sasl.log会发现:

=SUPERVISOR REPORT==== 19-Jan-2020::16:12:01 ===
     Supervisor: {<0.3544.0>,rabbit_tracing_consumer_sup}
     Context:    start_error
     Reason:     {{badmatch,{error,{auth_failure,"Refused"}}},
                  [{rabbit_tracing_consumer,init,1,
                       [{file,"src/rabbit_tracing_consumer.erl"},{line,58}]},
                   {gen_server,init_it,6,[{file,"gen_server.erl"},{line,328}]},
                   {proc_lib,init_p_do_apply,3,
                       [{file,"proc_lib.erl"},{line,240}]}]}
     Offender:   [{pid,undefined},
                  {name,consumer},
                  {mfargs,
                      {rabbit_tracing_consumer,start_link,
                          [[{vhost,<<"/">>},
                            {name,<<"v6ip">>},
                            {format,<<"text">>},
                            {pattern,<<"#">>}]]}},
                  {restart_type,transient},
                  {shutdown,30000},
                  {child_type,worker}]

google发现了插件的github
然后通过增加上述的配置就好了

遇到的一些问题:

python写多了所以习惯了":",所以一开始出现了下面的问题

{"could not start kernel pid",application_controller,"error in config file \"/etc/rabbitmq/rabbitmq.config\" (1): bad term"}
could not start kernel pid (application_controller) (error in config file "/etc/rabbitmq/rabbitmq.config" (1): bad term)

我错误配置:

[
 {kernel, [
   {inet_dist_use_interface, {172,20,128,202}},
   {inet_dist_listen_min, 25672},
   {inet_dist_listen_max, 25672}
 ]},
 {rabbit, [
   {tcp_listeners, [
     {"172.20.128.202", 5672}
   ]},
   {cluster_partition_handling, autoheal}
 ]},
 {rabbitmq_management, [
   {listener, [
     {ip, "172.20.128.202"},
     {port, 15672}
   ]},
   {load_definitions, "/etc/rabbitmq/definitions.json"}
 ]},
 {rabbitmq_clusterer, [{config, "/etc/rabbitmq/rabbitmq-clusterer.config"}]},
 {rabbitmq_tracing,
    [
     {directory: "/var/log/kolla/rabbitmq/rabbitmq_tracing"},
     {username: "openstack"},
     {password: "P1DT5ZrK9ldDd3hEoHYJUBd4i54HckuF7TiJ7dWt"}
    ]
 }
].
% EOF

tips

rabbitmq使用erlang config来配置自己所以可以进入容器中使用如下命令检查自己的配置:

erl -noshell -eval 'io:format("~p~n", [file:consult("/etc/rabbitmq/rabbitmq.config")]).' -eval 'init:stop().'

更多推荐