お問い合わせ
お問い合わせ
TOPICS
更新情報
ホーム > ブログ > Oracle Cloud > Oracle Cloud Agentで管理エージェントのデプロイができるようになりました

Oracle Cloud Agentで管理エージェントのデプロイができるようになりました

ブログ
2021.09.16
topic

アトミテック k.sasakiです。

先月、管理エージェントをOracle Cloud Agentのプラグインとしてデプロイできるようになりました。

Oracle Cloud Agent(以降OCAと表記)はOCIで作成したインスタンスにプリインストールされており、CPUやメモリといったリソースのメトリクスの出力など複数の機能をプラグインとして持ちますが、ここに管理エージェントが追加された形です。

今回はOCAについて触れた上で、OCAのプラグインを有効にして、OS側でプロセス状態を確認して、最終的に管理エージェントの動作状態をOCIコンソール側から確認します。

Oracle Cloud Agent(OCA)とは

公式ドキュメントでの記載を引用しておきます。

Oracle Cloud Agentは、コンピュート・インスタンスで実行されているプラグインを管理する軽量プロセスです。プラグインは、パフォーマンス・メトリックを収集し、OS更新をインストールし、その他のインスタンス管理タスクを実行します。
インスタンスでプラグインを使用するには、Oracle Cloud Agentソフトウェアをインスタンスにインストールし、プラグインを有効にして、プラグインを実行する必要があります。特定のプラグインを使用する前に、追加の構成タスクを実行することが必要な場合があります。
------引用元 Oracle Cloud Agentを使用したプラグインの管理

Oracle Cloud Agentのプラグイン一覧

様々な機能がOCAのプラグインという形でリリースされており、2021年9月10日時点で合計8つのプラグインがラインナップされています。

私なりに各プラグインについて簡単に説明を入れた一覧が以下になります。ドキュメントにも各プラグインの説明がありますので、併せてご覧ください

プラグイン名 機能
脆弱性スキャン インスタンスを定期的にスキャンして潜在的なセキュリティの脆弱性や更新が必要なパッケージのレポート
OS管理サービス・エージェント OCIコンソール上からのLinuxのパッケージの更新やWindowsUpdateの更新を行う
カスタム・ログのモニタリング OCI LoggingにOS内のテキストファイルやWindowsイベントを取り込む
コンピュート・インスタンスの実行コマンド OCIコンソール上から、インスタンス内でスクリプトを実行する
コンピュート・インスタンスのモニタリング インスタンスの容量およびパフォーマンスに関するメトリックを出力する
ブロック・ボリューム管理 Ultra High Performanceレベルのブロックボリュームのパフォーマンスを最適化するために必要
要塞 パブリックIPアドレスのないインスタンスへのSSH接続やSSHポート転送によるRDPを可能にする
管理エージェント LoggingAnalyticsなど複数のサービス用にOSから様々なデータを収集する(本プラグインにさらに複数のプラグインがある)

管理エージェントにも複数のプラグインが追加されており、例えば、Java管理サービスはこっちのエージェントのプラグインです。

  • APM PROMETHEUS SCRAPER
  • DATABASE MANAGEMENT AND OPERATIONS INSIGHTS SERVICE
  • JAVA MANAGEMENT SERVICE
  • LOGGING ANALYTICS
  • OPERATIONS INSIGHTS HOST SERVICE
  • RESOURCES MONITORING

Oracle Cloud Agentの全てのプラグインを有効にしてインスタンスを作る

管理エージェントだけ有効にすれば良いのですが、せっかく(?)なのでインスタンス作成の際に全プラグインを有効にします。

今回は割愛しますが、有効化する際に動的グループやポリシーの設定が必要なものもありますので、実際に試す際はドキュメントを見てからがお勧めです。

検証に使ったインスタンスは下記です。

  • OS :Oracle Linux 7.9
  • イメージ・ビルド : 2021.07.27-0
  • シェイプ :VM.Standard.E4.Flex 1 core OCPU, 2 GB memory

インスタンス作成時にプラグインを有効にする場合は拡張機能から設定します。

oracle cloud agent plugin setup
デフォルトで有効なプラグイン

これを、全て有効にしてインスタンス作成!

oracle cloud agent plugin setup
プラグインを全部有効化!

インスタンス詳細>Oracle Cloud Agentの画面でしばらーく(40分くらい?)経過すると各プラグインが有効になりました。

oracle cloud agent plugin managemet
全プラグインが実行中になりました。

管理エージェントが正常に動作しているかOCIコンソールのナビゲーションメニュー>監視および管理>管理エージェントで見てみます。

インスタンスが存在するコンパートメントに”Agent(ホスト名)”という名前で管理エージェントが生成されています。

management Agent dashboard
エージェントがダッシュボードに表示されています。

エージェントの詳細を見てみます。

management agent dashboard detail
エージェントが確認できました。

管理エージェントのプラグインはさらにこの画面から有効にできます。

management agent dashboard detail
管理エージェント プラグインのデフォルト状態

OSにログインしてプロセスの起動状態を確認してみます。
OCAのプロセスうんぬんについては公開情報があるわけではないので、私調べです。

ps axf -o user,pid,command

