将Prometheus警报管理器通知重定向到Microsoft团队的项目
prom2teams的Python项目详细描述
<<<<<<<<<<<<
项目团队
<prom2teams是一个用python构建的web服务器,它从以前配置的prometheus alertmanager实例接收警报通知,并将其转发到prometheus alertmanager实例ollow">Microsoft团队使用定义的连接器。
开始
先决条件
该应用程序已经用prometheus 2.2.1,python 3.5.0和pip 9.0.1进行了测试。
较新版本的prometheus/python/pip应该可以工作,但也可能出现问题。
安装
prom2team位于pypi上,因此可以使用pip3安装它们:
啊!注意:从v1.1.1开始工作
用法
重要信息:配置路径必须至少提供一个Microsoft Team连接器。检查选项以了解如何提供。
啊!启动服务的其他选项有:
啊!注意:分组警报自v2.2.1起生效
普罗米修斯指标
Prom2Teams使用烧瓶,为了监控服务,我们使用@rycus66的Prometheus烧瓶导出器。这将在/metrics
中启用一个端点,在这里您可以找到有趣的度量来监视具有特定状态的响应的数量。要启用此终结点,请执行以下任一操作:
- 当启动Prom2团队。
- 设置环境变量
prom2teams\u prometheus\u metrics=true
Docker图像
每发布一个新的Prom2Teams,都会在我们的DockerHub中构建一个新的Docker映像。我们强烈建议您使用带有版本标签的图像,但不带版本标签也可以使用这些图像。
创建Prom2Teams容器时需要记住两件事:
- 连接器URL必须作为环境变量传递
- 如果要对警报进行分组,则需要将该字段作为环境变量传递
- 您需要将容器的Prom2Teams端口映射到主机上的一个端口。
因此,docker run命令示例如下:
$ docker run -it -d -e PROM2TEAMS_GROUP_ALERTS_BY=FIELD_YOU_WANT_TO_GROUP_BY -e PROM2TEAMS_CONNECTOR="CONNECTOR_URL" -p 8089:8089 idealista/prom2teams:VERSION
提供自定义配置文件
如果您喜欢使用自己的配置文件,只需将其作为docker卷提供给容器,并将其映射到/opt/prom2teams/config.ini
。样品:
$ docker run -it -d -v pathToTheLocalConfigFile:/opt/prom2teams/config.ini -p 8089:8089 idealista/prom2teams:VERSION
生产
对于生产环境,您应该更喜欢使用wsgi服务器。uwsgi 安装依赖项是为了方便使用。使用它必须考虑一些因素:
二进制代码prom2teams_uwsgi使用uwsgi服务器启动应用程序。由于与车轮不兼容 您必须使用sudo pip install安装prom2team(无二进制文件:all:prom2team)(https://github.com/pypa/wheel/issues/92" rel="nofollow">https://github.com/pypa/wheel/issues/92)
$ prom2teams_uwsgi <path to uwsgi ini config>
而uwsgi看起来像是:
[uwsgi]
master = true
processes = 5
#socket = 0.0.0.0:8001
#protocol = http
socket = /tmp/prom2teams.sock
chmod-socket = 777
vacuum = true
env = APP_ENVIRONMENT=pro
env = APP_CONFIG_FILE=/etc/default/prom2teams.ini
考虑不提供chdir属性或模块属性。
也可以通过执行符号链接来设置模块
文件:sudo mkdir-p/usr/local/etc/prom2teams/&;sudo ln-sf/usr/local/lib/python3.5/dist-packages/usr/local/etc/prom2teams/wsgi.py/usr/local/etc/prom2teams/wsgi.py
(检查dist packages文件夹)
另一种方法是为自己提供模块
文件模块示例和bin
uwsgi调用uwsgi示例
注意:默认日志级别为debug。消息被重定向到stdout。要启用文件日志,请设置env app_environment=(pro pre)
配置文件
配置文件是一个ini文件,其结构如下所述:
[Microsoft Teams]
# At least one connector is required here
Connector: <webhook url>
AnotherConnector: <webhook url>
...
[HTTP Server]
Host: <host ip> # default: localhost
Port: <host port> # default: 8089
[Log]
Level: <loglevel (DEBUG|INFO|WARNING|ERROR|CRITICAL)> # default: DEBUG
Path: <log file path> # default: /var/log/prom2teams/prom2teams.log
[Template]
Path: <Jinja2 template path> # default: app resources template
[Group Alerts]
Field: <Field to group alerts by> # alerts won't be grouped by default
[Labels]
Excluded: <Coma separated list of labels to ignore>
注意:分组警报从v2.2.0开始工作
配置普罗米修斯
prometheus中的webhook接收器允许配置prom2teams服务器。
URL由上一步中定义的主机和端口组成。
注意:为了保持与以前版本的兼容性,v2.0继续使用端点0.0.0.0:8089中的默认连接器("连接器")。这将在以后的版本中删除。
// The prom2teams endpoint to send HTTP POST requests to.
url: 0.0.0.0:8089/v2/<Connector1>
模板化
prom2teams提供了一个默认模板,用于在微软团队中呈现消息。在应用程序启动期间,可以使用"templatePath"参数('--templatePath<;jinja2 template file path>;')覆盖此模板。
从警报管理器接收到某些字段时,这些字段被认为是必需的。 如果未包含此字段,则会指定默认值"未知"。
所有非强制字段s和not in excluded list被注入附加标签
键。
大摇大摆的用户界面
在Web浏览器中访问<;host>;:<;port>;
(例如localhost:8089
)将显示API v1文档。
在Web浏览器中访问<;host>;:<;port>;/v2
(例如localhost:8089/v2
)将显示API v2文档。
测试
要运行测试套件,您应该键入以下内容:
$ pip3 install prom2teams0
使用
构建/p>
版本控制
有关可用的版本,请参见此存储库上的标记
另外,您可以在changelog.md文件中查看每个版本的更改。
作者
- 理想主义者-与理想主义者一起工作
另请参见参与此项目的贡献者列表。
许可证
此项目的许可证位于apache 2.0许可证下-有关详细信息,请参阅许可证文件。
贡献
有关我们的行为准则和向我们提交请求的过程的详细信息,请阅读contribution.md。