我试着在SignalFx上监控资源
SignalFX是什么
这是一个能够在实时环境中对每个服务器、微服务进行监控和应用追踪的工具。最近好像被Splunk收购了,可能会被整合到metrics存储中吧。
如果从下面的图表中查看,我们可以大概了解。SignalFx可以将Application的Metrics、Trace以及Docker和k8s的资源收集起来,并且还能为我们执行Debug/Tracing/Alert/Visualization的功能。
应用程序的追踪可以完全获取(不像其他产品那样进行取样),据说可以每秒获取一次指标,所以在这方面非常强大。
你是如何收集数据的?
关于数据收集,基本上是使用SignalFx smart Agent (Agent基础),但还有许多其他插件可供选择。AWS、GCP、Azure当然有提供插件,而且好像还准备了针对Spark、Cassandra和k8s的插件。
好像是一种将时间序列数据和元数据分别获取的架构,对吧?
关于Trace数据,好像会放入Trace用的数据中。
先试试看吧。
在SingnaFx上注册
因为主页右上角有14天的免费试用,所以让我们从这里注册。
> 关于Agent的安装说明方法
登录SignalFx后,从menubar的Integration中选择SignalFx Smart Agent。
这样,会出现一条指示,然后按照指示执行。
这就像现代的监控服务一样。只需复制粘贴,代理完成安装。
安装后,将进行启动检查。
除了状态之外,似乎还可以通过配置和终端获取信息。
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:~#
您可能会发现在指标选项卡里列出了一些可以获取/使用的指标清单,可以参考一下。
我试着确认一下监控情况。
当您在Signal Fx的菜单栏中选择“基础设施”下的“主机(SmartAgent/collectd)”,会显示一个简单的主机列表。
使用主机进行深入挖掘
基本上所需的项目可以自动获取。
深入资源
检查资源字样时,可以进一步深入。
选择F(x)的部分,可以选择聚合方法(如求和、求平均、求中值等)。
如果点击左上角的图标,可根据自己的喜好进行可视化的更改。
仪表板
尝试查看默认的仪表盘。选择左上角的仪表盘→基础设施,即可显示整体资源的汇总画面。
尝试自己制作仪表盘
点击右上角的“+”图标,然后点击仪表盘。
请点击右侧的指标(浏览指标栏),填入您想要显示的各个指标。
示例仪表盘
看看实时获取样本数据的仪表板,响应速度还不错,感觉很不错呢。
最后
我首先总结了这种基本用法,后面我还会尝试与AWS和其他中间件进行合作。