id:s-oomori です。今回は「Oracle Cloud Advent Calendar 2018」の12/4担当となってます。
Oracle CloudのLogサービスは!?ということで、Oracle Management Cloud(OMC)にLog Analyticsというサービスが提供されてましたので検証してみました。
全ての機能が同じではないでしょうが、AWSだとCloudWatch、AzureだとPortal+Monitorにあたるでしょうか。
Log Analyticsについて
簡単に書くと、各ログを集約し、検索・監視・モニタリングしたり機械学習機能を使って分析し問題点を提示してくれたりもするサービスだと受け取ってます。
しかも、エージェントをインストールできれば、Oracle Cloud Infrastructure(OCI)のインスタンスだけでなく、オンプレの端末や、他社クラウドのインスタンスのログも集約することが可能です。
※HTTPSで暗号化されて転送されるようです。
オラクル社から日本語ドキュメントOracle Log Analyticsスタート・ガイドが提供されてます。
目標
今回はvol.1として、Managemenet Cloudインスタンスを構築し、Log AnalyticsでOCIインスタンスのログや、AWSインスタンスログを集約しログを検索する。
※現時点ではOCI(Generation2/最新のOCI)からはManagemenet Cloudサービスがでてこないので、Gen1(旧Ver)のダッシュボードから作成できます。
※Oracle CloudはGen1とGen2があるのでちょっとややこしいですが、日本DCが来るまでにできるだけGen2に集約されることを祈ってます。。。
手順
手順9.のOMCエージェントをインスタンスに導入する際に、OCIのインスタンス(Linux)が全てエラーでNGとなり、AWSのインスタンス(Linux)に導入しログを収集しました。
解決した際に追加で更新するかvol.2等に記載させていただきます。
※AWSのWindows ServerインスタンスでもNGでした。(こちらはOCIのインスタンスとは違うエラーでした)
1. ダッシュボードのサービス一覧から「Management Cloud - North America Management Cloud 2」を選択
2. インスタンス画面で、「インスタンスの作成」を選択
3. 「Create Instance」画面で、下図の通り必要値を入力/選択し、「次」を選択
※今回もインスタンスのStatus変更通知を受け取る用にEmailは入力しておきます。(任意)
4. 内容を確認して「作成」を選択
5. インスタンス画面で作成したインスタンスが作成(6分位でした)されたら、下図の「OMC URL」を選択
6. Management Cloudのホーム画面が表示されます。
※なんと日本語!!
7. Logを集約するためのエージェントをダウンロードする前に登録キーを作成
・「管理」-「エージェント」-「登録キー」タブ - 名前欄にキーの名前(任意)を入力 - 「新規キーの作成」を選択
・下図の青枠の通りキーが生成されます。(インストール時に使用するAGENT_REGISTRATION_KEYになります。)
・キーをダウンロードすることも可能です。
8. Logを集約するためのエージェントをダウンロード
・「管理」-「エージェント」-「ダウンロード」タブ - エージェント・タイプで「クラウド・エージェント」を選択 - 該当OSのエージェントをダウンロード
・下図青枠の情報も控えておきます。(インストール時に使用するTENANT_NAMEとOMC_URLになります。)
9. Oracle Management Cloudエージェントを展開
※OCIのLinuxインスタンスにインストールできなかったため、今回はAWSのLinuxインスタンスで展開してます。
・該当インスタンスにSCP等でエージェントをアップロードしておきます。
・zipファイルを展開します。
[ec2-user@ip-10-10-1-10 ~]$ unzip -d cloudagent cloudagent_linux.x64_1.35.0.zip [ec2-user@ip-10-10-1-10 ~]$ cd cloudagent
10. 展開したファイルの「agent.rsp」ファイル内の必要パラメータを入力
・必須パラメータ:TENANT_NAME、AGENT_REGISTRATION_KEY、AGENT_BASE_DIRECTORY、OMC_URL
※AGENT_BASE_DIRECTORY=Agentをインストールするディレクトリを指定します。(例:/omc_agent , c:¥omc_agent)
[ec2-user@ip-10-10-1-10 cloudagent]$ ll 合計 455952 -rwxrwxr-x 1 ec2-user ec2-user 31796 9月 29 16:58 AgentDeployment.sh -rwxr-xr-x 1 ec2-user ec2-user 10359 9月 29 16:58 AgentInstall.sh -rw-rw-r-- 1 ec2-user ec2-user 2315 9月 29 16:58 agent.rsp -rw-rw-r-- 1 ec2-user ec2-user 1525 9月 29 16:57 agent_software_build.xml -rw-rw-r-- 1 ec2-user ec2-user 466688884 9月 29 16:58 agentcoreimage.zip -rw-rw-r-- 1 ec2-user ec2-user 226 9月 29 16:58 agentimage.properties -rwxr-xr-x 1 ec2-user ec2-user 145976 9月 29 16:58 unzip [ec2-user@ip-10-10-1-10 cloudagent]$ vi agent.rsp
・各パラメータの説明は以下参照 docs.oracle.com
11. 「AgentInatall.sh」を管理者権限で実行してエージェントをインストール
・以下のようにエラー無く「Cloud Agent」がスタートすれば完了です。NGの場合は、エラー内容が表示され同ディレクトリ内にログが出力されます。
[ec2-user@ip-10-10-1-10 cloudagent]$ sudo ./AgentInstall.sh Unzipping agent software, this may take some time... The agent is being installed using a 'root' user. Installing Cloud Agent... Cloud Agent parameter validation started... Cloud Agent pre-requisite checks started... Cloud Agent base directory creation started... Security artifacts download started... Cloud Agent setup started... Registering Cloud Agent... Starting Cloud Agent... Cloud Agent started. Cloud Agent installation completed. Cloud Agent post installation checks started. Cloud Agent is up and running. Cloud Agent is communicating to Oracle Management Cloud. Cloud Agent is monitored in Oracle Management Cloud. Cloud Agent post installation checks completed. To start Cloud Agent upon Operating System restart include '/omc_agent/agent_inst/bin/omcli start agent' in the start-up scripts. For further details please refer http://www.oracle.com/pls/topic/lookup?ctx=en/cloud/paas/management-cloud&id=deploy_agent. [ec2-user@ip-10-10-1-10 cloudagent]$
・OMCエージェント画面の「クラウド・エージェント」タブ内に、エージェントをインストールしたホストが表示されます。
12. エンティティを構成
※ここからオラクル社のドキュメントを無視して、私の直感で設定してます。 ・「管理」-「エンティティ構成」-「エンティティの構成」を選択し、下図青枠の「エンティティ・タイプ」-「フィルタ」を選択
・「エンティティ・タイプ」-「Servers,Storage and Network」-「Host(Linux)」を選択し、「適用」を選択
・OMCエージェントで追加されたHostが表示されるので、先程追加したHostを選択し、「選択」を選択
13. ログ管理のエンティティを設定
・「ログ管理」-「エンティティ」-「ログ収集用のエンティティの関連付け」-「エンティティの選択」で「エンティティの追加」から先程構成したエンティティを選択し、「続行」を選択
・「ログ・ソースの選択」で今回は「すべて選択」にチェックを入れ、「続行」を選択
※見るからに不要なログ・ソースがあるので、必要なログ・ソースを設定したほうが良いかもしれません。
・「確認」で「エンティティの関連付け」を選択
・追加されたエンティティが表示されます。
・追加されたエンティティをクリックすると、ログ・ソースを収集状況が確認できます。
・しばらくすると下図の用に「成功」のステータスが確認できます。
14. ダッシュボードからログを確認
・「ダッシュボード」-「Host Operations」を選択
・下図のように追加したエンティティからログを収集しダッシュボードに出力できていることがわかります。
・期間を長く(今回は1年)し、2018年8月19日の棒グラフをクリックしてみます。
・「ログ・エクスプローラ」が表示され、その日のログが確認できます。
・クエリに「and 'error'」を追記して、「実行」を選択し、ログの中に「error」が記載されているログを表示させることができます。
※大文字と小文字の両方認識するようです。
今回は、ここまでです。
ここまでの機能を使う場合は、課金はログ分析版(B89163)になるようです。
エラーでまさかのOCIインスタンスがNGだったので、次回はエラーについて〜Analytics機能をもう少し活用して、ログの問題点を自動で洗い出したり、アラートを出したりできるようですので、引き続き検証していきたいと思います。
参考
【情報】
・Oracle Cloud その2 Advent Calendar 2018もあるのでこちらも楽しみです。 adventar.org
【今回のエラー内容】
・Windows Serverは最初インストールパス(AgentInstall.bat)の文字制限があり、Cドライブ直下に短い名前のフォルダー配下に置かないと実行されません。
→23文字以内(未満かもです)にすれば実行可能
・Windows Serverではまた違うエラーも出力され、FQDNホスト名が返るようにして(IPで登録できないみたい)な内容でした。
→hostsに名前を登録したら解消しました。
・OCIのLinuxインスタンスは、AWSのLinuxインスタンスと同じ「agent.rsp」内容で「AgentInstall.sh」を実行しているのですが、「OMC_URLパラメータ値またはGATEWAY_HOSTおよびGATEWAY_PORT値が指定され、正しいことを確認してください」のようなログがでているので、GATEWAY値の設定が必要なのかもしれません。
→オラクル サポートに問い合わせしてみます。