本日も乙

ただの自己満足な備忘録。

syslogに出力したBashコマンドをCloud Loggingに転送する

昨日 Ubuntu 20.04 LTS で Bash のコマンド履歴を syslog に出力する方法を紹介しました。

blog.jicoman.info

実際にログを確認するときに、一々サーバにログインするのが面倒ですよね。今回は要件で GCP(GCE インスタンス)だったので Cloud Logging(Stackdriver Logging)に syslog を転送するようにしたのでその方法を紹介します。

環境

  • GCP(GCE インスタンス)
  • Ubuntu 20.04.1 LTS
  • Bash 5.0.17

前回を参照にすでに Bash 履歴を syslog に出力できている前提ですすめます。

サービスアカウントへの権限付与

roles/logging.logWriter が必要なので、サービスアカウントに権限を付与してください。

Cloud Logging エージェントのインストール

ドキュメント通りにやります。

$ curl -sSO https://dl.google.com/cloudagents/add-logging-agent-repo.sh
$ sudo bash add-logging-agent-repo.sh
$ sudo apt-get update
$ sudo apt-get install google-fluentd
$ sudo apt-get install -y google-fluentd-catch-all-config-structured

再起動

$ sudo service google-fluentd restart

# 動作確認
$ sudo service google-fluentd status

Cloud Logging でログ確認

「VM Instance」から「All instance_id」を選択し、フィルタで「syslog」を選択すると syslog が転送されているのがわかります。

syslog-cloud-logging

HISTORY みたいにキーワードでフィルタをかけるとより見やすくなります。

syslog-cloud-logging

参考