天天看点

几分钟内可在 Kubernetes 上搜索 Pod 日志

每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。

随着日志数据的重要性和庞大数量的增长,日志数据越来越像分析数据。大量的小型半结构化数据集,从数据中获取关键洞察力——日志和分析事件之间的界限一如既往地薄。

组织正在通过切换到像 ClickHouse 这样的 OLAP 存储来进行日志存储来适应。但是 OLAP 平台本质上是为 BI 类型的用例构建的数据库。这在整体体验上留下了巨大的差距。最重要的日志记录功能,如警报、相关性、深入了解事件等等,根本不可用。

这种差距导致 Parseable 是一种现代的、可扩展的、云原生的日志存储系统,它像OLAP 系统一样工作和扩展,但表现得像一个日志存储和可观察性平台。

日志记录是任何支持软件的业务的例行活动。日志有助于保持业务运行和客户满意。对于我上面讨论的模式,显然需要一个对开发人员友好、易于部署/维护的平台,该平台不会妨碍开发人员的工作,而是为他们铺平道路。 Parseable是一个简单、高效的日志存储和可观察性平台。我们的目标是:

数据和内容的所有权

部署和使用简单,随处部署。

Kubernetes 原生。

OLAP DB 类架构,记录平台类行为。

如有任何问题、评论或反馈,请前往Parseable 社区 Slack !

几分钟内可在 Kubernetes 上搜索 Pod 日志

Kubernetes 入门

介绍完之后,让我们看看如何设置和运行 Parseable。我们将看到使用 Parseable 获取可搜索日志是多么容易。

先决条件

S3 或兼容的存储桶作为存储层。

Kubectl 和 Helm 安装在你的机器上。

使用 Helm 在 Kubernetes 上安装

我们将使用 Parseable Helm 图表来部署 Parseable 图像。要开始演示模式,请使用以下命令:

helm repo add parseable https://charts.parseable.io/

kubectl create namespace parseable

helm install parseable parseable/parseable --namespace parseable --set parseable.demo=true

请注意,我们在此处以演示模式使用 Parseable ( --set parseable.demo=true),这意味着 Parseable 将使用公共托管的存储桶。我们使用它来了解 Parseable 的工作原理,但请确保将 Parseable 配置为使用您自己的 S3 存储桶。有关如何设置自己的存储桶的详细信息,请参阅配置选项部分。

访问图形用户界面

让我们首先将 Parseable 服务(由 Helm 图表创建)公开给 localhost,以便在localhost:8000.

您现在应该能够将浏览器指向http://localhost:8000并看到 Parseable 登录页面。在演示模式下,登录凭据设置为parseable和parseable。使用这些凭据登录。现在,您可能会看到一个空白页面,因为我们还没有发送任何数据。现在让我们向演示实例发送一些数据。

发送和查询日志

curl --location --request PUT 'http://localhost:8000/api/v1/logstream/<stream-name>' \

--header 'Authorization: Basic cGFyc2VhYmxlOnBhcnNlYWJsZQ=='

kubectl port-forward svc/parseable -n parseable 8000:80

在发送日志之前,我们需要创建一个日志流。使用 curl 创建如下所示的日志流,但请确保替换<stream-name>为您打算用于日志流的名称。

curl --location --request POST 'http://localhost:8000/api/v1/logstream/<stream-name>' \

--header 'X-P-META-meta1: value1' \

--header 'X-P-TAG-tag1: value1' \

--header 'Authorization: Basic cGFyc2VhYmxlOnBhcnNlYWJsZQ==' \

--header 'Content-Type: application/json' \

--data-raw '[

{

"id": "434a5f5e-2f5f-11ed-a261-0242ac120002",

"datetime": "24/Jun/2022:14:12:15 +0000",

"host": "153.10.110.81",

"user-identifier": "Mozilla/5.0 Gecko/20100101 Firefox/64.0",

"method": "PUT",

"status": 500,

"referrer": "http://www.google.com/"

}

]'

现在我们已经将数据发送到 Parseable 演示实例,切换到浏览器上的 Parseable 仪表板并选择您刚刚创建的日志流。您应该会看到我们刚刚发送的日志数据。

您还可以使用查询 API直接对日志数据运行 SQL 查询。请参阅此处的文档。

配置选项

要配置 Parseable 使其使用您的 S3 / 兼容存储桶,您可以通过 Helm 命令行(例如--set parseable.env.P_S3_URL=https://s3.us-east-1.amazonaws.com)设置变量或使用适当的值更改 values.yaml 文件。

这是配置正确 S3 端点的相关变量列表。

P_S3_URL=https://s3.us-east-1.amazonaws.com

P_S3_ACCESS_KEY=<access-key>

P_S3_SECRET_KEY=<secret-key>

P_S3_REGION=<region>

P_S3_BUCKET=<bucket-name>

P_USERNAME=<username-for-parseable-login>

P_PASSWORD=<password-for-parseable-login>

有关详细信息,请参阅 Parseable 文档。

希望这篇文章能帮助你对日志存储空间有一个新的认识。如果你觉得 Parseable 很有趣,请考虑在此处为 repo 添加星号:https ://github.com/parseablehq/parseable

继续阅读