IT监控:Grafana vs Datadog详细比较


IT监控:Grafana vs Datadog详细比较

在使用Grafana或Datadog之前,请了解两个监控工具在支持的数据源,可视化等功能方面的比较。


IT监控系统有两种类型:接近原始数据源并为特定目的而构建的系统,以及位于这些监控系统之上的Grafana和Datadog等系统。


Grafana和Datadog在本质是聚合器,可以从其他数据收集工具(例如Splunk,Elasticsearch,Graphite Web和Amazon CloudWatch)中收集数据。两种IT监控工具都使用或包括:


  • 开放的API;
  • 自定义查询语言;
  • 创建变量和脚本的能力;
  • 分析;
  • 深入研究错误并跟踪用户交互的能力;
  • 社区贡献,包括图表。


这些功能使数据分析人员可以查看,导致错误的关联事件的详细信息,而不仅仅是简单的错误消息。


要确定哪种工具更适合组织的IT监控需求,下面在安装过程和需求,支持的数据源以及仪表板和警报功能方面比较Grafana与Datadog。


Grafana安装和数据源

Grafana的安装过程相对简单。输入以下Linux命令:


<code>sudo apt-get install -y adduser libfontconfig1
wget https://dl.grafana.com/oss/release/grafana_6.5.3_amd64.deb
sudo dpkg -i grafana_6.5.3_amd64.deb
sudo service grafana-server start/<code>


数据源是IT监控系统无需用户编写代码即可连接到的应用。


一些数据源仅需要登录凭据,而其他一些数据源则需要在数据源本身上进行配置以启用与第三方工具的连接。Grafana支持众多的数据源,其中包括Amazon CloudWatch,Azure Monitor,Dynatrace和Elasticsearch。


Grafana将插件分为需要常规许可证的插件和需要企业许可证的插件。用户可以将这些插件分为可附加到其他监视系统的插件和可附加到原始数据源的插件。


将Grafana连接到其他监视系统要比连接到原始数据源容易得多,在Grafana和Datadog中,原始数据源都需要大量的配置工作。


这是一些Grafana数据源以及连接到它们所需的工作。


亚马逊CloudWatch

CloudWatch需要手动启动,并且一旦启动,仅提供少量指标。要使用CloudWatch(甚至没有Grafana),用户必须首先在Amazon内部对其进行配置。


要将Grafana连接到CloudWatch,请使用Amazon安全性的身份和访问管理(IAM)功能来授予Grafana访问权限,就像对待其他用户一样。由于配置它需要付出额外的努力,因此一些Amazon用户选择退出IAM,这会给Grafana安装带来麻烦。


Grafana将CloudWatch打包到核心产品中,意味着不必从外部插件页面下载它。对于其他一些Grafana数据源也是如此,例如Elasticsearch,Google Stackdrive,MySQL和Prometheus。


Elasticsearch

如前所述,Elasticsearch是另一个本机数据源。虽然Elasticsearch JSON数据库可以包含业务数据,但它最广泛地用作监视产品。它实际上是三部分的一部:Elasticsearch,Logstash和Kibana,它们一起形成了Elastic Stack(以前是ELK堆栈)。用户经常将Kibana用作ElasticSearch的前端,但可以将其替换为Grafana。


与Kibana相比,Grafana提供了一种更好的查询ElasticSearch的方式。Kibana查询语言非常有限,而Grafana脚本和查询工具允许变量,因此允许使用成熟的语言-但也许不如Datadog的语言全面。


下面的图1是用户配置Elasticsearch连接器的屏幕。将访问类型更改为浏览器,以简化配置。

IT监控:Grafana vs Datadog详细比较

图1


Prometheus

Grafana提供资源和资金来帮助维护开源Prometheus和Graphite。对Prometheus的支持已预先内置在Grafana中。


