优化的解决方案:使用 DataFlux 采集 Docker 监控指标并展示

优采云 发布时间: 2022-10-29 02:17

  优化的解决方案:使用 DataFlux 采集 Docker 监控指标并展示

  DataFlux是上海住云自主研发的一套统一的大数据分析平台,通过对任意来源、任意类型、任意规模的实时数据进行监测、分析和处理,释放数据价值。

  DataFlux 包括五个功能模块:

  - 数据包 采集器

  - Dataway 数据网关

  - DataFlux Studio 实时数据洞察平台

  - DataFlux Admin Console 管理后台

  - DataFlux.f(x) 实时数据处理开发平台

  为企业提供全场景数据洞察分析能力,具有实时性、灵活性、易扩展性、易部署性。

  安装 DataKit

  PS:以Linux系统为例

  第一步:执行安装命令

  DataKit 安装命令:

  DK_FTDATAWAY=[你的 DataWay 网关地址] bash -c "$(curl https://static.dataflux.cn/datakit/install.sh)"

  在安装命令中添加DataWay网关地址,然后将安装命令复制到主机执行。

  例如:如果DataWay网关的IP地址为1.2.3.4,端口为9528(9528为默认端口),则网关地址为:9528/v1/write/metrics,安装命令为:

  DK_FTDATAWAY=http://1.2.3.4:9528/v1/write/metrics bash -c "$(curl https://static.dataflux.cn/datakit/install.sh)"

  安装完成后DataKit会默认自动运行,并会在终端提示DataKit状态管理命令

  Docker 指标采集

  采集 docker 指标报告给 DataFlux

  打开DataKit采集源码配置文件夹(默认路径是DataKit安装目录的conf.d文件夹),找到docker文件夹,打开里面的docker.conf。

  设置:

  # Read metrics about docker containers

[[inputs.docker]]

## Docker Endpoint

## To use TCP, set endpoint = "tcp://[ip]:[port]"

## To use environment variables (ie, docker-machine), set endpoint = "ENV"

endpoint = "unix:///var/run/docker.sock"

<p>

## Set to true to collect Swarm metrics(desired_replicas, running_replicas)

## Note: configure this in one of the manager nodes in a Swarm cluster.

## configuring in multiple Swarm managers results in duplication of metrics.

gather_services = false

## Only collect metrics for these containers. Values will be appended to

## container_name_include.

## Deprecated (1.4.0), use container_name_include

container_names = []

## Set the source tag for the metrics to the container ID hostname, eg first 12 chars

source_tag = false

## Containers to include and exclude. Collect all if empty. Globs accepted.

container_name_include = []

container_name_exclude = []

## Container states to include and exclude. Globs accepted.

## When empty only containers in the "running" state will be captured.

## example: container_state_include = ["created", "restarting", "running", "removing", "paused", "exited", "dead"]

## example: container_state_exclude = ["created", "restarting", "running", "removing", "paused", "exited", "dead"]

# container_state_include = []

# container_state_exclude = []

## Timeout for docker list, info, and stats commands

timeout = "5s"

## Whether to report for each container per-device blkio (8:0, 8:1...) and

## network (eth0, eth1, ...) stats or not

perdevice = true

  

## Whether to report for each container total blkio and network stats or not

total = false

## docker labels to include and exclude as tags. Globs accepted.

## Note that an empty array for both will include all labels as tags

docker_label_include = []

docker_label_exclude = []

## Which environment variables should we use as a tag

tag_env = ["JAVA_HOME", "HEAP_SIZE"]

## Optional TLS Config

# tls_ca = "/etc/telegraf/ca.pem"

# tls_cert = "/etc/telegraf/cert.pem"

# tls_key = "/etc/telegraf/key.pem"

## Use TLS but skip chain & host verification

