如何将lager.err_logger_hwm设置为rabbitmq by rabbitmqctl命令

发布于 2025-01-23 15:32:32 字数 2837 浏览 4 评论 0原文

如何设置error_logger_hwm在新的rabbitmq .conf配置文件格式?不适合我的情况下运行的rabbitmq rabbitmq 3.7.7.10 on Erlang 20.2.2 -ubuntu 16.04 )由Docker容器。

我可以在主机目录中添加 advaths.config ,然后更新 config.json 用于生成/var/lib/rabbitmq/rabbitmq/config/generated/rabbitmq.config < /strong>在重新启动后自动。

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}

问题:

# 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删除消息

# 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}

This How to set error_logger_hwm in the new RabbitMQ .conf configuration file format? not suitable for my situation which running rabbitmq(RabbitMQ 3.7.10 on Erlang 20.2.2 -- Ubuntu 16.04) by docker container.

I could add advanced.config in the host's directory, and update config.json for generating /var/lib/rabbitmq/config/generated/rabbitmq.config automatically after restart it.

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}

Question:

  • Is there any command to set the environment parameter such as 'application:get_env(lager, error_logger_hwm).' for get the environment parameter. Also can't find any clue at rabbitmq configuration.
# 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>

It also seems doesn't raise the limit, I don't know what's that meaning. Reference from 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}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

以酷 2025-01-30 15:32:32

您可以尝试

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

使用它。
https://www.erlang.org/man/application。 html#set_env-2

lager:set_loghwm(error_logger_hwm, 4000)]

上面的代码不起作用,因为lager应用程序未启动,lager无法调用。

You can try

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

Maybe it works.
https://www.erlang.org/doc/man/application.html#set_env-2

lager:set_loghwm(error_logger_hwm, 4000)]

The above code does not work because lager application doesn't start and lager's function can't be called. https://hexdocs.pm/lager/lager.html#set_loghwm-2

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文