与其他连接器一样,使用Grafana查询语言提取所需的度量,如图2的示例所示。该语言包含函数,并且“添加查询”按钮使用户能够构建复杂的查询。

IT监控:Grafana vs Datadog详细比较

图2


这是来自Grafana网站的Prometheus仪表板示例:

IT监控:Grafana vs Datadog详细比较

图3


Graphite

Graphite是一种流行的开源监视工具,它只做一件事,但做得很好:绘制时间序列数据。它的独特之处在于它使用了一个简单的数据库Carbon,它比功能完善的数据库产品更接近聪明的文本文件。


要在Grafana上尝试Graphite,请使用Docker在任意端口(例如端口4444)上安装Graphite Web:


<code>sudo docker run -d \\
--name graphite2 \\
--restart=always \\
-p 4444:4444 \\
-p 2003-2004:2003-2004 \\
-p 2023-2024:2023-2024 \\
-p 8125:8125/udp \\
-p 8126:8126 \\
graphiteapp/graphite-statsd/<code>


然后在Grafana中对其进行配置。在此示例中,我已在本地计算机上安装了Graphite,因此我将localhost用于主机:

IT监控:Grafana vs Datadog详细比较

图4


然后,该工具应响应数据源正在工作。


容器

Grafana支持Docker容器安装。通常,与Docker一样,安装非常简单:


docker run -d -p 3000:3000 grafana/grafana


没有Grafana的Docker插件,而Datadog确实有一个。但是,这两种监视工具都支持容器,尽管有一些细微的差异。


监控系统实际上并不监控容器;相反,常规的OS指标描述了Docker使用的资源。关于容器,组织所监视的是在容器中运行的应用程序。


Grafana方法是在Docker内部安装Grafana插件。然后,用户可以监视容器设计运行的任何软件-例如数据库。


要将Grafana代理安装在容器内,请使用Grafana命令行工具:


grafana-cli plugins install ${plugin}


要使用已经内置的Grafana插件构建Docker映像,请从Grafana的GitHub存储库下载Docker工具。


Grafana仪表板功能

仪表板是一组显示在单个屏幕上的图表,通常围绕诸如网络或关键任务功能等常见主题进行分组。当数据分析师在感兴趣的项目之间移动时,它们会在仪表板之间切换。


仪表板还可以以基础架构为中心,在其中列出主机,容器或微服务。Grafana包括预建的仪表板以及Grafana用户社区捐赠的其他仪表板。下载并以JSON格式导入这些仪表板-然后上传它们以将其添加到安装中。


在Grafana中构建仪表板不是很直观。单击添加面板,然后进行编辑,然后选择放置数据源。下面的图5显示了结果屏幕:

IT监控:Grafana vs Datadog详细比较

图5


Grafana有几种类型的图表,例如:


  • 图表,XY线或散点图;
  • 单一统计信息,显示当前时间点的单个指标的值;
  • 热图,在二维图中显示准3D信息;
  • 警报列表;和
  • 原始日志。


警报功能说明了Grafana的查询语言在哪里有用,因为它使用户可以使用公式来编写表达式。

IT监控:Grafana vs Datadog详细比较

图 6


下图7中的Grafana仪表板包括交互式功能,图表创建者将其称为注释。这些提供十字准线和弹出图例,以向图表添加更多信息,而交互性较小的图表则无法做到。

IT监控:Grafana vs Datadog详细比较

图 7


最终,Grafana的浏览功能提供了数据遍历,或一种单击指标的方式,该指标可将信息建立到一组可重复使用的日常查询中。


Grafana版本和价格

Grafana有三种版本:免费和开源;Grafana Cloud是标准帐户或专业帐户中的托管和托管版本;和Grafana Enterprise,其中包括其他功能,可以在内部托管或安装。


在发布之时,标准帐户的单用户Grafana Cloud许可证每月收费49美元,而专业帐户的价格则通过报价来确定。企业版适用于需要额外插件和功能的公司,并根据活跃用户定价。


