在容器优化操作系统 (GCE) 上禁用 fluentd

在容器优化操作系统 (GCE) 上禁用 fluentd

我想fluentd在 Google 计算引擎上运行 Container-Optimized OS 的 VM 实例上禁用。

原因是它占用了大量的 RAM 来实现我不需要的功能。

$ ps aux --sort -rss
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        1040  0.7 49.1 5149544 294484 ?      Sl   15:07   0:03 /opt/google-fluentd/embedded/bin/ruby -Eascii-8bit:ascii-8bit /usr/sbin/google-fluentd --under-supervisor
root         286  0.2 12.3 780428 73844 ?        Ssl  15:07   0:00 /usr/bin/dockerd --registry-mirror=https://mirror.gcr.io --host=fd:// --containerd=/var/run/containerd/containerd.sock
root         791  0.4  9.0 304208 54068 ?        Ssl  15:07   0:01 /opt/google-fluentd/embedded/bin/ruby /usr/sbin/google-fluentd
root         334  0.0  7.3 609056 44100 ?        Ssl  15:07   0:00 /usr/bin/docker run --rm --name=stackdriver-logging-agent -v /etc/stackdriver/logging.config.d/:/etc/google-fluentd/config.d/ -v /var/log:/var/log 
root         333  0.0  7.3 535324 43820 ?        Ssl  15:07   0:00 /usr/bin/docker events

该流程与该服务相关systemd

$ systemctl status stackdriver-logging.service
● stackdriver-logging.service - Fluentd container for Stackdriver Logging
   Loaded: loaded (/usr/lib/systemd/system/stackdriver-logging.service; static; vendor preset: disabled)
   Active: active (running) since Mon 2019-08-26 12:27:03 UTC; 1min 6s ago
  Process: 335 ExecStartPre=/bin/mkdir -p /var/log/google-fluentd/ (code=exited, status=0/SUCCESS)
 Main PID: 337 (docker)
    Tasks: 7 (limit: 664)
   Memory: 35.6M
      CPU: 81ms
   CGroup: /system.slice/stackdriver-logging.service
           └─337 /usr/bin/docker run --rm --name=stackdriver-logging-agent -v /etc/stackdriver/logging.config.d/:/etc/google-fluentd/config.d/ -v /var/log:/var/log -v /var/lib/docker/containers/:/var/lib/docker/containers/ gcr.io/stackdriver-agents/stackdriver-logging-agent:0.2-1.5.33-1-1

但是如果我尝试使用以下命令禁用它:

$ sudo systemctl disable --now stackdriver-logging.service

虚拟机重新启动后,禁用状态不再生效。

答案1

尝试编辑自定义元数据值。您应该将其中两个设置为 true(google-logging-enabled 和 google-monitoring-enabled)。将它们设置为 false 并查看实例以检查其他容器(Stackdriver 相关)是否未运行。

答案2

Google Cloud CLI(Google Cloud SDK 283.0.0)对我有用:

gcloud compute instances add-metadata <instance_name> --metadata="google-logging-enabled=false"

答案3

只需使用控制台界面从实例中删除负责启动日志服务的元数据即可

在此处输入图片描述

或者去掉它使用gcloud compute instances remove-metadata cont3 --zone=europe-west3-c --keys=google-logging-enabled

我在一台新的虚拟机上测试了这一点ContainterOS 77,创建时没有选择“日志记录”。当我检查服务状态时,systemctl status stackdriver-logging.service它没有运行

然后我创建了另一个启用了日志记录的实例并检查服务状态 - 它按预期运行。然后我停止了实例,删除了密钥,启动了实例并检查了服务状态。它没有运行(也如预期的那样)。

如果由于某种原因你无法从元数据中删除密钥,你可以尝试添加启动脚本 sudo systemctl disable --now stackdriver-logging.service

相关内容