Red Hat OpenShift はenterprise Kubernetes application platform とあるように、エンタープライズレベルの利用を想定しており、クラスターの管理機能作業を軽減でき、コンテナーベースのアプリケーションの迅速なデプロイを可能にするKubernetes製品です。OpenShiftは、kubernetesそのものだけではなく、統合コンテナーレジストリー、Red Hat Enterprise Linux CoreOS上で構築されたコンテナーホストとランタイム、source-to-imageや統合されたJenkinsと言った開発者のための機能まで兼ね備えています。

OpenShiftにより、クラスター管理やコンテナー化したアプリケーションの展開までの管理作業が軽減できます。そして、展開したアプリケーションを構成する、ノード、ポッド、そしてアプリケーション、サービスの健全性を計測するのにNew Relicが利用できます。New Relic Infrastructureのkubernetes統合については以前のブログ記事や、30秒の簡単な動画をぜひご覧ください。

New Relicでkubernetesを監視する

OpenShiftの公式認定パートナーとして、New Relic InfrastructureRed Hat Container Catalogから入手できます。New Relicのkubernetes統合はOpenShiftも公式にサポートしています。また、オンプレミス、パブリッククラウドの両方の環境に対応しています。

New Relic Infrastructure含めNew RelicはSaaSで提供しているため、監視データを保持するためのストレージや監視機能の可用性に気を取られることなく、kubernetesクラスターとその上で動くアプリケーションに専念することができます。New Relic のPrometheus統合機能により既存のPrometheusからデータを送信し可視化することができます。また、New Relic Logsを使うことで、kubernetesクラスターとアプリケーションの両方のログを同時に、ストレージを気にすることなく、分析することが可能になります。New Relic APMはコンテナーベースのアプリケーションをサポートしており、kubernetes統合とシームレスにつながっています。

簡単にOpenShift向けのkubernetes統合機能のインストール手順と機能紹介を行いたいと思います。

OpenShiftにNew Relicをインストールする

現在のところ、OpenShift 3.7と3.9および4.2と4.3に対してテストを行ったものをリリースしております。

https://docs.newrelic.com/docs/integrations/kubernetes-integration/get-started/introduction-kubernetes-integration

インストール手順についてはkubernetes統合のドキュメントにOpenShift固有の補足が説明してあります。cluster-admin権限のユーザーで作業するとスムーズに実行できるかと思います。インストールする前にnewrelicサービスアカウントに対してsccを追加してください。通常namespaceはdefaultになるはずです。

oc adm policy add-scc-to-user privileged system:serviceaccount:<namespace>:newrelic

その後通常のkubernetes統合手順にしたがって作業しますが、kubectlコマンドを実行するところでは、ocコマンドに置き換えて実行してください。

また、Control Plane(マスターノード)の監視もサポートしています。こちらもOpenShift4.xでは固有の構成が必要ですのでご確認ください。

https://docs.newrelic.com/docs/integrations/kubernetes-integration/installation/configure-control-plane-monitoring#openshift-4x-configuration

OpenShift Kubernetesクラスターの調査

New Relic Kubernetesクラスターエクスプローラーが開き、OpenShift環境内のすべてのポッド、ネームスペース、デプロイメント、およびノー​​ドが表示されます。

 

Podをクリックすると、リソース要求とリソース制限を実際の消費量と合わせて追跡することができます。

 

Kubernetes統合はクラスターのデフォルトのアラートポリシーを設定するので、ポッドがリソース消費制限に達している場合は通知を受けることができます。たとえば、クラスター内のポッドがメモリ制限の90%に達した場合、ポッドは黄色または赤で強調表示されます。デフォルトのアラートを含めて、New Relic Alertsを使うことで、クラスター、ノード、ポッドに加えてアプリケーション内部で計測した結果を基にアラートの条件と通知先を一元管理することができます。

また、Kubernetesのイベント統合機能をインストールすると、イベントも同じ画面で検索することができます。もちろん、イベントに対してアラートを設定することができるので、5分間イベントが1件以上発生していたら通知する、や特定のメッセージを含むイベントが発生したら通知する、ということも可能です。

 

同様にOpenShiftクラスターのログをNew Relicに転送することができます。OpenShiftはfluentdを使った組み込みのログ管理機能を持っています。その機能を利用した上で、fluentdの転送設定にNew Relic Logsを追加するか、もしくはNew Relic Logsのkubernetesプラグインを利用することができます。後者はKubernetesのHostPath機能に依存しているため、OpenShiftクラスター側でHostPathを許可する設定を行ってください。

New Relic LogsはLogs in Context機能により、Podなどからそれに関するログを表示するリンクを提供しています。クリックすることですぐにログを確認することができます。

OpenShiftクラスターで実行されているアプリケーションに関するAPMデータを調べます

コンテナーで動くアプリケーションに設定したAPMと、そのコンテナーを動かしているkubernetesクラスターの情報をリンクさせる統合機能もOpenShiftをサポートしています。この統合機能を有効にすると、ポッドをクリックして表示される画面にAPMが取得している簡略なデータと、より詳細を確認する場合のリンクが表示されます。

また、New Relicの分散トレーシング機能で表示される、分散トレースの個々のスパンをクリックすると、そのアプリケーションに関連するKubernetes属性をすばやく確認できます。たとえば、個々のスパンがどのポッド、クラスター、およびデプロイメントに属しているかを調べることができます。

New Relic Kubernetes統合は、New Relic Infrastructure Proレベル以上のサブスクリプションで追加料金なしに利用できます。

また、本エントリ中のスクリーンショットの一部は本社公式ブログMonitor Applications and Infrastructure In Red Hat OpenShift with New Relicより引用しております。


KubernetesやOpenShiftにも詳しいNew Relic 担当者にもう少し話を聞いてみたい場合はこちらまで!

ソフトウェアエンジニア、インフラエンジニアなど自社開発や自社運用の現場で経験を積んだのち外資系ソフトウェアベンダーでのテクニカルサポートを経て現職。New Relicユーザーだった経験あり。コミュニティでの登壇活動も多く、Microsoft MVPを7年連続受賞中。Microsoft Certified Azure Solutions Architect Expert。得意分野はC#をはじめとするソフトウェア開発、Kubernetes関連技術およびパブリッククラウド。 View posts by .