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秒の簡単な動画をぜひご覧ください。

https://blog.newrelic.co.jp/new-relic-basics/how-to-monitor-kubernetes-with-newrelic/

[embed]https://www.youtube.com/watch?v=EJPyUFQx4dY&feature=youtu.be[/embed]

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 担当者にもう少し話を聞いてみたい場合はこちらまで!