アトミテック k.sasakiです。
先月、管理エージェントをOracle Cloud Agentのプラグインとしてデプロイできるようになりました。
Oracle Cloud Agent(以降OCAと表記)はOCIで作成したインスタンスにプリインストールされており、CPUやメモリといったリソースのメトリクスの出力など複数の機能をプラグインとして持ちますが、ここに管理エージェントが追加された形です。
20220314追記 本件はLinuxのみで、Windowsについては現時点でもリリースされていないようです。
今回は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の画面でしばらーく(40分くらい?)経過すると各プラグインが有効になりました。
管理エージェントが正常に動作しているかOCIコンソールのナビゲーションメニュー>監視および管理>管理エージェントで見てみます。
インスタンスが存在するコンパートメントに”Agent(ホスト名)”という名前で管理エージェントが生成されています。
エージェントの詳細を見てみます。
管理エージェントのプラグインはさらにこの画面から有効にできます。
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のプラグインのプロセスとは別ですが、プラグインの"カスタムログのモニタリング"で使用されるプロセスとなります。
管理エージェントのインストールパスは "/var/lib/oracle-cloud-agent/plugins/oci-managementagent/polaris/”となるようです。
Oracle Cloud Agentの全プラグインを無効化する
今度はプラグインを全て無効化してみます。
公式ドキュメントによると有効化や無効化の操作が反映されるまで最大10分かかるとのことなので、OCIコンソールからプラグインを全て無効化してしばし待ちます。
プラグインに対応したプロセスがすべて落ちた状態になるはずなのですが、実際は要塞(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
管理エージェントの画面を再度見てみます。
エージェントの状態が正しく反映されており、無効化できたようです。
おわりに
OCAに触れるとともに、OCAのプラグインとして管理エージェントをデプロイしてみました。
気づいた点を以下にまとめます。
管理エージェントのOracle Cloud Agent経由のデプロイについて
良い点としては導入が簡単という点です。個別に管理エージェントをインストールする手順だと、Javaいれて、インストールキーを発行して、管理エージェントをインストールしてを入れて、構成ファイル作成して読み込ませて〜とそれなりに面倒です。
OCAから管理エージェントを導入する場合、OCIコンソールから実施できるので今後の管理エージェントのインストールはこの手段が主流になっていくかもしれません。
また、Oracle Cloud Agentは定期的に自身のアップデートをするので、管理エージェント自体を管理する必要がなくなる(はず)。
注意点すべき点としては、個別に管理エージェントをインストールする場合とは、Javaのインストール周りや、管理エージェントの実行ユーザ、ログファイルや設定ファイルのパスなどに相違がある点です。
例えば、OCA自体がプリインストールされていないDBCSなどは、個別に管理エージェントを導入するので構成が変わります。
また、管理エージェントがインスタンスと同じコンパートメントに作成されるので、管理エージェントを特定のコンパートメントにまとめる構成としたい場合は個別にインストールが必要かもしれません。
Oracel Cloud Agentのその他の点
プラグインの管理画面からプラグインを無効にしてもプロセスが停止していないケースや、プラグインの管理画面のステータスがプロセスの状態と一致しないケースが見られました。
タイムラグがあって最終的に反映されるのかもしれませんが、いつ反映されるかわからないので、OS上でプロセスの状態とかログファイルを見ての確認をおすすめします。
以上、最後までご覧いただきありがとうございました。