
prom/promdash注意:PromDash 已被弃用。目前官方推荐使用 Grafana 来可视化 Prometheus 指标,因为它原生支持 Prometheus,且被广泛采用、功能强大。
Prometheus 的仪表板工具,用于展示和可视化监控指标。
!promdash
sudo apt-get install libmysqlclient-dev(详情)sudo apt-get install postgresql-9.{3|4} postgresql-server-dev-9.{3|4}(详情)sudo apt-get install sqlite3 libsqlite3-dev(详情)安装 gems:
bashbundle
设置数据库:
bashcp config/database.yml.example config/database.yml RAILS_ENV=development bundle exec rake db:setup
启动 Rails 服务器:
bashbundle exec rails s
在生产模式下,需要定义多个环境变量来配置数据库参数:
bashDATABASE_URL="mysql2://username:password@host/database" RAILS_ENV="production"
注意:除 MySQL 外,还可使用其他与 Rails 兼容的关系型数据库,如 PostgreSQL 或 SQLite3。详见 [***]
创建独立的 Ruby 环境并预编译资源:
bashmake build
从捆绑环境运行生产服务器:
bashbin/env bin/bundle exec bin/thin -p $PORT start
要使用 Docker 部署 PromDash,可使用 prom/promdash Docker 镜像。默认情况下,该镜像会以生产模式启动 thin webserver。若要运行迁移等 rake 任务,可指定任何命令作为 Docker 镜像的参数。
以下是使用基于文件的本地数据库运行 PromDash 的快速启动示例。
首先,在主机上的共享本地 Docker 卷中创建 SQLite3 数据库:
bashdocker run --rm -v /tmp/prom:/tmp/prom \ -e DATABASE_URL=sqlite3:/tmp/prom/file.sqlite3 \ prom/promdash ./bin/rake db:migrate
然后,使用刚创建的数据库启动 PromDash:
bashdocker run -p 3000:3000 -v /tmp/prom:/tmp/prom \ -e DATABASE_URL=sqlite3:/tmp/prom/file.sqlite3 \ prom/promdash
可直接向 thin 服务器传递参数:
bashdocker run -p 3000:4000 -v /tmp/prom:/tmp/prom \ -e DATABASE_URL=sqlite3:/tmp/prom/file.sqlite3 \ prom/promdash ./bin/thin -a localhost -p 4000 start
要在反向代理后部署 PromDash,可使用环境变量 PROMDASH_PATH_PREFIX 和 RAILS_RELATIVE_URL_ROOT 设置全局路径前缀。设置后,所有 URL 都将以指定前缀开头。
一种简单的方式是在同一台机器上运行反向代理、Prometheus 和 PromDash,通过认证保护部署,限制直接的 IP:PORT 访问。
反向代理(如 nginx、HAProxy)
http(s)://dash.example.com/dash 路由到后端 localhost:3000http(s)://dash.example.com/prom 路由到后端 localhost:9090运行 Prometheus 时仅绑定到 localhost,以限制绕过认证的直接外部网络访问。记得在 -web.external-url 中传递路径部分。Docker 示例:(完整参考)
bashdocker run -p 127.0.0.1:9090:9090 -v /prometheus-data \ prom/prometheus -config.file=/prometheus-data/prometheus.yml \ -web.external-url "[***]"
运行 PromDash 的方式类似。运行后,在 Web UI([***])中添加 URL 为 [***] 的 Prometheus 服务器。
bashdocker run -p 127.0.0.1:3000:3000 -v /tmp/prom:/tmp/prom \ -e DATABASE_URL=sqlite3:/tmp/prom/file.sqlite3 \ -e PROMDASH_PATH_PREFIX=/dash \ -e RAILS_RELATIVE_URL_ROOT=/dash \ prom/promdash
最后,访问 dash.example.com/dash 和 dash.example.com/prom 检查反向代理是否正常工作,两者都应提示输入凭据(如 HTTP 基本认证)。可使用 Chrome 无痕模式强制重新认证。然后访问公共 IP 的 <IP>:3000/dash 和 <IP>:9090/prom,确认无法直接访问(页面加载错误)。
部署 PromDash 新版本前,请遵循以下清单:
bundle exec rake db:migrate)?部署新版本后:
由于经常需要在内联框架(iframe)中显示各种 PromDash 视图,我们为所有视图禁用了 Rails 的默认头 X-Frame-Options: SAMEORIGIN:
[***]
如果担心 点击劫持***,只要不需要在 iframe 中显示仪表板,恢复此提交是安全的。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务