こんにちは、Instanaユーザー会の運営をお手伝いさせていただいております、カワノです!
この記事はInstana Observability Advent Calendar 2023 11日目のエントリになります。
12月少し前になってAdvent Calendarの空き枠があったので、勢いで3日連続で枠いただいてしまいました。やっちまった。。。
そんなわけで3日もたせるために内容は薄めになっちゃってますが、よろしくお願いします。
はじめに
さて。今回のネタについて。
みなさん、AzureのシステムをInstanaでモニタリングしてますか?
私の界隈では ホスト(Linux, Win)、K8s/OpenShift, AWSへの適用、という話はよく聞くのですが、Azureに関しては、あまり耳にしたことがないのです。
きっとたまたまなのですが、とはいえなかなかAzureを触る機会がないままなので、あえてここで導入可視化にチャレンジしてみようと思います。
というわけで、「AzureをInstanaで可視化してみた」シリーズ、いってみよー!
Azureモニタリング対象 (2023/12/09 時点)
まずは、Azureのモニタリング対象を確認してみます。
Instanaに監視させたいテクノロジーがサポート対象かどうかは、以下のサイトから確認することができます。
サポートされるテクノロジーの構成およびモニター
https://www.ibm.com/docs/ja/instana-observability/current?topic=configuring-monitoring-supported-technologies
このページをAzure
でブラウザ検索すればAzureのサポートテクノロジーを確認できますが、
Azureのアイコンをクリックすることで、モニター対象サービス一覧を見ることもできます。
https://www.ibm.com/docs/ja/instana-observability/current?topic=agents-microsoft-azure
モニタリング対象サービスとして、以下が記載されていますね。
- API Management
- App Service
- CosmosDB
- MySQL
- Redis Cache
- SQL Database
- SQL Elastic Pool
- SQL Server
- Storage
- Function (Instana日本語docだと
関数
、Azureポータルでは関数アプリ
って表現してるのですが、個人的にしっくりこない…のでFunctionって書きました)
他にも、 Azure 仮想マシン(VM) や AKS(Azure Kubernetes Service) もサポートしています。仮想マシンはホストのページで、AKSはKubernetesのページでそれぞれ内容を確認できます。
注) Instanaは日々進化しています! 必ず最新ドキュメントをご確認ください。
初めの一歩:Azure仮想マシン上のWordPressの可視化
さて、まずはAzure仮想マシン上のアプリケーションをInstanaで監視してみましょう。
今回は、典型例としてWordpress一式を1つのVMに構築します。
Wordpress導入 参考blog
今回は、以下のblogの記事を参考に構築させていただきました。ありがとうございます。
Azure IaaS環境にWordPressを構築してみる 1〜4
https://cloud.nissho-ele.co.jp/blog/azure-iaas-create-wordpress/
https://cloud.nissho-ele.co.jp/blog/azure-iaas-create-wordpress-2/
https://cloud.nissho-ele.co.jp/blog/azure-iaas-create-wordpress-3/
https://cloud.nissho-ele.co.jp/blog/azure-iaas-create-wordpress-4/
VM作成、Wordpress導入
OS選択
Azure仮想マシンをInstanaで監視する場合は、Azure仮想マシンにInstana Agentが導入可能なOSを選択していることが条件となります。
ドキュメントは以下です。
https://www.ibm.com/docs/ja/instana-observability/current?topic=agents-installing-host-agent-linux
今回は、私の好みで Ubuntu Linux 22.04 を選択します。
VM作成
Azure Portal で VMを作成します。
詳細手順は参考blogを確認いただくとして、以下の内容でVMを作成しています。
(VMのスペックは参考blogと同じです)
Wordpressインストール
次に、Wordpressをインストールしてみましょう。
上記参考blogを参照しつつ、導入します。
この記事ではそのステップは省略しますが、以下に気を付ければ、大体15分くらいでインストールは完了しました。
- apacheの設定ファイルを編集する時は
sudo
を忘れずに - mysqlのGRANTに使うユーザ名は、
'wordpressuser'@'localhost'
とlocalhostまで明記すること - DB名は
T_WORDPRESS_SITEINFO
で統一
導入後 Webサイトにブラウザでアクセス、初期設定を行うと以下の画面が表示されます。
これでWordpressのインストールは完了です。
ちなみに、Wordpressはざっくり php(apache) と MySQL で構成されています。これがInstanaでどう見えるか?楽しみですね。
Instana Agent インストール
Azure仮想マシンをInstanaで監視する場合、他のLinuxホストと同様にVMにAgentをインストールします。
Instanaのホーム画面右上の「エージェントのデプロイ」ボタンをクリックし、「エージェントのインストール」画面を開きます。
今回は、UbuntuをOSとして選択していますので、OS > Linuxを選択します。
選択肢はデフォルトのままで、「インストールしてサービスとして開始 (SystemD ベースのシステムでのみサポート)」をチェックします。(環境要件によって選択ください)
VMにSSHログインし、管理者ユーザでコピーしたワンライナーを貼り付け、実行します。
この時、何か問題が発生したらまずこちらをチェックしてみましょう。
https://www.ibm.com/docs/ja/instana-observability/current?topic=agents-installing-host-agent-linux#potential-problems-during-installation
導入後の動作確認は<instana agent install dir>/bin/status
を実行します。<instana agent install dir>
のデフォルト値は/opt/instana/agent
です。
…runningと出ていれば動作OKです。
以上でInstana Agentのインストールは完了です。
Agent可視化確認
まずはAgentがInstanaにどのように認識されているか確認しましょう。
Instanaのメニューから「その他」>「エージェント」を選択します。
インストールしたAgentがリストに表示されています。FQDNリンクをクリックすると、詳細を見ることができます。
Agentが導入されているホストのCPU負荷やメモリ、Agentの利用しているJVM(Instana AgentはJavaVM上で動作しています)の情報を見ることができます。
画面の一番下まで行くと、Instana Agentのログを見ることもできます。(このログは、ホストにインストールされたInstana Agentのログファイルの中身です)
これを見ると、MySQLの情報を取得しようとしてErrorになっていることがわかります。
'root'@'localhost'
でアクセスしようとしてエラーになっています。
確かに、Instana AgentにMySQLの接続情報を何も書いていません。
Instanaは、デフォルトで'root'@'localhost'
にパスワード無しで接続を試みるようです。
今回はパスワードを設定していますので、Instana Agentの設定ファイルを更新します。
設定ファイルは<instana agent install dir>/etc/instana/configuration.yaml
です。
設定ファイルでmysql
で検索し、コメントアウトを外し、接続情報(ユーザ名とパスワード)を入力します。(ここでは例としてrootを指定しています)
編集が終わったら、再度InstanaのAgentログ画面を見てみましょう。
Agentは設定ファイルが更新されたら自動的に設定ファイルのreloadを行なってくれます。
ログにもそれは記載されています。
数分経過してもMySQLのエラーが出なくなりました。無事、MySQLに接続されているようです。
Agentの設定はOKのようです。
では、アプリケーション・ホストの可視化状況を見てみましょう。
インフラストラクチャー・アプリケーション可視化確認
インフラストラクチャー
では、Instanaのエージェント画面から「メニュー」>「インフラストラクチャー」を選択します。
そうすると、インフラストラクチャーマップが表示されますが、Instana Agentの情報は表示されたままになります。
そうすると、今回Instana AgentやWordpressをインストールしたホスト(VMのOS)の情報が表示されるようになります。
「ダッシュボードを開く」でホスト(VMのOS)情報の詳細を参照できます。
アプリケーション
インフラが可視化できたことは確認できましたが、アプリはどうでしょう。
本当はダッシュボード左上の「スタック」からアプリケーションサービスを辿ることができるのですが、今回私が利用しているInstana環境は全世界のさまざまなエンジニアが検証に利用している環境であるため、非常に重くなってしまっています。(=待ちが長い…ので、待ってられない)
そのため、今回はVM名「instana-vm1」からサービスを絞り込み、アプリケーション「instana-vm1」を作ります。
「メニュー」>「アプリケーション」をクリックし、右下の「+ADD」から「新規アプリケーション・パースペクティブ」を選択します。
フィルタ条件Host > Name = instana-vm1
を設定・作成します。
数分後、以下の様にアプリケーション内にサービス一覧としてphpやMySQLを確認できるようになりました。
こんな感じで、wordpress(php+mysql) on Azure仮想マシンも、簡単に可視化できることが確認できました。
こちら、Azure仮想マシン上で行いましたが、実はこの手順はクラウドと関係のないLinuxサーバでも全く同じ手順を辿ることができます。
(そういう意味だと、あんまりAzure感出せなかったですねw)
皆さんも、ぜひ可視化を試してみてはいかがでしょうか?