こんにちは。torippy1024です。
本日は、Splunk Observability Cloudの外形監視機能であるSynthetic Monitoringを試してみます。
構成図
いつもの通り、構成図です。
Public Locationというのは、特にユーザーが意識する必要はありません。
Splunk Observability Cloudが利用しているデータセンター内にあるサーバーやコンテナと思われる場所で、Synthetic Monitoringは、ここから指定されたサーバーにインターネット経由で監視を実行しているようです。
ほとんどAWS上で稼働しているようです。ロケーションとIPアドレスは以下で公開されています。
https://help.splunk.com/en/splunk-observability-cloud/monitor-end-user-experience/synthetic-monitoring/advanced-test-configurations/public-locations
ちなみに、インターネットから接続できない環境に対しては、Private Locdationと呼ばれるコンテナを社内システム側に立て、そこから社内環境に監視をすることもできるそうです。こちらは本記事では対象外とします。
https://help.splunk.com/en/splunk-observability-cloud/monitor-end-user-experience/synthetic-monitoring/advanced-test-configurations/private-locations
Splunk Observability Cloudのトライアル環境申し込み
Splunk Observability Cloudは、以下よりトライアルを申し込みできます。
例によって、申し込んだ日を含めて15日間利用可能です。
この中に、Synthetic Monitoring機能も含まれています。
最初にリージョンを指定し、そこから必要項目を入力します。
入力したメールアドレス当てにURLとパスワードが送付されるようなので、メールアドレスだけは再確認して申し込みしましょう。
Splunk Observability Cloudを利用した外形監視(Synthetic Monitoring)の方式
Synthetic Monitoringの監視の方式は、大きく3つあります。
アップタイムテスト、APIテスト、ブラウザテストの三つです。
https://help.splunk.com/en/splunk-observability-cloud/monitor-end-user-experience/synthetic-monitoring/set-up-splunk-synthetic-monitoring#choose-a-test-0
(最近、SSLテストというSSL証明書に関する期限や正当性を確認するテストも追加されたようです。ただ今回は記載を省略します)
監視方式の比較表は以下です。一般的にも知られたことだとは思いますが、アップタイムテスト < APIテスト < ブラウザテストの順で高機能になっていきます。
| テスト | 実行可能な内容 | 用途 | メリット | デメリット |
|---|---|---|---|---|
| アップタイムテスト | HTTP/TCP/UDPでURLリクエストを行う。 | DNSを含めた応答時間やレスポンスコードをテストできる。 | 軽量で素早くWebサイトのダウンタイムを検知可能/コストが安価 | 高機能な監視を行えない/実施可能なテスト内容はcurlコマンドで実行可能なものと似ている |
| APIテスト | REST APIのエンドポイントを実行する。 | HTTPステータスコードやレスポンスボディの値をテストできる。 | スクリプトを作成せずにAPIテストが可能/最初のAPIで取得したトークンを使用して別のAPIを実行するなどのステップを構成することも可能 | APIベースの監視となるため、ページ表示速度など、UI上の問題は監視不可 |
| ブラウザテスト | 実際のユーザーによるウェブページアクセスをシミュレートする。 | ブラウザを使用して場合のユーザーエクスペリエンス(画面遷移時間やレスポンスなど)をテストできる。 | リンクをクリックする、フォームフィールド入力するなど、ユーザー体験ベースのテストをすることが可能。 | 複雑なテストを行う場合、設定手順が複雑になる/テスト頻度が高いとリソース負荷が高くなる/コストが高額。 |
Synthetic Monitoringの実装手順
各テストの実装手順は以下のリンクにあります。
今回は、一番わかりやすいブラウザテストを試してみることにします。
以下のユーザー操作をブラウザテストにて実装することを考えます。
| ステップ | 操作内容 |
|---|---|
| 1 | Splunk CloudのURLにアクセスする。 |
| 2 | ユーザー名をフォームに入力する。 |
| 3 | パスワードをフォームを入力する。 |
| 4 | サインインボタンをクリックする。 |
| 5 | ログインが成功し、ホーム画面が表示されることを確認する。 |
ではやってみましょう。
Splunk Observability Cloudにログインし、左のメニューより「Synthetics」を選択します。
「Create new test」から「Browser test」を選択します。
Create browser test画面が表示されます。今回はSplunk Cloudのトライアル環境へのログイン操作を監視してみることにします。
以下を指定した後、「Edit steps or synthetic transactions」を選択します。
| 項目 | 値 |
|---|---|
| Name | splunkcloud |
| Locations | AWS-Tokyo, AWS-Osaka |
「Broswer test content」画面が表示されます。
ここで、実行するブラウザテストの詳細を指定することができます。
「+Step」というボタンをクリックすると、ステップが追加できます。
それぞれのステップに以下を入力します。
Step1
| 項目名 | 値 |
|---|---|
| Go to url | https://< stackname >.splunkcloud.com/en-US/account/login |
Step2
| 項目名 | 値 |
|---|---|
| Fill in field | - |
| Wait for up to | 50 ms |
| Selector - XPath | //*[@id="username"] |
| Value - Text | //healthcheck-user |
Step3
| 項目名 | 値 |
|---|---|
| Fill in field | - |
| Wait for up to | 50 ms |
| Selector - XPath | //*[@id="password"] |
| Value - Text | (パスワードを指定) |
Step4
| 項目名 | 値 |
|---|---|
| Click | - |
| Wait for up to | 50 ms |
| Selector - XPath | /html/body/div[2]/div/div/div[1]/form/fieldset/input[1] |
Step5
| 項目名 | 値 |
|---|---|
| Assert element visible | - |
| Wait for up to | 10000 ms |
| Selector - XPath | /html/body/header/div/div/a/span[2]/i |
補足:XPathの調べ方
上記の設定手順では、XPathを指定して値を入力したりクリックを実行する要素を指定しています。
XPathは、Google Chromeを使っていれば容易に取得することができます。
WebサイトをChromeで開き、XPathを取得したい要素(フォームやアイコン)を選択し、右クリックして「検証」を選択します。
すると、Developer Toolが開かれ、選択した要素が背景青で反転されます。
反転された要素を再び右クリックして「コピー」-「XPathをコピー」を選択すると、XPathをコピーすることができます。
設定した外形監視のテスト
設定が完了したら、右上の「Try now」の隣のにある接続元リージョンを「AWS-Tokyo」に指定し、その後「Try now」を選択します。
設定した外形監視が実際に行われ、結果が下に表示されます。
実際にブラウザでアクセスした場合の画面遷移がシミュレートされて表示されることも確認できます。
動画のように見ることも可能です。
いつ、どのようなタイミングでWebサイトから何の画像をダウンロードできたのか、などもわかります。
設定が完了したら、「Return test」を選択して前の画面に戻り「Save」を選択します。
(途中で別の画面に遷移してしまうと保存されないので注意してください)
実際に実行されたテストの実行履歴は、同じく左のメニューの「Synthetics」を選択し、テスト名である「splunkcloud」を選択すれば参照できます。
参考資料
Introduction to Splunk Synthetic Monitoring(公式ドキュメント)
https://help.splunk.com/en/splunk-observability-cloud/monitor-end-user-experience/synthetic-monitoring/introduction-to-splunk-synthetic-monitoring
外形監視とは?(Splunk公式ブログ)
https://www.splunk.com/ja_jp/blog/observability/synthetic-monitoring.html
外形監視はなぜ必要か?(Splunk公式ブログ)
https://www.splunk.com/ja_jp/blog/devops/why-you-need-synthetic-monitoring.html








