诊断在kubernetes中运行的dotnet核心应用程序崩溃(通过Application Insights?)

问题描述 投票:0回答:1

我们只是从Azure辅助角色转移到Azure AKS。我们正在使用Application Insights监视我们的云服务。

到目前为止,是这样的:如果工作角色崩溃(例如StackOverflow,OutOfMemory ...),则会生成故障转储,并生成日志条目,并通过电子邮件通知我们。

如果pod在Kubernetes中崩溃,它将自动重新启动。但是,我们缺乏警报选项和分析信息,例如崩溃转储。

我们正在使用ApplicationInsights-Kubernetes,但这似乎没有提供这种功能。

有哪些选项可以通知崩溃并接收诊断信息?

.net-core azure-application-insights crash-reports crash-dumps azure-aks
1个回答
0
投票

核心转储管理的最佳做法是将那些转储从外部运送到核心转储服务器或外部存储。

最简单的方法是更改​​在其下生成核心转储的路径,然后您可以设置安装点以将该路径作为HostPath(本地易失性磁盘可能是/ mnt)

/mnt$ ll
total 28
drwxr-xr-x  3 root root  4096 Mar 24 19:24 ./
drwxr-xr-x 23 root root  4096 Apr  8 06:16 ../
-r--r--r--  1 root root   639 Mar 24 19:24 DATALOSS_WARNING_README.txt
drwx------  2 root root 16384 Mar 24 19:24 lost+found/
$> mkdir -p /mnt/cores
$> chmod a+rwx /mnt/cores
$> echo “/mnt/cores/core.%e.%p.%h.%t” > /proc/sys/kernel/core_pattern

然后您可以编写一个守护程序进程,该进程将挂载相同的文件夹并在/ mnt / cores下生成新文件时触发电子邮件。

通过利用Azure File类型的PVC和PV,还可以将核心转储集中在单个Azure File下。

https://docs.microsoft.com/en-us/azure/aks/azure-files-volume

这将使每个进程将其转储文件创建到网络存储。然后,您可以通过编程方式查看Azure文件(存储帐户)的容器,以检测新文件。或在存储使用量发生变化时设置警报(它告诉您有新数据)。这应该可以通过存储帐户的标准Azure Monitor功能来实现。]

我发现或多或少具有相同想法的文章,但是在GCP上,它应该非常相似。

https://medium.com/faun/handling-core-dumps-in-kubernetes-clusters-in-gcp-b1b2a54c25dc

© www.soinside.com 2019 - 2024. All rights reserved.