gnocchi 主要用来提供资源索引和存储时序计量数据,其架构如下图所示:
从图可以看出Gnocchi的服务主要包含两大服务,API和Metricd服务。
同时可以看到有三个存储,
传入度量存储Measure Storage:是经过ceilometer-agent-notification服务处理后发送过来的数据,是实际采集到的监控数据。
聚合指标存储Aggregate Storage:存放的是按照预定义的策略进行聚合计算后的数据,提高监控数据展示时速度。
索引Index:通常是一个关系型数据库(比如MYSQL),是监控数据的元数据,用以索引取出resources和metrics,使得可以快速的从Measure Storage和Aggregate Storage中取出所需要的数据。
Gnocchi可以将不同的存储系统用于其传入度量和聚合度量,例如:
需要一个数据库来索引Gnocchi将处理的资源和指标。支持的驱动程序是:
Gnocchi由几个服务组成:HTTP REST API(请参阅REST API用法),可选的statsd兼容守护程序(请参阅Statsd守护程序用法)和异步处理守护程序(名为gnocchi-metricd)。数据通过HTTP REST API或statsd守护程序接收。gnocchi-metricd在后台对接收到的数据执行操作(统计计算,度量标准清除等)。
所有这些服务都是无状态的,因此可以水平扩展。与许多时间序列数据库相反,可以运行的gnocchi度量守护程序或gnocchi-api端点的数量没有限制 。如果您的负载开始增加,则只需生成更多守护程序来处理新请求的流程。如果要处理高可用性方案,也是如此:只需在独立服务器上启动更多的Gnocchi守护程序即可。
Gnocchi中有四层数据,Resource Type -> Resources -> Metric -> Measure
自顶向下列表显示为:
某个Metric的Measures
一个实际使用中的gnocchi默认配置如下:
[DEFAULT]
debug = False
log_dir = /var/log/kolla/gnocchi
log_file = /var/log/kolla/gnocchi/gnocchi-api.log
[api]
port = 8041
host = 10.0.49.139
middlewares = keystonemiddleware.auth_token.AuthProtocol
auth_mode = keystone
[database]
connection = mysql+pymysql://gnocchi:[email protected]:3306/gnocchi
max_pool_size = 50
max_overflow = 1000
max_retries = -1
[statsd]
resource_id = ad6f6ffb-de25-4934-9cc3-cb6d4602ca87
user_id = 5728b5d2-9d5b-4331-a008-02969bc8f4a4
project_id = 7920bcaf-7fee-450c-84cd-d52383f83a37
archive_policy_name = low
flush_delay = 10
[metricd]
workers = 4
[indexer]
url = mysql+pymysql://gnocchi:[email protected]:3306/gnocchi
[keystone_authtoken]
auth_uri = http://10.0.49.149:5000/v3
project_domain_id = default
project_name = service
user_domain_id = default
username = gnocchi
password = ABCD.666
auth_url = http://10.0.49.149:35357
auth_type = password
memcache_security_strategy = ENCRYPT
memcache_secret_key = ORXMCNi8ZJCOk1BOrKcRLfYYL0bWddQdL0hPpfzf
memcached_servers = 10.0.49.131:11211,10.0.49.132:11211,10.0.49.133:11211
[storage]
driver = ceph
ceph_pool = gnocchi
ceph_username = gnocchi
ceph_keyring = /etc/ceph/ceph.client.gnocchi.keyring
ceph_conffile = /etc/ceph/ceph.conf
[cors]
allowed_origin = http://10.0.49.149:3000
gnocchi 4.2.0提供四种汇聚策略bool,low,medium,high,默认时为low.
聚合计算策略介绍:
聚合计算策略表示最后数据存储到后端时是什么形态,间隔多少,保存多久.例如,想创建一个间隔5秒,存储时间为7天命名为selftest的策略,然后让所有network相关度量采用此指标汇聚。过程是先创建策略selftest
gnocchi archive-policy create -d points:120960,granularity:0:00:05 selftest
然后创建策略规则archive-policy-rule利用正则表达式network*匹配所有名字由network开头的metric,此策略规则的名称为network
gnocchi archive-policy-rule create -a selftest -m network* network
列出所有激活的策略规则
gnocchi archive-policy-rule list
此时所有network开头的metric仍然采用low策略
但如果新建一个实例,所有network相关metric均会采用新策略
与此相对应,此时汇聚后的measures 已经使用了新的策略,即5秒的粒度.
参考文章
https://gnocchi.osci.io/install.html#configuring-authentication
https://www.cnblogs.com/luohaixian/p/11145939.html
https://qkxu.github.io/2017/03/16/3.0%E7%89%88%E6%9C%AC-gnocchi%E6%93%8D%E4%BD%9C.html
https://blog.csdn.net/qingyuanluofeng/article/details/68961093
https://www.cnblogs.com/bonelee/p/6237188.html