一、简介
Openstack告警服务Aodh负责当收集的数据度量或事件超过所设定的阈值时,会出发报警。从Liberty 版本后从Ceilometer 中拆分出来,独立为单独的项目,Aodh告警可以出发多种形式的动作,目前已经实现的动作有HTTP回调,日志记录和 通过 Zaqar的API发送通知消息。
计量报警服务包含以下组件:
- API服务器 (aodh-api):运行于一个或多个中心管理服务器上提供访问存储在数据中心的警告信息。
- 报警评估器 (aodh-evaluator):运行在一个或多个中心管理服务器,当警告发生是由于相关联的统计趋势超过阈值以上的滑动时间窗口,然后作出决定。
- 通知监听器 (aodh-listener):运行在一个中心管理服务器上,来检测什么时候发出告警。根据对一些事件预先定义一些规则,会产生相应的告警,同时能够被Telemetry数据收集服务的通知代理捕获到。
- 报警通知器 (aodh-notifier):运行在一个或多个中心管理服务器,允许警告为一组收集的实例基于评估阀值来设置。
二、部署脚本
Aodh安装部署比较简单,在三个控制节点上安装配置即可,脚本install-configure-aodh.sh如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
#!/bin/sh . ../0-set-config.sh ./style/print-split.sh "Aodh Installation" ### [所有控制节点] 安装软件 ./pssh-exe C "yum install -y openstack-aodh-api openstack-aodh-evaluator openstack-aodh-notifier openstack-aodh-listener openstack aodh-expirer python-ceilometerclient" ### [所有控制节点] 修改配置文件 for ((i=0; i<${#controller_map[@]}; i+=1)); do name=${controller_name[$i]}; ip=${controller_map[$name]}; . style/print-info.sh "Openstack configure in $name" ssh root@$ip /bin/bash << EOF openstack-config --set /etc/aodh/aodh.conf database connection mysql+pymysql://aodh:$password@$virtual_ip/aodh openstack-config --set /etc/aodh/aodh.conf DEFAULT rpc_backend rabbit openstack-config --set /etc/aodh/aodh.conf oslo_messaging_rabbit rabbit_hosts controller01:5672,controller02:5672,controller03:5672 openstack-config --set /etc/aodh/aodh.conf oslo_messaging_rabbit rabbit_ha_queues true openstack-config --set /etc/aodh/aodh.conf oslo_messaging_rabbit rabbit_retry_interval 1 openstack-config --set /etc/aodh/aodh.conf oslo_messaging_rabbit rabbit_retry_backoff 2 openstack-config --set /etc/aodh/aodh.conf oslo_messaging_rabbit rabbit_max_retries 0 openstack-config --set /etc/aodh/aodh.conf oslo_messaging_rabbit rabbit_durable_queues true openstack-config --set /etc/aodh/aodh.conf oslo_messaging_rabbit rabbit_userid openstack openstack-config --set /etc/aodh/aodh.conf oslo_messaging_rabbit rabbit_password $password openstack-config --set /etc/aodh/aodh.conf DEFAULT auth_strategy keystone openstack-config --set /etc/aodh/aodh.conf keystone_authtoken auth_uri http://$virtual_ip:5000 openstack-config --set /etc/aodh/aodh.conf keystone_authtoken auth_url http://$virtual_ip:35357 openstack-config --set /etc/aodh/aodh.conf keystone_authtoken memcached_servers controller01:11211,controller02:11211,controller03:11211 openstack-config --set /etc/aodh/aodh.conf keystone_authtoken auth_type password openstack-config --set /etc/aodh/aodh.conf keystone_authtoken project_domain_name default openstack-config --set /etc/aodh/aodh.conf keystone_authtoken user_domain_name default openstack-config --set /etc/aodh/aodh.conf keystone_authtoken project_name service openstack-config --set /etc/aodh/aodh.conf keystone_authtoken username aodh openstack-config --set /etc/aodh/aodh.conf keystone_authtoken password $password openstack-config --set /etc/aodh/aodh.conf service_credentials auth_type password openstack-config --set /etc/aodh/aodh.conf service_credentials auth_url http://$virtual_ip:5000/v3 openstack-config --set /etc/aodh/aodh.conf service_credentials project_domain_name default openstack-config --set /etc/aodh/aodh.conf service_credentials user_domain_name default openstack-config --set /etc/aodh/aodh.conf service_credentials project_name service openstack-config --set /etc/aodh/aodh.conf service_credentials username aodh openstack-config --set /etc/aodh/aodh.conf service_credentials password $password openstack-config --set /etc/aodh/aodh.conf service_credentials interface internalURL openstack-config --set /etc/aodh/aodh.conf service_credentials region_name RegionOne openstack-config --set /etc/aodh/aodh.conf api host $ip EOF done; ### [任一节点]创建数据库 mysql -uroot -p$password_galera_root -h $virtual_ip -e "CREATE DATABASE aodh; GRANT ALL PRIVILEGES ON aodh.* TO 'aodh'@'localhost' IDENTIFIED BY '$password'; GRANT ALL PRIVILEGES ON aodh.* TO 'aodh'@'controller01' IDENTIFIED BY '$password'; GRANT ALL PRIVILEGES ON aodh.* TO 'aodh'@'%' IDENTIFIED BY '$password'; FLUSH PRIVILEGES;" ##### generate haproxy.cfg . ./1-gen-haproxy-cfg.sh aodh ### [controller01] 初始化数据库 su -s /bin/sh -c "aodh-dbsync" aodh ### [controller01] 创建用户、服务实体、端点 . /root/keystonerc_admin openstack user create --domain default --password $password aodh openstack role add --project service --user aodh admin openstack service create --name aodh --description "Telemetry" alarming openstack endpoint create --region RegionOne alarming public http://$virtual_ip:8042 openstack endpoint create --region RegionOne alarming internal http://$virtual_ip:8042 openstack endpoint create --region RegionOne alarming admin http://$virtual_ip:8042 ### [controller01] 添加资源 pcs resource create redis redis wait_last_known_master=true --master meta notify=true ordered=true interleave=true pcs resource create vip-redis IPaddr2 ip=$virtual_ip_redis pcs resource create openstack-ceilometer-central systemd:openstack-ceilometer-central --clone interleave=true pcs resource create openstack-ceilometer-collector systemd:openstack-ceilometer-collector --clone interleave=true pcs resource create openstack-ceilometer-api systemd:openstack-ceilometer-api --clone interleave=true pcs resource create delay Delay startdelay=10 --clone interleave=true pcs resource create openstack-aodh-evaluator systemd:openstack-aodh-evaluator --clone interleave=true pcs resource create openstack-aodh-notifier systemd:openstack-aodh-notifier --clone interleave=true pcs resource create openstack-aodh-api systemd:openstack-aodh-api --clone interleave=true pcs resource create openstack-aodh-listener systemd:openstack-aodh-listener --clone interleave=true pcs resource create openstack-ceilometer-notification systemd:openstack-ceilometer-notification --clone interleave=true pcs constraint order promote redis-master then start vip-redis pcs constraint colocation add vip-redis with master redis-master pcs constraint order start vip-redis then openstack-ceilometer-central-clone kind=Optional pcs constraint order start mongod-clone then openstack-ceilometer-central-clone pcs constraint order start openstack-keystone-clone then openstack-ceilometer-central-clone pcs constraint order start openstack-ceilometer-central-clone then openstack-ceilometer-collector-clone pcs constraint order start openstack-ceilometer-collector-clone then openstack-ceilometer-api-clone pcs constraint colocation add openstack-ceilometer-api-clone with openstack-ceilometer-collector-clone pcs constraint order start openstack-ceilometer-api-clone then delay-clone pcs constraint colocation add delay-clone with openstack-ceilometer-api-clone pcs constraint order start delay-clone then openstack-aodh-evaluator-clone pcs constraint order start openstack-aodh-evaluator-clone then openstack-aodh-notifier-clone pcs constraint order start openstack-aodh-notifier-clone then openstack-aodh-api-clone pcs constraint order start openstack-aodh-api-clone then openstack-aodh-listener-clone pcs constraint order start openstack-aodh-api-clone then openstack-ceilometer-notification-clone pcs resource op add openstack-ceilometer-central start timeout=300 pcs resource op add openstack-ceilometer-central stop timeout=300 pcs resource op add openstack-ceilometer-collector start timeout=300 pcs resource op add openstack-ceilometer-collector stop timeout=300 pcs resource op add openstack-ceilometer-api start timeout=300 pcs resource op add openstack-ceilometer-api stop timeout=300 pcs resource op add delay start timeout=300 pcs resource op add delay stop timeout=300 pcs resource op add openstack-aodh-evaluator start timeout=300 pcs resource op add openstack-aodh-evaluator stop timeout=300 pcs resource op add openstack-aodh-notifier start timeout=300 pcs resource op add openstack-aodh-notifier stop timeout=300 pcs resource op add openstack-aodh-api start timeout=300 pcs resource op add openstack-aodh-api stop timeout=300 pcs resource op add openstack-aodh-listener start timeout=300 pcs resource op add openstack-aodh-listener stop timeout=300 pcs resource op add openstack-ceilometer-notification start timeout=300 pcs resource op add openstack-ceilometer-notification stop timeout=300 pcs resource op add mongod start timeout=300 pcs resource op add mongod stop timeout=300 . restart-pcs-cluster.sh ### [任意节点] 测试数据收集 ceilometer meter-list |
三、参考文档
https://docs.openstack.org/mitaka/install-guide-rdo/common/get_started_telemetry.html
https://docs.openstack.org/developer/aodh/architecture.html
四、源码
脚本源码:https://github.com/zjmeixinyanzhi/Openstack-HA-Install-Shells
五、系列文章
Openstack云平台脚本部署之Galera高可用集群配置(二)
Openstack云平台脚本部署之RabbitMQ高可用集群部署(三)
Openstack云平台脚本部署之Memcached配置(五)
Openstack云平台脚本部署之Keystone认证服务配置(六)
Openstack云平台脚本部署之Glance镜像服务配置(七)
Openstack云平台脚本部署之Nova计算服务配置(八)
Openstack云平台脚本部署之Neutron网络服务配置(九)
Openstack云平台脚本部署之Dashboard配置(十)
Openstack云平台脚本部署之Cinder块存储服务配置(十一)
Openstack云平台脚本部署之Ceilometer数据收集服务配置(十二)
Openstack云平台脚本部署之Aodh告警服务配置(十三)
code
more code
~~~~