はじめに
こんにちは。株式会社 Panta Rhei のインフラ構築を担当している岸本です。
今回は、弊社で行っているCompute Engine(以下GCE)からログを取得する方法を紹介しようと思います。
ログはOps Agentを使用して収集します。
Ops Agentは、GCE インスタンスからテレメトリーを収集しCloud Logging, Cloud Monitoringに送信するエージェントです。
手順
手順は以下です。
- Ops Agent のインストール
- ログのテストファイル作成
- Ops Agentのconfig変更
- Cloud Loggingでテストファイルのログを確認
では早速始めていきます。
1. Ops Agent のインストール
インターネットと接続ができるGCEにSSHし、以下のコマンドを実行します。
curl -sSO https://dl.google.com/cloudagents/add-google-cloud-ops-agent-repo.sh
sudo bash add-google-cloud-ops-agent-repo.sh --also-install
引用:公式ドキュメント
コンソール画面のCloud Monitoringから
ダッシュボード >> VMインスタンス >> エージェント
が以下のように表示されている確認します。
また以下のコマンドでOps Agentのステータスを確認します。
sudo systemctl status google-cloud-ops-agent
2. ログのテストファイル作成
では次にGCEの中でテストログファイルを作成します。
// テストログディレクトリを作成
sudo mkdir /var/log/testlog/
// テストログファイルを作成
sudo touch /var/log/testlog/test.log
3. Ops Agentのconfig変更
テストログをCloud Loggingに流す設定を記述します。
sudo vim /etc/google-cloud-ops-agent/config.yaml
記述する内容ですが、以下のようにします。
logging:
receivers:
test_log:
type: files
include_paths:
- /var/log/testlog/test.log
processors:
parse_test_log:
type: parse_json
service:
pipelines:
test_log_pipeline:
receivers:
- test_log
processors:
- parse_test_log
記述内容は、こちらからご確認いただけます。
最後に設定ファイルを変更したので、Ops Agentを再起動します。
sudo systemctl restart google-cloud-ops-agent
4. Cloud Loggingでテストファイルのログを確認
では、最後にテストファイル書き込みして、Cloud Loggingにログがきていることを確認します。
Cloud Logging, Cloud Monitoringにログを送る場合、GCEのサービスアカウントに以下のロールが必要です。(公式ドキュメント)
- モニタリング指標の書き込み
- ログ書き込み
テストログファイルに以下のように書き込みを入れます。
echo "This is test log entry" | sudo tee -a /var/log/testlog/test.log
コンソール画面でロギングに出力されているのか確認します。
以下のようにログを取得できていれば成功です。
実際には、Ops Agentのconfig.yamlの設定を変えて、GCEのsyslogなどのログファイルを追加すれば同じように出力されます。
まとめ
いかがでしたでしょうか。
弊社ではこのようにロギングを行なっております。
ログを取得することはサービスの安定稼働につながるので、Ops Agentでログ取得を試してみてはいかがでしょうか?