在使用Grafana或Datadog之前,请了解两个监控工具在支持的数据源,可视化等功能方面的比较。
IT监控系统有两种类型:接近原始数据源并为特定目的而构建的系统,以及位于这些监控系统之上的Grafana和Datadog等系统。
Grafana和Datadog在本质是聚合器,可以从其他数据收集工具(例如Splunk,Elasticsearch,Graphite Web和Amazon CloudWatch)中收集数据。两种IT监控工具都使用或包括:
开放的API;
自定义查询语言;
创建变量和脚本的能力;
分析;
深入研究错误并跟踪用户交互的能力;
社区贡献,包括图表。
这些功能使数据分析人员可以查看,导致错误的关联事件的详细信息,而不仅仅是简单的错误消息。
要确定哪种工具更适合组织的IT监控需求,下面在安装过程和需求,支持的数据源以及仪表板和警报功能方面比较Grafana与Datadog。
Grafana安装和数据源
Grafana的安装过程相对简单。输入以下Linux命令:
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
数据源是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连接器的屏幕。将访问类型更改为浏览器,以简化配置。
图1
Prometheus
Grafana提供资源和资金来帮助维护开源Prometheus和Graphite。对Prometheus的支持已预先内置在Grafana中。
与其他连接器一样,使用Grafana查询语言提取所需的度量,如图2的示例所示。该语言包含函数,并且“添加查询”按钮使用户能够构建复杂的查询。
图2
这是来自Grafana网站的Prometheus仪表板示例:
图3
Graphite
Graphite是一种流行的开源监视工具,它只做一件事,但做得很好:绘制时间序列数据。它的独特之处在于它使用了一个简单的数据库Carbon,它比功能完善的数据库产品更接近聪明的文本文件。
要在Grafana上尝试Graphite,请使用Docker在任意端口(例如端口4444)上安装Graphite Web:
sudo docker run -d \
--name graphite2 \