跳转到: 导航, 搜索

Operations/Monitoring

监控

此页面总结了在 Operations/Meetups 期间发生过的讨论

监控类别

  • 传统的服务监控
  • 租户健康监控
  • 将此监控暴露给租户
  • 为租户提供监控服务

工具

存在许多监控工具。请参阅 Operations/Tools 页面以获取清单。另请注意 Monasca,它是一个旨在创建监控即服务解决方案的项目。

监控痛点

  • 操作人员通常对监控 OpenStack 感到不满意
  • 工具太多了
  • OpenStack 中需要监控的地方太多了
  • 不清楚如何以及监控什么
  • 监控量会对整个云产生性能影响
  • 如何了解需要监控的主机/服务的信息?
    • 主机信息的中央管理机构?
    • 如何轻松/自动发现这些信息?
    • 用于监控实例的实例元数据
      • Puppet, Chef 等

解决方案?

  • 创建和分享最佳实践
  • 列出 OpenStack 中需要监控的所有区域,并创建如何监控它们的示例
    • 工作量很大,但潜在回报很高
    • 为每个主要版本提供此列表

当前已知实践

这些是在讨论期间收集的项目。实际实施会有所不同。这可能是上述清单的一个很好的起点。

服务守护进程

下表列出了作为 OpenStack 集成版本一部分的项目服务守护进程。

项目 组件 备注
Glance glance-api glance-api 是一个服务器守护进程,它为镜像存储、检索和发现提供 API。
Glance glance-registry glance-registry 是一个服务器守护进程,它为与镜像相关的元数据提供存储、处理和检索。
Keystone keystone-server keystone-server 是一个服务器守护进程,它提供身份管理服务。
Neutron neutron-server neutron-server 是一个服务器守护进程,它提供一个 Web 服务器,该服务器暴露 Neutron API,并将所有 Web 服务调用传递给 Neutron 插件进行处理。
Nova nova-api nova-api 是一个服务器守护进程,它在单独的绿线程中提供 nova EC2 和 OpenStack API。
Nova nova-cert nova-cert 是一个服务器守护进程,它为 Nova 证书提供 Nova Cert 服务,用于 X509 证书。仅适用于 EC2 API,用于生成 euca-bundle-image 证书。
Nova nova-conductor nova-conductor 是一个服务器守护进程,它提供 Nova Conductor 服务,为 Nova 提供协调和数据库查询支持。
Nova nova-consoleauth nova-consoleauth 是一个服务器守护进程,它为 Nova 控制台提供身份验证。
Nova nova-nonvncproxy nova-nonvncproxy 是一个服务器守护进程,它提供对 OpenStack Nova novnc 控制台的访问。
Nova nova-scheduler nova-scheduler 是一个服务器守护进程,它负责选择计算节点来运行 VM 实例。

需要监控的内容

  • 服务守护进程
    • nova-compute, glance-registry 等
    • 确保它们正在运行
    • 确保它们正常工作
      • Tempest, Rally
  • 实例可达性
    • iptables / nat
  • 附加卷
  • 未关闭的 iSCSI 会话
  • RabbitMQ 队列深度和健康状况
  • OVS 隧道
  • 租户可以执行的所有操作的功能
  • 金丝雀实例

内核日志

计算节点的大部分错误仅报告到内核日志

  • qemu 的 OOM(实例在没有租户意愿的情况下进入“shutdown”状态)
  • 磁盘 IO 错误
  • 网络闪烁(接口的链路上下波动)
  • MCE(机器检查错误,如内存和处理器错误)
  • ovs-vswitchd 的分段错误

netconsole 是收集这些日志并对它们做出反应的好方法。

监控媒介

  • SNMP
  • NRPE
  • Consul
  • Ansible / SSH

告警媒介

  • 电子邮件
  • 短信
  • 电子邮件到短信
  • Jabber / XMPP
  • IRC
  • NOC 控制台(详细信息?)
  • 工单系统
  • VoIP

健康检查

受众定义:一种查询服务并使其报告其是否“正常”的方法

  • 它可靠吗?
  • “正常”是如何确定的?
  • 操作人员会依赖它,还是仍然会仔细检查服务正在检查的内容?

statsd

操作人员是否希望每个 OpenStack 服务都提供像 Swift 那样的声明式指标?

  • “是”,但大多数人甚至没有将其用于 Swift。为什么?
  • 大多数用户已经在轮询自己的指标

行动项目

完成这些项目并不能解决上述所有痛点,但将是一个很好的开始。

  • 开始创建需要监控的每个 OpenStack 组件的“事物”列表
    • 不需要是_完整的_列表——那将始终是一个持续进行的项目
  • 为这些项目创建示例告警
    • Nagios / NRPE 检查是否是示例的最佳形式?这可能是大多数操作人员熟悉且与非 Nagios 监控系统兼容的风格。
  • 如果监控特定服务或功能变得过于复杂,请确定是否可以从服务内部更轻松地实现它,并建议或创建该服务的蓝图。
  • 其中很多已经存在,但分散在许多不同的地方。
  • 有人能展示一个使用 Rally 或 Tempest 包装在 Nagios 插件中的示例吗?

外部资源