【GCP/SRE】Linux、GCP のログ周り


Linux ログファイルシステム一覧

rsyslogd ロギングシステムを通じて、以下のファイルなどに保存されていきます。

/var/log/messages
/var/log/secure
/var/log/dmesg
/var/log/cron
/var/log/wtmp
/var/log/lastlog
/var/run/utmp

/var/log以下のログ一覧 - Qiita
必読!ログファイルとディレクトリ | Think IT(シンクイット)

journalctl

これらのログは、journald でも管理しているので、journalctl コマンドで検索することができます。

$ journalctl -e // 最新のログ確認
$ journalctl -xe // 詳細のログ確認
$ journalctl -f // tail的な

journalctl 最低限覚えておくコマンド - Qiita
journalctl コマンドの使い方 - Qiita

情報収拾するために必要なコマンド

uname -a

カーネルのバージョンとアーキテクチャ一覧を表示する

df

マウントしているファイルシステムと使用量を表示する

free

メモリーとスワップ領域の使用量を表示する

top

CPUを使用しているプロセスを表示する

w

ログイン中のユーザーを表示する

lscpu

CPUのコア数などの情報を表示する

GCP ログシステム

デフォルト

デフォルトの Logging エージェントのログ  |  Google Cloud

syslog

Linuxのsyslog入門 - oneのはてなダイアリー

構成


エージェントの構成  |  Cloud Logging  |  Google Cloud より引用

fluentdGCP 用に拡張したものを使用しています。
また fluentdin_tail プラグインを通して、ログファイルを読み取っています。

Linux だと /etc/google-fluentd/google-fluentd.conf に設定ファイルが存在しています。

in_tail プラグイン

  • tail -F に類似した振る舞いをする
  • 末尾からデータを読み込む

fluentdのin_tailプラグインの動作について理解する | DEBUGLIFE
fluentd tailプラグインの仕様について - oranie's blog

journalctl

ログの検索は下記で実行できます。
sudo journalctl -u konlet-startup

pos

/var/log/google-fluentdls コマンドを実行してみると、下記のようなアウトプットになります。

test@vm-1 /var/log/google-fluentd $ ls
audit.log.pos  containers.log.pos  docker.log.pos  journal.pos  system.log.pos

ファイルがどの位置までログが転送されたか確認する方法(fluentd/FlyData) - Qiita

inode(アイノード)

ls -i [ファイル名]inode を確認することができます。
inodeとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ログクエリ

基本的なログクエリ  |  Cloud Logging  |  Google Cloud