Tungsten Fabric是一个由计算节点、控制节点、配置节点、数据库节点、Web UI节点和分析节点组成的分布式系统。
分析(Analytics)节点负责收集系统所有节点上所有软件模块的系统状态信息、使用统计和调试信息。分析节点将整个系统收集到的数据存储在数据库中,数据库基于Apache Cassandra开源分布式数据库管理系统。该数据库通过类似SQL的语言和表示状态转移(REST)API进行查询。
分析节点收集到的系统状态信息将汇总到所有的节点上。
分析节点收集的调试信息包括以下几种类型。
- 系统日志(syslog)消息——由系统软件组件产生的信息和调试消息。
- 对象日志消息——记录对系统对象(如虚拟机、虚拟网络、服务实例、虚拟路由器、BGP对等体、路由实例等)的更改。
- 追踪消息——软件组件在本地收集的活动记录,仅在需要时才发送给分析节点。
与流量、CPU和内存使用情况等相关的统计信息也由分析节点收集,并可进行查询以提供历史分析和时间序列信息。查询使用REST APIs进行。
分析数据会被写入到Tungsten Fabric的数据库。数据将在默认的48小时有效时间(TTL)后过期。这个默认的TTL时间可以根据需要通过改变集群配置中的database_ttl值来改变。
TF警报流(Alert Streaming)
TF警报(alert)是在基于每个用户可见实体(UVE)提供的。TF分析(analytics)使用Python编码的规则来触发或解除警报,这些规则将检查UVE的内容和对象的配置。一些规则是内置的,其它规则可以使用Python stevedore插件添加。
本主题介绍了Tungsten Fabric警报功能。
警报API格式
TF警报分析API提供以下内容。
- 作为UVE GET APIs的一部分,读取对警报的访问。
- 使用POST请求进行警报确认。
- 使用服务器发送的事件(SSE)进行UVE和警报流。
例如:
GET http:// :8081/analytics/alarms。
{
analytics-node: [
{
name: "nodec40",
value: {
UVEAlarms: {
alarms: [
{
any_of: [
{
all_of: [
{
json_operand1_value: ""PROCESS_STATE_STOPPED"",
rule: {
oper: "!=",
operand1: {
keys: [
"NodeStatus",
"process_info"