如何在RabbitMQ中使用rabbitmqctl命令设置lager.error_logger_hwm

col17t5w  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(241)

这个How to set error_logger_hwm in the new RabbitMQ .conf configuration file format?不适合我的情况,它运行rabbitmqRabbitMQ 3.7.10在Erlang 20.2.2上-- Ubuntu 16.04)由docker容器。
我可以在主机的目录下添加advanced.config,并在重启后自动更新config.json以生成**/var/lib/rabbitmq/config/generated/rabbitmq.config**。

root@*-pc:/etc/kolla/rabbitmq# cat advanced.config 
[
    {lager, [
        {error_logger_hwm, 4000}
    ]}
].

root@*-pc:/etc/kolla/rabbitmq# cat config.json 
{
    "command": "/usr/sbin/rabbitmq-server",
    "config_files": [
        {
            "source": "/var/lib/kolla/config_files/advanced.config",
            "dest": "/etc/rabbitmq/advanced.config",
            "owner": "rabbitmq",
            "perm": "0600"
        },
        {
            "source": "/var/lib/kolla/config_files/rabbitmq.conf",
            "dest": "/etc/rabbitmq/rabbitmq.conf",
            "owner": "rabbitmq",
            "perm": "0600"
        },
        ......

root@*-pc:/etc/kolla/rabbitmq# docker restart  rabbitmq 
rabbitmq
root@*-pc:/etc/kolla/rabbitmq# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'
{ok,4000}

问题:

  • 有没有什么命令可以set the environmentparameter比如'application:get_env(lager, error_logger_hwm).' forget the environmentparameter.在rabbitmq配置中也找不到任何线索。

# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(error_logger_hwm, 4000)]'

Error (argument validation): "syntax error before: "
Arguments given:
    eval [lager:set_loghwm(error_logger_hwm, 4000)]

Usage:
rabbitmqctl [-n <node>] [-l] [-q] eval <expr>

**它似乎也没有提高上限,我不知道这是什么意思。**参考RabbitMQ lager_error_logger_h dropped messages


# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'

{ok,50}

# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(H, 4000) || H <- gen_event:which_handlers(lager_event)].'

[{last_loghwm,50},ok]

# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'

{ok,50}

# docker exec rabbitmq rabbitmqctl eval '[lager:set_loghwm(H, 4000) || H <- gen_event:which_handlers(lager_event)].'

[{last_loghwm,4000},ok]

# docker exec rabbitmq rabbitmqctl eval 'application:get_env(lager, error_logger_hwm).'

{ok,50}
lhcgjxsq

lhcgjxsq1#

你可以试试

docker exec rabbitmq rabbitmqctl eval 'application:set_env(lager,error_logger_hwm,4000).'

也许它能起作用https://www.erlang.org/doc/man/application.html#set_env-2

lager:set_loghwm(error_logger_hwm, 4000)]

上面的代码不起作用,因为lager应用程序没有启动,并且无法调用lager的函数。https://hexdocs.pm/lager/lager.html#set_loghwm-2

相关问题