
alerta/alerta-webAlerta监控系统是一款用于整合和去重多个来源警报的工具,提供快速概览可视化功能。通过单一系统,用户可以在单个屏幕上监控来自多种监控工具的警报,实现集中化的警报管理。
Alerta适用于需要集中管理多个监控工具(如Prometheus、Nagios、Zabbix等)警报的场景,特别适合IT运维团队、DevOps工程师和系统管理员,帮助他们快速发现、分析和处理系统异常。
使用Alerta镜像前,需先运行MongoDB或PostgreSQL数据库容器:
bash# 启动MongoDB数据库容器 $ docker run --name alerta-db -d mongo
然后链接数据库容器运行Alerta Web容器:
bash$ export DATABASE_URL=mongodb://db:27017/monitoring $ docker run --name alerta-web -e DATABASE_URL=$DATABASE_URL --link alerta-db:db \ -d -p <port>:8080 alerta/alerta-web
http://<docker>:<port>/apihttp://<docker>:<port>/| 环境变量 | 说明 | 默认值 |
|---|---|---|
ADMIN_PASSWORD | 所有管理员的密码,首次登录应修改 | alerta |
ADMIN_KEY | 管理员API密钥 | - |
ADMIN_KEY_MAXAGE | 管理员密钥有效期(秒) | 10年 |
HEARTBEAT_SEVERITY | 用于创建陈旧心跳警报的严重级别 | - |
| 环境变量 | 说明 |
|---|---|
DEBUG | 启用调试模式以增加日志输出(例如DEBUG=1) |
SECRET_KEY | 唯一的随机生成ASCII字符序列 |
DATABASE_URL | 数据库连接URI字符串,仅支持MongoDB和PostgreSQL |
DATABASE_NAME | 覆盖DATABASE_URL中的数据库名称 |
AUTH_REQUIRED | 要求用户使用Web UI或alerta CLI时进行身份验证 |
AUTH_PROVIDER | 认证提供程序,如basic、ldap、openid、saml2、keycloak |
ADMIN_USERS | 逗号分隔的登录名列表,将被创建为"admin"角色 |
CUSTOMER_VIEWS | 启用按客户分区的警报视图 |
OAUTH2_CLIENT_ID | OAuth2提供程序所需的客户端ID |
OAUTH2_CLIENT_SECRET | OAuth2提供程序所需的客户端密钥 |
ALLOWED_EMAIL_DOMAINS | 使用Google认证时的授权电子邮件域名列表 |
GITHUB_URL | 私有GitHub服务器的GitHub Enterprise URL |
ALLOWED_GITHUB_ORGS | 使用GitHub认证时的授权GitHub组织列表 |
GITLAB_URL | 公共或私有GitLab服务器的URL |
ALLOWED_GITLAB_GROUPS | 使用GitLab认证时的授权GitLab组列表 |
KEYCLOAK_URL | Keycloak URL |
KEYCLOAK_REALM | Keycloak领域 |
ALLOWED_KEYCLOAK_ROLES | Keycloak角色 |
CORS_ORIGINS | 可访问API的URL源列表 |
MAIL_FROM | 发送验证邮件的有效电子邮件地址 |
SMTP_PASSWORD | MAIL_FROM电子邮件账户的密码 |
PLUGINS | 要启用的插件列表 |
对于环境变量不支持的配置设置,可使用配置文件:
bash$ docker run -v $PWD/config/alertad.conf:/app/alertad.conf \ -v $PWD/config/config.json:/web/config.json \ -p <port>:8080 alerta/alerta-web
完整的服务器配置选项请参见Alerta文档。
所有内置和贡献的插件在镜像构建时已安装,仅PLUGINS环境变量中列出的插件会被启用。
示例(仅启用列出的插件):
bashPLUGINS=remote_ip,reject,heartbeat,blackout,slack,prometheus
自定义插件应作为额外的镜像层安装。
默认镜像使用Basic Auth进行用户登录,且登录为可选。
bash$ export CLIENT_ID=379647311730-6tfdcopl5fodke08el52nnoj3x8mpl3.apps.googleusercontent.com $ export CLIENT_SECRET=UpJxs02c_bx9GlI3X8MPL3-p
bash$ docker run --name alerta-web -e AUTH_PROVIDER=google -e CLIENT_ID=$CLIENT_ID \ -e CLIENT_SECRET=$CLIENT_SECRET -d -p <port>:8080 alerta/alerta-web
设置AUTH_REQUIRED=True强制用户登录:
bash$ docker run --name alerta-web -e AUTH_REQUIRED=True -e ...
设置ALLOWED_EMAIL_DOMAIN限制登录域名:
bash$ docker run --name alerta-web -e ALLOWED_EMAIL_DOMAIN=example.com ...
AUTH_PROVIDER=githubAUTH_PROVIDER=gitlab更多信息参见Alerta文档。
使用docker-compose一键创建和启动Alerta与Postgres:
bash$ docker-compose up
示例Docker Compose文件:
yamlversion: '2.1' services: web: image: alerta/alerta-web ports: - "8080:8080" depends_on: - db environment: - DEBUG=1 # 移除此行以关闭DEBUG模式 - DATABASE_URL=postgres://postgres:postgres@db:5432/monitoring - AUTH_REQUIRED=True - ADMIN_USERS=***,*** # 默认密码: alerta - ADMIN_KEY=demo-key - PLUGINS=reject,blackout,normalise,enhance restart: always db: image: postgres volumes: - ./pg-data:/var/lib/postgresql/data environment: POSTGRES_DB: monitoring POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres restart: always
安装Alerta命令行工具:
bash$ pip install alerta
配置文件$HOME/.alerta.conf:
ini[DEFAULT] endpoint = http://<docker>:<port>/api
若启用认证(AUTH_REQUIRED=True),需在Alerta控制台创建API密钥并添加到配置文件:
ini[DEFAULT] endpoint = ... key = 4nHAAslsGjLQ9P0QxmAlKIapLTSDfEfMDSy8BT+0
更多关于Alerta的信息请参见Alerta文档。
版权所有 (c) 2014-2020 Nick Satterly。采用MIT许可证。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务