# insecure_skip_verify = false</p>

  配置好后重启DataKit生效

  验证数据报告

  完成数据采集操作后,我们需要验证数据采集是否成功并上报给DataWay,以便日后可以正常分析和展示数据。

  操作步骤:登录DataFlux-数据管理-指标浏览-验证数据采集是否成功

  码头工人指标:

  DataFlux 的数据洞察力

  根据获得的指标进行数据洞察设计,如:

  Docker监控视图

  基于自研DataKit数据(采集器),DataFlux现在可以对接200多种数据协议,包括:云数据采集、应用数据采集、日志数据采集,时序数据上报和常用数据库的数据聚合,帮助企业实现最便捷的IT统一监控。

  汇总:千万级可观测数据采集器--iLogtail代码完整开源

  简介:2022年6月29日,阿里云iLogtail迎来开源后的第一次重大更新,正式发布全功能iLogtail社区版。在本次更新中,所有 C++ 核心代码都是开源的。该版本是第一个在内核功能方面与企业版保持一致的版本。开发者可以构建 iLogtail 云原生可观测数据采集器,性能媲美企业版。本次发布增加了日志文件采集、容器文件采集、无锁事件处理、多租户隔离等重要特性,以及基于Pipeline的全新配置方式,全面提升了可用性社区版。和性能,欢迎开发者关注,共同打造。

  作者 | 讯飞,叶默

  

  来源 | 阿里开发者公众号

  2022年6月29日,阿里云iLogtail迎来开源后的第一次重大更新,正式发布全功能iLogtail社区版。在本次更新中,所有 C++ 核心代码都是开源的。该版本是第一个在内核功能方面与企业版保持一致的版本。开发者可以构建 iLogtail 云原生可观测数据采集器,性能媲美企业版。本次发布增加了日志文件采集、容器文件采集、无锁事件处理、多租户隔离等重要特性,以及基于Pipeline的全新配置方式,全面提升了可用性社区版。和性能,欢迎开发者关注,共同打造。

  可观测性数据采集挑战

  

  可观察性是通过检查系统输出来测量系统内部状态的能力。该术语起源于几十年前的控制理论,由匈牙利出生的工程师鲁道夫卡尔曼首次提出。在分布式 IT 系统中,可观察性通常使用各种类型的遥测数据(日志、指标和跟踪)来测量基础设施、平台和应用程序,以了解它们的运行状态和流程。这些数据的采集通常由一个采集Agent 完成,该Agent 与观察到的对象一起运行。在基于云原生和微服务的现代系统架构下,这些观察对象比以往更加分散、数量更多、变化更快,使得采集Agent面临以下挑战:

  高性能、低开销:现代应用程序往往运行在数据中心、公共云和边缘的数千台服务器、虚拟机和容器中,采集Agent 的每一点性能开销都会被计入 Zoom在数千次。目前很多开源代理的设计都更注重功能而非性能。单核处理性能一般在2-10M/s左右,我们希望达到100M/s的单核性能。在采集目标增加、数据量增加、采集延迟、服务器端异常等情况下,开源代理的内存将呈现爆发式增长,我们希望即使在各种环境下,内存可以在较低的水位。采集稳定准确,多级故障隔离:可观察性需要至少比被观察系统可靠一个数量级。数据采集Agent的稳定性,除了保证数据本身的准确性采集外,还需要保证不影响业务应用,否则会带来灾难性的后果。另一方面,无论问题如何发生,都需要尽可能地隔离问题。比如一个Agent上有多个采集配置,一个配置问题不能影响其他配置。企业级管控*敏*感*词*配置:可观测数据应用广泛。企业内部通常有大量配置。需要代理支持集中化和自动化的配置管理能力,而不是手动登录机器修改配置,并确保配置期间的数据重新加载。不丢失也不重。当Agent有多个采集配置时,合理安排资源。高优先级配置需要优先分配内存带宽等资源,保证低优先级配置不被“饿死”。之后,就有足够的 Burst 能力快速赶上数据。更原生、更友好的K8s支持:K8s提供强大的运维部署、弹性伸缩、故障恢复能力,极大的方便了分布式系统的开发和管理。但是,日志的问题采集 也来了。K8s多样化的数据输出使得同一个Agent需要同时支持采集主机日志、容器日志、容器stdout等数据源。K8s业务部署的弹性伸缩能力要求Agent具备动态发现和标记容器的能力,同时如何保证数据采集

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线