使用New Relic・Pixie来对Kubernetes进行可视化

首先

这篇文章是New Relic Advent Calendar 2022的第四天的文章。

 

由於以前聽過New Relic的名字,但從來沒有使用過,這次的聖誕專題讓我決定好好體驗一下。
去年的聖誕專題中,@inductor先生介紹了Pixie,讓我對它很感興趣,所以我想多了解一下。

 

在某个环境中尝试

我们选择使用 Azure Kubernetes Service (AKS) v1.23.12 作为导入的 Kubernetes。

将New Relic引入Kubernetes

image.png
image.png

请输入以下项目的信息。

    • We’ll send your data to this account: データ送信先のNew Relicアカウントを選択します。1つしかアカウントがなければそのままでOKです。

 

    • Cluster Name: New Relic上で表示されるKubernetesクラスターの名前を入力します。今回はAKSという名前にしました。

 

    Namespace for the integration: New RelicのエージェントがデプロイされるKubernetesのNamespaceを入力します。今回はデフォルトのnewrelicのままとします。
image.png
image.png

在下一个画面上,将显示安装步骤。

    • New Relic CLIを使ってインストールする(Guided Install)

 

    • Helm 3でインストールする

 

    Manifestを生成する
image.png
"newrelic" has been added to your repositories
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "newrelic" chart repository
Update Complete. ⎈Happy Helming!⎈
namespace/newrelic created
NAME: newrelic-bundle
LAST DEPLOYED: Sat Dec  3 17:19:10 2022
NAMESPACE: newrelic
STATUS: deployed
REVISION: 1
TEST SUITE: None

让我们检查已部署Pod的启动状态。

kubectl get pod -n newrelic

只要所有的任务状态都是运行或完成,就没有问题了。

NAME                                                      READY   STATUS      RESTARTS      AGE
kelvin-655b8fdccd-cw9l8                                   1/1     Running     0             2m54s
newrelic-bundle-kube-state-metrics-547fc6d94f-fx7vt       1/1     Running     0             4m21s
newrelic-bundle-newrelic-pixie-fq8mg                      0/1     Completed   0             4m21s
newrelic-bundle-newrelic-prometheus-agent-0               1/1     Running     0             4m21s
newrelic-bundle-nri-kube-events-f8ffcd4db-vfgvt           2/2     Running     0             4m21s
newrelic-bundle-nri-metadata-injection-7f9d67967f-c8xw8   1/1     Running     0             4m21s
newrelic-bundle-nrk8s-ksm-8448567987-tcx6v                2/2     Running     0             4m21s
newrelic-bundle-nrk8s-kubelet-6sk84                       2/2     Running     0             4m21s
newrelic-bundle-nrk8s-kubelet-gdksv                       2/2     Running     0             4m21s
newrelic-bundle-nrk8s-kubelet-xd9gm                       2/2     Running     0             4m21s
pl-nats-0                                                 1/1     Running     0             3m3s
vizier-cloud-connector-fd69bb6cd-ksw6r                    1/1     Running     0             2m54s
vizier-metadata-0                                         1/1     Running     0             2m54s
vizier-pem-nl9mc                                          1/1     Running     0             2m54s
vizier-pem-tsb4f                                          1/1     Running     0             2m54s
vizier-pem-v8nj2                                          1/1     Running     0             2m54s
vizier-query-broker-5c5cc5c684-fcfrl                      1/1     Running     2 (53s ago)   2m54s
image.png

当您稍作等待,屏幕会显示“?我们已经成功接收到您的集群数据。”

image.png
image.png
image.png

精灵

Pixie是一个监控工具,目前是CNCF的沙盒项目。
其特点是使用eBPF进行信息收集,即使不对应用程序进行任何更改也可以获取各种信息。
如果使用默认设置安装New Relic,则会同时安装Pixie。在上述Helm命令中,还指定了–set pixel-chart.enabled=true选项。显示部分也已与New Relic的图形用户界面集成。

下面是关于Pixie能够查看的一些信息的一些精选介绍。

将HTTP请求可视化

image.png
image.png
image.png

框架图

image.png

上述的Pod是直接部署Docker官方的nginx而不做任何修改。这意味着可以获取这些信息而不需要在程序内嵌入代理。

SQL的可视化

image.png
image.png

本功能的目标是PostgreSQL和MySQL两种关系型数据库管理系统。

根据下面的列表来看,除了关系数据库管理系统(RDBMS)之外,似乎也支持对Redis/Kafka/Cassandra进行信息获取。

 

总而言之

只需安装New Relic(和Pixie),就可以轻松可视化Kubernetes的各种信息。这样即使不介入应用程序,也能获取信息,真是方便。

顺便提一点未解决的问题。
根据此页面上的图表内容,我想知道是否支持获取通过OpenSSL加密的通信内容,但在连接到PostgreSQL时,如果不禁用SSL,则无法获取信息。
我认为这可能是配置或环境问题,但由于时间紧迫,就在这里截止了。我相信会有专业人士给出指正,所以我会继续发帖…。

广告
将在 10 秒后关闭
bannerAds