Datadog安装

用户必须在Datadog云中注册-即使他们计划在本地运行Datadog-也要安装Datadog服务器和代理,因为这些组件在配置文件中安装了用于验证许可证和凭据的appkey。


与Grafana一样,安装非常简单。输入命令:


<code>DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=xxxxxxxxxxxx DD_SITE="datadoghq.eu" bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/datadog-agent/master/cmd/agent/install_script.sh)"
sudo system start datadog-agent/<code>


用户可以在datadog.yaml配置文件中配置本地服务器的特征,并且该文件是列出要监视的主机上所有软件的入口,这是安装程序的一半。另一半是将Datadog指令放入目标软件本身:


<code>/opt/datadog-agent/bin/agent/agent run -p /opt/datadog-agent/run/agent.pid
sudo vim /etc/datadog-agent/datadog.yaml/<code>


要登录,请注意Datadog会按区域存储数据。确保选择正确的登录域-例如,欧盟的组织无法访问美国服务器。


Datadog数据源

Datadog提供了350多个连接器或集成,分为26个类别,包括缓存,容器,网络,监视和安全性。


容器

要监视容器指标,请在容器内部的主机上安装Datadog代理。


主机基础配置类似于Datadog的YAML配置文件:


<code>sudo vim  /etc/datadog-agent/datadog.yaml
logs_enabled: true
listeners:
- name: docker
config_providers:
- name: docker
polling: true/<code>


在图8中,下面是Docker仪表板的视图。在顶部,它列出了正在运行和已停止的容器。在底部,它按CPU和RAM内存使用量对它们进行排序。右侧的仪表板显示了每个容器正在运行的内容,例如DNS服务器和Fluentd(它是日志收集器)。

IT监控:Grafana vs Datadog详细比较

图8


Prometheus

与许多连接器一样,使用Prometheus连接器的想法是用户已经安装了Prometheus来解析日志和收集指标。组织与其放弃将数据直接发送到Datadog的方式,不与他们当前的Prometheus基础架构进行集成。


Prometheus解析日志,然后将用户定义的标签添加到指标以将其放入某些逻辑分组。Datadog使用Prometheus进行数据解析的方法是使用OpenMetrics语法和工具。例如,由于Prometheus收集时间序列数据,因此用户可以拔出要传递给Datadog的Prometheus数据,然后标记其类型。


配置基于 YAML:


init_config:

instances:
- prometheus_url: 'localhost:<prometheus>/<prometheus>'
namespace: '<metrics>'
metrics:
- "<prometheus>":
"<datadog>"/<datadog>/<prometheus>/<metrics>/<prometheus>/<prometheus>


Datadog调用其API和软件开发套件(SDK)库。它们具有多种语言,使程序员能够编码到DogStatsD接口。


DogStatsD是StatsD的扩展,它是一个累积和聚合指标的守护程序。StatsD是旨在将值传递到监视系统(例如Datadog)的标准。


例如,使用名为Datadogpy的Python工具库。在此示例中,metric是一个计数器,因为它使用了增量方法。


Python代码收集度量。StatsD是传递它的机制。Datadog提供了一种可视化它的方法,例如直方图:

IT监控:Grafana vs Datadog详细比较

图9


直方图的右侧显示了Datadog的一些功能,因为它包含趋势线甚至曲线等按钮,这些按钮可以消除指标的季节性变化,从而消除可能误导分析师的噪声。


日志

在主机上安装Datadog代理以将指标直接转发到Datadog。使用简单的tail Unix命令或诸如Journald之类的工具来收集日志。两者的工作方式都类似,例如,Elastic Filebeat。


AWS Lambda

Lambda是一项服务,使用户可以在Amazon平台上运行代码,而不必担心基础架构的详细信息。例如,可以将Lambda视为运行Python代码的场所,而无需置备VM。取而代之的是,亚马逊在其庞大的云中找到了一个地方来运行它。


