Ops エージェントを使用して Apache からログを収集する
Ops エージェントを使用して、Compute Engine 仮想マシン(VM)インスタンスにインストールされた Apache ウェブサーバーから収集された syslog ログを収集して表示する方法について説明します。このクイックスタートの手順と同様のプロセスを使用して、他のサードパーティ アプリケーションをモニタリングできます。
このクイックスタートでは、以下のことを行います。
- Compute Engine VM インスタンスを作成し、Ops エージェントをインストールします。
- Apache ウェブサーバーをインストールします。
- Apache ウェブサーバーの Ops エージェントを構成します。
- ログ エクスプローラでログを表示します。
- ログベースのアラートを作成します。
- アラートをテストします。
- クリーンアップします。
このタスクを Google Cloud コンソールで直接行う際の順を追ったガイダンスについては、「ガイドを表示」をクリックしてください。
始める前に
-
組織で定義されているセキュリティの制約により、次の手順を完了できない場合があります。トラブルシューティング情報については、制約のある Google Cloud 環境でアプリケーションを開発するをご覧ください。
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Cloud Monitoring, Cloud Logging, and OS Config APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
このガイドで既存のプロジェクトを使用する場合は、このガイドを完了するために必要な権限があることを確認します。新しいプロジェクトを作成した場合は、必要な権限がすでに付与されています。
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine, Cloud Monitoring, Cloud Logging, and OS Config APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1) - ログ閲覧者(
roles/logging.viewer) -
モニタリング編集者(
roles/monitoring.editor) -
OSPolicyAssignment 管理者(
roles/osconfig.osPolicyAssignmentAdmin) -
サービス アカウント ユーザー(
roles/iam.serviceAccountUser) -
Service Usage 管理者(
roles/serviceusage.serviceUsageAdmin) -
Google Cloud コンソールで [VM インスタンス] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Compute Engine」の結果を選択します。
- [インスタンスを作成] をクリックして、VM を作成します。ナビゲーション メニューのオプションを使用してインスタンスを構成します。
- [マシンの構成] オプションで、次の操作を行います。
- [名前] フィールドにわかりやすい名前を入力します。
- [マシンタイプ] プリセット プルダウンで、[共有コア] > [e2-small] を選択します。
- [OS とストレージ] オプションに [Debian GNU / Linux] と表示されていることを確認します。表示されていない場合は、[OS とストレージ] オプションをクリックし、[変更] をクリックします。[ブートディスク] ダイアログで、[バージョン] を [Debian GNU / Linux] に設定します。
- [ネットワーキング] オプションの [ファイアウォール] で、[HTTP トラフィックを許可する] と [HTTPS トラフィックを許可する] の両方を選択します。
- [オブザーバビリティ] オプションに [Ops エージェントをインストール] が表示されていることを確認します。表示されていない場合は、[オブザーバビリティ] オプションをクリックし、[モニタリングとロギング用の Ops エージェントをインストールする] を選択します。
- [作成] をクリックします。
[VM インスタンス] ページで、新しい VM を見つけて [接続] 列に移動し、[SSH] をクリックします。
接続できない場合は、SSH のトラブルシューティングをご覧ください。
パッケージ リストを更新するには、次のコマンドをクリップボードにコピーし、SSH ターミナルにコマンドを貼り付け、Enter キーを押します。
sudo apt-get updateSSH ターミナルで、「Reading package lists...Done」というメッセージを確認した後、次のコマンドを実行して、Apache2 ウェブサーバーをインストールします。
sudo apt-get install apache2 php7.0インストールを続行するように求められたら、「
Y」と入力します。インストールのコマンドが失敗した場合、sudo apt-get install apache2 phpを使用します。コマンド プロンプトが返されたら、[VM インスタンス] ページに移動し、VM の外部 IP アドレスを次の URL にコピーします。
http://EXTERNAL_IPApache ウェブサーバーに接続するには、新しいブラウザタブを開き、前のステップの URL を入力します。
ウェブサーバーが正常にインストールされると、ブラウザタブに Apache2 Debian のデフォルト ページが表示されます。
VM インスタンスの SSH ターミナルに移動します。ターミナルを開いていない場合は、次のようにします。
-
Google Cloud コンソールで [VM インスタンス] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Compute Engine」の結果を選択します。
- 新しい VM を見つけて、[SSH] をクリックします。
-
次のコマンドをコピーして、インスタンスのターミナルに貼り付け、Enter キーを押します。
このコマンドにより、Apache ウェブサーバーからログと指標を収集して取り込むための構成が作成されます。詳細については、Apache ウェブサーバーの Ops エージェントを構成するをご覧ください。
- Ops エージェントの再起動:
- エージェントを再起動するには、インスタンスで次のコマンドを実行します。
sudo systemctl restart google-cloud-ops-agent
- エージェントが再起動したことを確認するには、次のコマンドを実行して「Metrics Agent」と「Logging エージェント」のコンポーネントが起動したことを確認します。
sudo systemctl status "google-cloud-ops-agent*"
- エージェントを再起動するには、インスタンスで次のコマンドを実行します。
-
Google Cloud コンソールで [ログ エクスプローラ] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。
最新のログが [クエリ結果] ペインに表示されます。
ツールバーで [クエリを表示] が有効になっていることを確認します。
Apache ウェブサーバーのログを表示するには、次のクエリを作成して実行します。
Google Cloud プロジェクト セレクタから Google Cloud プロジェクトのリストを開き、Google Cloud プロジェクト ID をクリップボードにコピーします。
次の式で、コピーした ID を PROJECT_ID に貼り付け、クエリエディタにコピーします。
resource.type="gce_instance" logName=("projects/PROJECT_ID/logs/apache_access" OR "projects/PROJECT_ID/logs/apache_error")前のクエリが実行されると、
apache_accessログエントリとapache_errorログエントリのみが表示されます。[
クエリを実行 ] をクリックします。[クエリ結果] ペインにクエリの結果が表示されます。
-
Google Cloud コンソールで、[notifications アラート] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。
- ツールバーで [Edit Notification Channels] をクリックします。
- [通知チャンネル] ページで
[メール] までスクロールし、[新しく追加] をクリックします。 - メールアドレス(表示名
My emailなど)を入力して、[保存] をクリックします。 -
Google Cloud コンソールで [ログ エクスプローラ] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。
[クエリ結果] ツールバーで、[add_alert アラートを作成] をクリックします。ログベースのアラート ポリシーのペインが開きます。
[アラートの詳細] で、[アラート ポリシー名] フィールドに「
404 Not Found」と入力します。[Choose logs to include in this alert] で、次の操作を行います。
- ログフィルタのフィールドにあるコンテンツをすべて削除します。
次のクエリをコピーして、ログフィルタのフィールドに貼り付けます。
severity>=DEFAULT /help httpRequest.status=404上記のログフィルタでは、
severityのレベルがDEFAULT以上で、テキスト/helpが含まれ、httpRequestステータスが404のログエントリが検索されます。
[Set notification frequency and autoclose duration] セクションで、次のようにします。
- [通知の間隔] フィールドを [5 分] に設定します。
- [インシデントの自動クローズ期間] フィールドを [30 分] に設定します。
[通知するユーザーは?] で [通知チャンネル] メニューからメールアドレスを選択し、[保存] をクリックします。
VM インスタンスの SSH ターミナルに移動します。ターミナルを開いていない場合は、次のようにします。
-
Google Cloud コンソールで [VM インスタンス] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Compute Engine」の結果を選択します。
- 新しい VM を見つけて、[SSH] をクリックします。
-
サーバーで架空のページ
localhost/helpを検索するには、次のコマンドを実行します。curl localhost/helpターミナルに「
404 Not Found」というメッセージが表示されると、メール通知が送信されます。このプロセスが完了するまで数分かかります。受信するメール通知は、次の例のようになります。
新しいログエントリを表示するには、次のようにします。
-
Google Cloud コンソールで [ログ エクスプローラ] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Logging」の結果を選択します。
- ツールバーで [現在の位置に移動] をクリックします。
-
必要なロール
Compute Engine インスタンスの作成、Apache のインストール、指標データの表示に必要な権限を取得するには、プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
カスタムロールや他の事前定義ロールを通じて必要な権限を取得できる場合もあります。
VM インスタンスを作成する
Apache ウェブサーバーをインストールする
Apache ウェブサーバーを Compute Engine VM インスタンスにインストールする手順は次のとおりです。
Apache ウェブサーバーのログと指標を収集する
これらの手順では、Apache ウェブサーバーからログと指標を収集するように Ops エージェントを構成します。Apache ウェブサーバーのログを確認する
Google Cloud コンソールでログを表示するには、ログ エクスプローラを使用します。
Apache ウェブサーバーからログと指標を収集するように Ops エージェントを構成し、それらのログを表示しました。次のステップでは、ログに特定のパターンが発生したときに通知するアラート ポリシーを作成します。
メール通知チャンネルを作成する
アラート ポリシーを作成する前に、アラート ポリシーで使用する通知チャンネルを構成します。Cloud Monitoring は、メール、Slack、PagerDuty、Pub/Sub など、多くの異なる種類の通知チャンネルをサポートしています。詳細については、通知チャンネルを作成して管理するをご覧ください。メールで通知を受け取るには、次のようにします。ログベースのアラートを作成する
ログエントリに特定のメッセージが含まれているときに通知を受け取るには、ログベースのアラートを作成します。このセクションでは、ログエントリに「404 Not Found」というメッセージが含まれているときに通知されるよう、ログベースのアラートを作成します。
アラート ポリシーをテストする
アラート ポリシーをテストするには、次の操作を行います。
Apache ウェブサーバーからログと指標を収集するように Ops エージェントを構成しましたが、まだログを表示しただけです。Apache ウェブサーバーの指標を表示する方法については、Ops エージェントを使用した Apache ウェブサーバーの指標の収集: トラフィックの生成をご覧ください。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。
新しいプロジェクトを作成し、プロジェクトが必要でなくなった場合は、プロジェクトを削除します。
既存のプロジェクトを使用した場合は、次のようにします。
VM を作成した場合は、それを削除します。
- In the Google Cloud console, go to the VM instances page.
- Select the checkbox for the instance that you want to delete.
- To delete the instance, click More actions, click Delete, and then follow the instructions.
作成したアラート ポリシーを削除します。
-
Google Cloud コンソールで、[notifications アラート] ページに移動します。
このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。
- 作成したアラート ポリシーを選択して、[
削除 ] をクリックします。
-
次のステップ
Ops エージェントとサポートされている統合については、以下をご覧ください。
ログ エクスプローラでのログの表示については、ログ エクスプローラを使用してログを表示するをご覧ください。
ログ エクスプローラでのクエリについては、ログ エクスプローラでクエリを作成するをご覧ください。
Apache ウェブサーバーの指標を収集して表示する方法については、クイックスタート Ops エージェントを使用した Apache ウェブサーバーの指標の収集をご覧ください。
Monitoring と Cloud Logging との関係については、Monitoring をご覧ください。