Kubernetesのアドベントカレンダーその3 14日目の記事として、New Relicを使ったkubernetes監視を紹介させてもらいます。
New Relicとkubernetes
New Relicはアプリケーションパフォーマンス監視(APM)から始まったSaaSで、今ではBrowserやMobileというエンドユーザーから、データベースやOSというInfrastructureまでend-to-endで可視化できるObservabilityプラットフォームを提供しています。最新のサービスも積極的に対応しており、kubernetesクラスターの監視はInfrastructure製品の中の一追加機能という扱いですが、機能面では独立した製品に並ぶほど機能を持っています。
kubernetesの監視は、kubernetes Cluster Explorerと呼ばれる基本の機能に加えて、New Relic Logsとの統合(Logs-in-Context)機能、kubernetes eventの監視、prometheusとの統合、Istioとの統合などの追加機能から構成されています。そのうちのいくつかはプレビュー機能ですが、今回は一通り全部の機能を紹介いたします。
kubernetes Cluster Explorer
kubernetes Cluster Explorerはこの図のように、NodeとPodの状態を一眼で可視化できるビューに代表されるクラスター全体の情報を把握できます。長方形がNode、その上にある六角形がPod、PodのうちNodeへのスケジュールに失敗しPendingな状態のものが中央に表示されています。
画面の下側ではリスト形式で見ることができます。
Node、Podそれぞれ選択すると詳細が表示されます。
Podを見る場合、Pod内のコンテナにAPM Agetが入っている場合、APMの情報とAPM詳細へのリンクが表示されます。
「Show pod events」でPod単位で発生しているイベントを見ることができます。
また、「See logs」のリンクをクリックすると、
そのPodから出力されたログを確認することができます。
クラスター単位でのイベントを確認することもできます。
このようにNew Relicのkubernetes cluster explorerでは視認性良く、クラスター全体の把握、Node、Pod単位での把握ができるようになっています。
ここからはインストールの手順を簡単に紹介しながら、それぞれの仕組みを説明します。
基本機能のインストールの手順はドキュメントを参照して欲しいのですが、基本的にはkube-state-metricsを配置し、newrelic-infraエージェントをdaemonsetとしてYAMLファイルから展開します。master node含むホスト側への操作が不要なので、Amazon EKS、AKS、GKEと言ったマネージドサービスもサポートしています。OpenShift Container PlatformやPivotal Container Serviesと言った商用kubernetes製品もサポートしています。
Pod内にAPMがある場合のリンク表示についてはこちらのドキュメントになります。Admission Controllerを利用して、リンクに必要な情報をPodが生成されるタイミングで追加します。
kubernetesのイベントを見るためには、こちらのドキュメントでイベントを転送するエージェンをインストールします。
kubernetesのログを転送する場合には、こちらのドキュメントでfluent bitのプラグインをインストールします。「個人的に一番皆さんの反応が良かった新機能Logs in Contextを紹介します」で紹介したLogs in ContextもAPM側で有効にして、Podの標準出力に出力するとこのプラグインにより転送され、Logs in Contextが利用できます。
さて、kubernetesの監視でPrometheusを利用されている方もいると思います。New RelicではPrometheusのデータを転送してNew Relic側で転送する機能もリリースしています。こちらのドキュメントをご参照ください。取得したデータを可視化する場合は、NRQLを利用しダッシュボードを適宜利用する必要があります。
さらにIstioを利用している場合、Istioのメトリクスを可視化するプラグインもOpen Sourceとして提供しています。「How To Monitor Istio With New Relic」とGitHubのリポジトリ「newrelic-istio-adapter」をご参照ください。
このように、New Relicではkubernetesの監視に力を入れており、PrometheusやIstioといったよく使われているオープンソースへの対応も進めています。
kubernetes cluster explorer含む、New Relic の全機能はこちらから無料アカウントでお試しいただけます。
The views expressed on this blog are those of the author and do not necessarily reflect the views of New Relic. Any solutions offered by the author are environment-specific and not part of the commercial solutions or support offered by New Relic. Please join us exclusively at the Explorers Hub (discuss.newrelic.com) for questions and support related to this blog post. This blog may contain links to content on third-party sites. By providing such links, New Relic does not adopt, guarantee, approve or endorse the information, views or products available on such sites.