我试着在SignalFx上监控资源

SignalFX是什么

这是一个能够在实时环境中对每个服务器、微服务进行监控和应用追踪的工具。最近好像被Splunk收购了,可能会被整合到metrics存储中吧。

如果从下面的图表中查看,我们可以大概了解。SignalFx可以将Application的Metrics、Trace以及Docker和k8s的资源收集起来,并且还能为我们执行Debug/Tracing/Alert/Visualization的功能。

应用程序的追踪可以完全获取(不像其他产品那样进行取样),据说可以每秒获取一次指标,所以在这方面非常强大。

Screen Shot 2019-11-05 at 10.56.31 AM.jpg

你是如何收集数据的?

关于数据收集,基本上是使用SignalFx smart Agent (Agent基础),但还有许多其他插件可供选择。AWS、GCP、Azure当然有提供插件,而且好像还准备了针对Spark、Cassandra和k8s的插件。

Screen Shot 2019-11-05 at 10.40.26 AM.jpg

好像是一种将时间序列数据和元数据分别获取的架构,对吧?

Screen Shot 2019-11-07 at 4.40.19 PM.jpg

关于Trace数据,好像会放入Trace用的数据中。

先试试看吧。

在SingnaFx上注册

因为主页右上角有14天的免费试用,所以让我们从这里注册。

> 关于Agent的安装说明方法

登录SignalFx后,从menubar的Integration中选择SignalFx Smart Agent。

这样,会出现一条指示,然后按照指示执行。
这就像现代的监控服务一样。只需复制粘贴,代理完成安装。

Screen Shot 2019-11-05 at 11.11.57 AM.jpg

安装后,将进行启动检查。
除了状态之外,似乎还可以通过配置和终端获取信息。

root@ip-172-31-22-149:~# sudo signalfx-agent status
SignalFx Agent version:           4.13.0
Agent uptime:                     26m27s
Observers active:                 host
Active Monitors:                  10
Configured Monitors:              10
Discovered Endpoint Count:        9
Bad Monitor Config:               None
Global Dimensions:                {host: ip-172-31-22-149, AWSUniqueId: i-044c2ea8e77605846_ap-northeast-1_935995623716}
Datapoints sent (last minute):    246
Datapoints failed (last minute):  0
Events Sent (last minute):        6
Trace Spans Sent (last minute):   0

Additional status commands:

signalfx-agent status config - show resolved config in use by agent
signalfx-agent status endpoints - show discovered endpoints
signalfx-agent status monitors - show active monitors
signalfx-agent status all - show everything
root@ip-172-31-22-149:~#

另外,实际的Config文件本身是由yaml生成的,在monitor部分定义了要监控的内容。

root@ip-172-31-22-149:~# cat /etc/signalfx/agent.yaml
---
# *Required* The access token for the org that you wish to send metrics to.
signalFxAccessToken: {"#from": "/etc/signalfx/token"}
ingestUrl: {"#from": "/etc/signalfx/ingest_url", default: "https://ingest.signalfx.com"}
apiUrl: {"#from": "/etc/signalfx/api_url", default: "https://api.signalfx.com"}
cluster: {"#from": "/etc/signalfx/cluster", optional: true}

intervalSeconds: 10

logging:
  # Valid values are 'debug', 'info', 'warning', and 'error'
  level: info

# observers are what discover running services in the environment
observers:
  - type: host

monitors:
  - {"#from": "/etc/signalfx/monitors/*.yaml", flatten: true, optional: true}
  - type: host-metadata
  - type: collectd/cpu
  - type: collectd/cpufreq
  - type: collectd/df
  - type: collectd/disk
  - type: collectd/interface
  - type: collectd/load
  - type: collectd/memory
  - type: collectd/signalfx-metadata
  - type: collectd/vmem

enableBuiltInFiltering: true
root@ip-172-31-22-149:~#

您可能会发现在指标选项卡里列出了一些可以获取/使用的指标清单,可以参考一下。

Screen Shot 2019-11-05 at 11.18.31 AM.jpg

我试着确认一下监控情况。

当您在Signal Fx的菜单栏中选择“基础设施”下的“主机(SmartAgent/collectd)”,会显示一个简单的主机列表。

Screen Shot 2019-11-05 at 11.20.40 AM.jpg

使用主机进行深入挖掘

基本上所需的项目可以自动获取。

Screen Shot 2019-11-05 at 11.23.13 AM.jpg

深入资源

检查资源字样时,可以进一步深入。

Screen Shot 2019-11-05 at 11.30.55 AM.jpg

选择F(x)的部分,可以选择聚合方法(如求和、求平均、求中值等)。

Screen Shot 2019-11-05 at 11.43.36 AM.jpg

如果点击左上角的图标,可根据自己的喜好进行可视化的更改。

Screen Shot 2019-11-05 at 11.32.33 AM.jpg
Screen Shot 2019-11-05 at 11.55.47 AM.jpg

仪表板

尝试查看默认的仪表盘。选择左上角的仪表盘→基础设施,即可显示整体资源的汇总画面。

Screen Shot 2019-11-05 at 11.57.02 AM.jpg

尝试自己制作仪表盘

点击右上角的“+”图标,然后点击仪表盘。

Screen Shot 2019-11-05 at 12.04.16 PM.jpg

请点击右侧的指标(浏览指标栏),填入您想要显示的各个指标。

Screen Shot 2019-11-05 at 12.05.30 PM.jpg

示例仪表盘

看看实时获取样本数据的仪表板,响应速度还不错,感觉很不错呢。

Screen Shot 2019-11-05 at 1.31.58 PM.jpg

最后

我首先总结了这种基本用法,后面我还会尝试与AWS和其他中间件进行合作。

广告
将在 10 秒后关闭
bannerAds