MongoDB

用户使用原始数据源时,Grafana和Datadog都不是即插即用的。例如,在MongoDB的情况下,用户必须进行大量配置。他们必须更新MongoDB配置文件并添加Datadog用户,并向他们授予对数据库和表的访问权限。


Grafana收集的一些MongoDB指标的示例包括mongodb.asserts.msgps,mongodb.backgroundflushing.total_ms和mongodb.connections.available。


Nginx

Nginx的Datadog配置是用户放入nginx.conf文件中的指令,如下所示。它将access.log中的行解析为其相应的字段。


<code>http {
\t#recommended log format
\tlog_format nginx '\\$remote_addr - \\$remote_user [\\$time_local] '
'"\\$request" \\$status \\$body_bytes_sent \\$request_time '
'"\\$http_referer" "\\$http_user_agent"';
\taccess_log /var/log/nginx/access.log;/<code>


这样可以捕获错误,连接断开和总流量以及其他数据。在Datadog中,这些标记如下所示:


  • net.waiting
  • net.connections
  • net.request_per_s
  • cache.hit.bytes
  • cache.size
  • connections.dropped


仪表板和可视化示例

图10中的仪表板说明了Datadog的某些图表类型和指标显示。

IT监控:Grafana vs Datadog详细比较

图 10


图11显示了显示原始日志的仪表板。对于熟悉Elasticsearch Kibana的用户来说,这看起来很熟悉,但是对于Datadog,如果该行是500型错误,则用户可以单击一行以进行深入研究。这称为分布式跟踪,因为它可以跨服务器到达。

IT监控:Grafana vs Datadog详细比较

图 11


创建仪表板

要创建仪表盘,请首先选择一种类型。这两个选项是“新时间表”(用于故障排除和关联)和“新屏幕面板”(用于状态板和数据共享)。


然后选择一个图表类型:


  • 热图
  • 检查状态
  • 更改
  • 主机图
  • 散点图


请注意,这里有一个更改图表,显示了某种趋势在上升还是下降。


Datadog自动生成它认为用户可能想要的内容,但是一旦生成,他们就有机会对其进行更改。


该工具还添加了注释,因此用户可以单击单个点以获取其他信息。此功能使图表制作者可以添加信息而不会过度拥挤。


监控类型

监视Datadog中的驱动器警报。


注意图12中的机器学习指标:离群值和预测。但是,这不是真正的预测,因为它不是经过训练的模型。它仅显示指标何时超过阈值。

IT监控:Grafana vs Datadog详细比较


图 12


基于Datadog机器学习的警报逻辑称为“看门狗”。看门狗使用机器学习技术来标记异常,这是对设置任意阈值的一种改进,因为它基于数学理论。


用户可以使用Pagerduty,Slack和电子邮件接收警报。


价钱

Datadog提供免费和付费版本。用户可以测试付费版本的免费试用版,如果不想付费,可以降级为免费版本。付费的主要功能之一是日志保留的时间长度,这对于遵守通用数据保护条例,HIPAA和Sarbanes-Oxley Act标准的企业而言非常重要。


Grafana与Datadog的学习曲线

Grafana和Datadog都有相当陡峭的学习曲线。用户使用这两种产品都会遇到的一个难题是,他们将需要一种将在一台机器上进行的配置分发给许多机器的方法,例如使用像Salt这样的DevOps工具。否则,用户将花费大量时间尝试手动维护这些工具。


即使许多仪表板都是自动的,分析人员仍需要学习两种产品的独特图表概念以及如何用查询语言编写查询。两种IT监视工具均提供广泛的功能,因此用户在做出决定之前必须投入大量时间来学习每种工具。


原文链接:

https://searchitoperations.techtarget.com/feature/Compare-Grafana-vs-Datadog-for-IT-monitoring?


更多干货文章请关注:www.tyun.cn


分享到:


相關文章: