postgresql kafka工具_OpenStack 高性能监控工具:Monasca

新钛云服 祝祥 原创

介绍

Monasca 是一个多租户监控即服务工具,可以帮助IT团队分析日志数据并设置告警和通知。

OpenStack环境中的监控需求是巨大,多样且高度复杂的。Monasca的项目任务是提供一种多租户,高度可扩展,高性能和容错的监控即服务解决方案。

Monasca为高级监控提供了可扩展的平台,运营商和租户均可使用该平台来获取有关其基础架构和应用的运行状态。

Monasca使用REST API进行高速的日志处理和查询。它集成了流告警引擎,通知引擎和聚合引擎。

您可以使用Monasca实现的用例非常多样。Monasca遵循微服务架构,其中几个服务分布在多个存储库中。每个模块旨在为整个监控解决方案提供离散服务,并且可以根据运营商/客户的需求进行部署。

使用Rest API接口来存储、查询性能和历史数据,不同与于其他监控工具使用特殊的协议和传输方法,如nagios的NSCA,Monasca只利用了http多租户认证,指标的提交和认证使用Keystone组件。存储关联租户ID指标使用(key,value)的键值来定义,称作量度(dimensions)对系统指标进行实时阈值和告警复合告警设置使用简单的语法,由子告警表达式和逻辑操作器组成监控代理支持内置的系统和服务的检查结果,同时也只nagios的checks和statsd根据开源技术搭建的开源监控方案

架构

下图概述了Monasca的指标管道以及所涉及组件的交互。

eaf36ae3dc97557fca9244b5f9615831.png

核心组件

monasca-agent:监控代理,python编写,包含了多个子组件,支持各种cpu使用率、可用内存、nagios插件、statsd、以及许多服务如mysql、rabbitMQ等监控monasca-api::一个用于监控的RESTful API接口,针对在以下概念和区域:指标:对于实时的大量指标的存储和查询统计:查询指标的统计数据告警定义:告警定义的增删查改告警: 查询和删除告警历史通知方式: 创建和删除通知方式,当告警状态改变时可以直接邮件通知用户—monasca API可以通过python或JAVA来实现manasca-persister:消息队列传送指标或告警的消费者(RPC传输中的概念consumer),并将指标和告警存入对应的数据库monasca-transform:一个转换聚合引擎,转换指标的名字和值,生成新的指标传递给消息队列Anomaly and Prediction Engine: 目前还是原型阶段monasca-thresh:对指标进行计算,当超过阈值是发布告警给消息队列, 基于Apache storm项目(开源实时分布式计算系统)monasca-notification:接受从消息队列传来的告警,并发送通知,如发送告警邮件,Notification Engine基于Pythonmonasca-analytics:分析引擎,接受从消息队列传来的告警,进行异常检测和告警关联消息队列:以前是支持RabbitMQ的,由于性能、规模、持续性和高可用的限制,转向了KafkaMetrics and Alarms Database:支持Vertica和infuxDB,对Cassandra的支持正在进行中Config Database:配置信息数据库,目前使用Mysql,对PostgreSQL的支持正在进程中python-monascaclient:python实现的命令行客户端,对monasca API进行操控Monitoring UI:Horizon dashboard的可视化Ceilometer publisher:提供给Ceilometer的multi-publisher插件
08c62d0bb10c2e63b057bc32f05bf9b8.png

除了直接向API发送请求之外,还可以使用以下工具与Monasca进行交互:

Monasca client:CLI和Python客户端Horizon plugin:该插件将监控面板添加到HorizonGrafana app:Grafana插件可查看和配置告警定义,告警和通知

Libraries:

monasca-common:Monasca组件中使用的通用代码monasca-statsd:StatsD兼容的库,用于从已检测的应用程序发送指标

Grafana集成:

monasca-grafana-datasource:用于Grafana的多租户Monasca数据源grafana:Grafana 4.1.2的分支版本,添加了Keystone身份验证

第三方技术与工具

Monasca使用多种第三方技术:

内部处理和中间件Apache Kafka(http://kafka.apache.org):是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等Apache Storm(http://storm.incubator.apache.org/):Apache Storm是一个免费的开源分布式实时计算系统。通过Storm,可以轻松可靠地处理无限数据流,从而可以进行实时处理,而Hadoop可以进行批处理ZooKeeper(http://zookeeper.apache.org/):由Kafka和Storm使用Apache Spark:由Monasca Transform用作聚合引擎配置数据库:MySQL:支持将MySQL作为配置数据库PostgreSQL:通过Hibernate和SQLAlchemy支持Config数据库的POSTgresVagrant(http://www.vagrantup.com/):Vagrant提供了易于配置,可重复的便携式工作环境,该环境建立在行业标准技术之上,并由一个一致的工作流程控制,可帮助您最大程度地提高生产力和灵活性Dropwizard(https://dropwizard.github.io/dropwizard/):Dropwizard将Java生态系统中稳定,成熟的库汇集到一个简单,轻巧的程序包中,使您可以专注于完成自身的工作任务中。Dropwizard对复杂的配置,应用程序指标,日志记录,操作工具等提供了开箱即用的支持,使您和您的团队可以在最短的时间内发布高质量的Web服务时间序列数据库:InfluxDB(http://influxdb.com/):一个没有外部依赖性的开源分布式时间序列数据库。Metrics数据库支持InfluxDBVertica(http://www.vertica.com):具有高度可扩展性的商业企业级SQL分析数据库。它提供了内置的自动高可用性功能,并且擅长数据库内分析以及压缩和存储大量数据。提供了Vertica的免费社区版本,该版本可以存储最大1 TB的数据,没有时间限制,网址为https://my.vertica.com/community/。虽然不再经常用Vertrica,但Metrics数据库支持它Cassandra(https://cassandra.apache.org):Mestrics数据库支持Cassandra

安装

手工安装

monasca的所有组件都可以安装在一个节点上,例如openstack控制器节点上,也可以将其部署在多节点上。本文中,将在我的openstack集群中创建的新VM中安装monasca-api,该VM具有关联的浮动ip。Monasca-agent已安装在控制器节点上。代理节点通过浮动ip将指标发布到api节点。它们在同一子网中。

1、安装我们需要的软件包和工具

apt-get install -y git
apt-get install openjdk-7-jre-headless python-pip python-dev

2、安装mysql数据库

如果您在openstack控制器节点中安装了monasca-api,则可以跳过安装,将已安装的msyql用于openstack服务。

apt-get install -y mysql-server

创建monasca数据库架构,在此处下载mon.sql( https://raw.githubusercontent.com/stackforge/cookbook-monasca-schema/master/files/default/mysql/mon.sql)

mysql -uroot -ppassword < mon_mysql.sql

3、安装Zookeeper 安装Zookeeper并重新启动它。我使用本地主机接口,并且只有一个Zookeeper,因此默认配置文件不

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值