Openstack云平台脚本部署之Aodh告警服务配置(十三)

2023-11-05

目录

一、简介

二、部署脚本

三、参考文档

四、源码

五、系列文章


一、简介

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

三、参考文档

OpenStack Docs: Telemetry service overview

Welcome to Aodh’s documentation! — aodh 15.1.0.dev3 documentation

四、源码

脚本源码:GitHub - zjmeixinyanzhi/Openstack-HA-Install-Shells: Shell scripts for installing openstack high availability cluster

五、系列文章

Openstack云平台脚本部署”系列文章目录如下:

Openstack云平台脚本部署之概述(零)

Openstack云平台脚本部署之基础环境配置(一)

Openstack云平台脚本部署之Galera高可用集群配置(二)

Openstack云平台脚本部署之RabbitMQ高可用集群部署(三)

Openstack云平台脚本部署之MongoDB配置(四)

Openstack云平台脚本部署之Memcached配置(五)

Openstack云平台脚本部署之Keystone认证服务配置(六)

Openstack云平台脚本部署之Glance镜像服务配置(七)

Openstack云平台脚本部署之Nova计算服务配置(八)

Openstack云平台脚本部署之Neutron网络服务配置(九)

Openstack云平台脚本部署之Dashboard配置(十)

Openstack云平台脚本部署之Cinder块存储服务配置(十一)

Openstack云平台脚本部署之Ceilometer数据收集服务配置(十二)

Openstack云平台脚本部署之Aodh告警服务配置(十三)

Openstack云平台脚本部署之Ceph存储集群配置(十四)

Openstack云平台脚本部署之计算节点服务配置(十五)

Openstack云平台脚本部署之增加计算节点配置(十六)

Openstack云平台脚本部署之测试验证(十七)

Openstack云平台脚本部署之Ganglia监控(十八)

Openstack云平台脚本部署之Nagios监控(十九)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Openstack云平台脚本部署之Aodh告警服务配置(十三) 的相关文章

  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • numpy 未定义符号:PyFPE_jbuf

    我正在尝试使用一百万首歌曲数据集 为此我必须安装 python 表 numpy cython hdf5 numexpr 等 昨天我设法安装了我需要的所有内容 在使用 hdf5 遇到一些麻烦之后 我下载了预编译的二进制包并将它们保存在我的 b
  • 如何获取 linux 实用程序 tail 的源代码?

    这个命令确实非常有用 但是我可以在哪里获取源代码以查看内部发生的情况 thanks tail 实用程序是 Linux 上 coreutils 的一部分 源压缩包 ftp ftp gnu org gnu coreutils coreutils
  • 如何使用AWK脚本检查表的所有列数据类型? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在这里 我正在检查表中第一列的数据类型 但我想知道AWK中表的所有列数据类型 我尝试过 但只能获得一列数据类型 例如 Column 1
  • gentoo crontab:为什么这个简单的 crontab 不起作用?

    我使用 GENTOO 发行版 crontab e 35 12 root php5 home www cron php 当我手动运行时 php5 php5 home www cron php 这有效 它向我发送了一封电子邮件 然后我检查日期
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • 适用于 KDE 和 Gnome 的 Gui [重复]

    这个问题在这里已经有答案了 我想为一个现在是 CLI 的应用程序编写一个 gui 它需要在 KDE 和 Gnome DE 中 看起来不错 充分利用用户的外观设置 如果我选择 Qt 或 GTK 我能够做到这一点吗 它们与两个 DE 集成良好吗
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • diff 文件仅比较每行的前 n 个字符

    我有2个文件 我们将它们称为 md5s1 txt 和 md5s2 txt 两者都包含a的输出 find type f print0 xargs 0 md5sum sort gt md5s txt 不同目录下的命令 许多文件被重命名 但内容保
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • ansible 重新启动 2.1.1.0 失败

    我一直在尝试创建一个非常简单的 Ansible 剧本 它将重新启动服务器并等待它回来 我过去在 Ansible 1 9 上有一个可以运行的 但我最近升级到 2 1 1 0 并且失败了 我正在重新启动的主机名为 idm IP 为 192 16
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 使用 find - 删除除任何一个之外的所有文件/目录(在 Linux 中)

    如果我们想删除我们使用的所有文件和目录 rm rf 但是 如果我希望一次性删除除一个特定文件之外的所有文件和目录怎么办 有什么命令可以做到这一点吗 rm rf 可以轻松地一次性删除 甚至可以删除我最喜欢的文件 目录 提前致谢 find ht
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • 为什么我收到“无法进行二进制日志记录”的信息。在我的 MySQL 服务器上?

    当我今天启动 MySQL 服务器并尝试使用以下命令进行一些更改时用于 MySQL 的 Toad http www quest com toad for mysql 我收到此消息 MySQL 数据库错误 无法进行二进制日志记录 消息 交易级别
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh

随机推荐

  • Unity Rotate鼠标控制人物旋转

    添加碰撞盒 一定要添加碰撞盒才能响应鼠标事件 将碰撞盒复制给骨架 如果鼠标划动的向量 X轴大于Y轴 则是左右划动 让它旋转 SpinWithMouse using System Collections using System Collec
  • 窗体,组件,事件

    窗体对象JFrame package frame import javax swing public class JFrameTest public static void main String args 创建窗体对象 JFrame jF
  • 使用javacv中的ffmpeg实现录屏,结果连运行都失败了,现在终于解决了

    前言 今天突发奇想 想自己写一个录屏的软件 上次写了一个专门录音的Demo 但是要把声音和视频放到一起合成一个mp4文件 着实有一点艰难 所以就打算使用ffmpeg来写一个 而这篇博客中会顺便谈一谈我碰到的各种坑 ffmpeg是一个c 程序
  • 中兴EPON OLT-C300开局配置

    一 基础配置 1 自定义时间 clock set hh mm ss Apr 8 2018 con t username zte password zte privilege 15 用户名密码 2 自定义名称 hostname CeShi O
  • js如何进行数组去重?

    1 数组反转 使用 reverse 实现数组反转 const arr 1 2 3 console log arr 1 2 3 arr reverse console log arr 3 2 1 2 数组去重 1 new Set array
  • python学习语法中与c语言不同之处(1)

    一 发现使用打印使用的是print 而在C语言中我们更多的使用的是printf 比如想要打印出来hello world 直接如下 C语言 printf a d a python语言 print hello world 然后就是直接回车键就可
  • angular表单验证

    表单验证 通常 我们都需要对用户的表单输入做验证 以保证数据的整体质量 Angular也有两种验证表单的形式 使用属性验证 用于模板驱动表单 使用验证器函数进行验证 用于响应式表单 验证器 Validator 函数 验证器函数可以是同步函数
  • 13功能之C++类默认生成的六个成员函数的自定义

    13功能之C 类默认生成的六个成员函数的自定义 1 代码理解即可 pragma warning disable 4996 include
  • UGUI之rectTransform属性

    RectTransform 本文转载自uGUI知识点剖析之RectTransform 一 基本要点 RectTransform继承于Transform 在 Transform 基础上 RectTransform 增加了 轴心 pivot 锚
  • 【文献翻译】构建网络安全知识库的框架-A Framework to Construct Knowledge Base for Cyber Security

    摘要 现在有一些针对不同方面的独立网络安全知识库 在互联网上 也有很多网络安全相关的内容以文字的形式存在 融合这些网络安全相关信息可以是一项有意义的工作 在本文中 我们提出了一个框架来整合现有的网络安全知识库并从文本中提取网络安全相关信息
  • java8日期时间相关

    java8时间相关api 一 java8时间相关api出现的原因 二 LocalDate LocalTime LocalDateTime的使用 1 解释 2 学习点 3 代码示例 三 Instant 1 解释 2 学习点 3 代码示例 四
  • Ubuntu下的CUDA编程(二)

    Ubuntu下cuda编程的基本过程 一 运行程序 按照上一篇文章所述 安装好cuda软件以后 就可以使用 nvcc V 命令查看所用到的编译器版本 本人用版本信息来自 Cuda compilation tools release 3 2
  • python学习——如何求质数/素数

    质数判断 方法一 一个大于1的自然数 除了1和它本身外 不能被其他自然数 质数 整除 2 3 5 7等 换句话说就是该数除了1和它本身以外不再有其他的因数 也就是说 从2到n 1遍历 如果存在一个数是这个整数n的因数 那么它就不是质数 但是
  • docker保存镜像到本地,并加载本地镜像文件

    docker保存镜像到本地 并加载本地镜像文件 1 查看已有的镜像文件 docker images 显示效果如下所示 2 将镜像打包成本地文件 指令 docker save 镜像id gt 文件名 tar docker save 17282
  • COCO数据集的下载、介绍及如何使用(数据载入及数据增广,含代码)

    如何使用COCO数据集 COCO数据集可以说是语义分割等计算机视觉任务中应用较为广泛的一个数据集 具体可以应用到物体识别 语义分割及目标检测等方面 我是在做语义分割方面任务时用到了COCO数据集 但本文主要讲解的是数据载入方面 因此可以通用
  • springboot 微信小程序 对接微信支付功能(完整版)

    微信小程序对接微信支付功能 业务流程时序图 JAVA版 1 项目架构 2 pom xml配置文件 3 小程序账号参数配置类 4 JAVA 通用代码 4 1 工具类 4 1 1 IdGen id生成类 4 1 2 Render 响应结果类 4
  • Springboot

    0 学习目标 了解SpringBoot的作用 掌握java配置的方式 了解SpringBoot自动配置原理 掌握SpringBoot的基本使用 了解Thymeleaf的基本使用 1 了解SpringBoot 在这一部分 我们主要了解以下3个
  • CUDA编程第四章: 全局内存

    前言 本章内容 学习CUDA内存模型 CUDA内存管理 全局内存编程 探索全局内存访问模式 研究全局内存数据布局 统一内存编程 最大限度地提高全局内存吞吐量 在上一章中 你已经了解了线程是如何在GPU中执行的 以及如何通过操作线程束来优化核
  • 【Seq2Seq】压缩填充序列、掩蔽、推理和 BLEU

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Openstack云平台脚本部署之Aodh告警服务配置(十三)

    目录 一 简介 二 部署脚本 三 参考文档 四 源码 五 系列文章 一 简介 Openstack告警服务Aodh负责当收集的数据度量或事件超过所设定的阈值时 会出发报警 从Liberty 版本后从Ceilometer 中拆分出来 独立为单独