[出力]OCAに関係する出力だけ抜粋
oracle-+ 27882 /usr/libexec/oracle-cloud-agent/agent
oracle-+ 27919  \_ /usr/libexec/oracle-cloud-agent/plugins/bastions
oracle-+ 27944  \_ /usr/libexec/oracle-cloud-agent/plugins/gomon/gomon
oracle-+ 27953  \_ /usr/libexec/oracle-cloud-agent/plugins/oci-blockautoconfig/oci-blockautoconfig
oracle-+ 27965  \_ /usr/libexec/oracle-cloud-agent/plugins/oci-managementagent/oci-managementagent
oracle-+ 28003  |   \_ oracle.polaris.oca.main -Xmx128m -Doracle.polaris.fips.approved_only=false -start /var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris
oracle-+ 27978  \_ /usr/libexec/oracle-cloud-agent/plugins/oci-vulnerabilityscan/oci-vulnerabilityscan
root     27987  \_ /usr/bin/sudo -n /usr/libexec/oracle-cloud-agent/plugins/osms/osms-agent
root     27992  |   \_ /usr/libexec/oracle-cloud-agent/plugins/osms/osms-agent
root     27993  |       \_ /usr/libexec/oracle-cloud-agent/plugins/osms/osms-agent
root     28141  \_ /usr/bin/sudo -n -u ocarun /usr/libexec/oracle-cloud-agent/plugins/runcommand/runcommand
ocarun   28143  |   \_ /usr/libexec/oracle-cloud-agent/plugins/runcommand/runcommand
oracle-+ 28152  \_ /usr/libexec/oracle-cloud-agent/plugins/unifiedmonitoring/unifiedmonitoring
oracle-+ 27931 /usr/libexec/oracle-cloud-agent/updater/updater
root     28237 /opt/unified-monitoring-agent/embedded/bin/ruby /opt/unified-monitoring-agent/embedded/bin/fluentd --log /var/log/unified-monitoring-agent/unified-monitoring-agent.log --daemon /var/run/unified-monitoring-agent/unified-monitoring-agent.pid --log-rotate-size 1048576 --log-rotate-age 10
root     28240  \_ /opt/unified-monitoring-agent/embedded/bin/ruby -Eascii-8bit:ascii-8bit /opt/unified-monitoring-agent/embedded/bin/fluentd --log /var/log/unified-monitoring-agent/unified-monitoring-agent.log --daemon /var/run/unified-monitoring-agent/unified-monitoring-agent.pid --log-rotate-size 1048576 --log-rotate-age 10 --under-supervisor

若干わかりづらいのが gomonですがこれはコンピュート・インスタンスのモニタリングに対応するプロセスです。

unified-monitoring-agentのプロセスはOCAのプラグインのプロセスとは別ですが、プラグインの"カスタムログのモニタリング"で使用されるプロセスとなります。

Oracle Cloud Agentの全プラグインを無効化する

今度はプラグインを全て無効化してみます。

公式ドキュメントによると有効化や無効化の操作が反映されるまで最大10分かかるとのことなので、OCIコンソールからプラグインを全て無効化してしばし待ちます。

disable all plugin
全てのプラグインを個別のスイッチで無効化

プラグインに対応したプロセスがすべて落ちた状態になるはずなのですが、実際は要塞(bastions)など一部のプロセスについて停止に失敗していたので、OS再起動を実施。

再起動後にプロセス確認したところ、プラグインのプロセスが落ちた状態になりました。

※pidが変わってしまったので表示オプションから除外

ps axf -o user,command

[出力]OCAに関係する出力だけ抜粋
root     /opt/unified-monitoring-agent/embedded/bin/ruby /opt/unified-monitoring-agent/embedded/bin/fluentd --log /var/log/unified-monitoring-agent/unified-
root      \_ /opt/unified-monitoring-agent/embedded/bin/ruby -Eascii-8bit:ascii-8bit /opt/unified-monitoring-agent/embedded/bin/fluentd --log /var/log/unifi
root     /usr/sbin/anacron -s
oracle-+ /usr/libexec/oracle-cloud-agent/agent
oracle-+ /usr/libexec/oracle-cloud-agent/updater/updater

管理エージェントの画面を再度見てみます。

Management Agent silent
ステータスがサイレント状態

エージェントの状態が正しく反映されており、無効化できたようです。

おわりに

OCAに触れるとともに、OCAのプラグインとして管理エージェントをデプロイしてみました。

気づいた点を以下にまとめます。

管理エージェントのOracle Cloud Agent経由のデプロイについて

良い点としては導入が簡単という点です。個別に管理エージェントをインストールする手順だと、Javaいれて、インストールキーを発行して、管理エージェントをインストールしてを入れて、構成ファイル作成して読み込ませて〜とそれなりに面倒です。

OCAから管理エージェントを導入する場合、OCIコンソールから実施できるので今後の管理エージェントのインストールはこの手段が主流になっていくかもしれません。

また、Oracle Cloud Agentは定期的に自身のアップデートをするので、管理エージェント自体を管理する必要がなくなる(はず)。

注意点すべき点としては、個別に管理エージェントをインストールする場合とは、Javaのインストール周りや、管理エージェントの実行ユーザ、ログファイルや設定ファイルのパスなどに相違がある点です。

例えば、OCA自体がプリインストールされていないDBCSなどは、個別に管理エージェントを導入するので構成が変わります。

また、管理エージェントがインスタンスと同じコンパートメントに作成されるので、管理エージェントを特定のコンパートメントにまとめる構成としたい場合は個別にインストールが必要かもしれません。

Oracel Cloud Agentのその他の点

プラグインの管理画面からプラグインを無効にしてもプロセスが停止していないケースや、プラグインの管理画面のステータスがプロセスの状態と一致しないケースが見られました。

タイムラグがあって最終的に反映されるのかもしれませんが、いつ反映されるかわからないので、OS上でプロセスの状態とかログファイルを見ての確認をおすすめします。

以上、最後までご覧いただきありがとうございました。


この記事が気に入ったら
「いいね!」

この記事を書いた人


関連コンテンツ

CONTACT お問い合わせ

Cloudiiのサービスやプロダクトについて
興味をお持ちの方は、
お気軽にお問い合わせください。