Prometheus常见的问题
一般问题
Prometheus是什么
Prometheus是一款高活跃生态系统的开源系统监控和警告工具包。
Prometheus与其他的监控系统比较
官方详细说明文档:https://prometheus.io/docs/introduction/comparison/
Prometheus有什么依赖?
Prometheus服务独立运行,没有其他依赖
Prometheus有高可用的保证吗?
是的,在多台服务器上运行相同的 Prometheus 服务,相同的报警会由警告管理器删除警告管理器当前不能保证高可用。
Prometheus是什么语言写的
大多数 Prometheus 组件是由 Go 语言写的。还有一些是由 Java,Python 和 Ruby 写的
Prometheus的特性、存储格式和 API有多稳定
Prometheus从v1.0.0版本开始就非常稳定了
为什么是使用的是 pull 而不是 push?
基于 Http 方式的拉模型提供了一下优点
- 当开发变化时,你可以在笔记本上运行你的监控。如果目标实例挂掉,你可以很容易地知道。你可以手动指定一个目标,并通过浏览器检查该目标实例的监控状况。
- 通过 pull 的方式避免了洪峰的存在
如果你必须要用Push模式,我们提供Pushgateway
怎么样把日志推送到 Prometheus 系统中
简单地回答:千万别这样做,你可以使用 ELK 栈去实现。比较详细的回答:Prometheus 是一款收集和处理度量指标的系统,并非事件日志系统。
谁写的Prometheus?
Prometheus 项目发起人是 Matt T. Proud 和 Julius Volz。 一开始大部分的开发是由 SoundCloud 赞助的
现在它由许多公司和个人维护和扩展
当前 Prometheus 的许可证是用的哪个
Apache 2.0
Prometheus单词的复数是什么
Prometheis
我能够动态地加载 Prometheus 的配置吗
通过发送 SIGHUP 信号量给 Prometheus 进行,将会重载配置文件。不同的组件会优雅地处理失败的更改
我能发送告警吗
通过警告管理器。当前,下面列表的外部系统都是被支持的
- General Webhooks
- PagerDuty(http://www.pagerduty.com/)
- HipChat(https://www.hipchat.com/)
- Slack(https://slack.com/)、
- Pushover(https://pushover.net/)
- Flowdock(https://www.flowdock.com/)
我能创建 Dashboard 吗
是的,但是在生产使用中,我们推荐用 Grafana。PromDash 和 Console templates 也可以
我能改变 timezone 和 UTC 吗?
不行。为了避免任何时区的困惑和混乱,我们用了 UTC 这个通用单位。新版本中图形化界面可以选择查看时显示的时区。
我能监控机器吗?
我能监控网络数据吗?
我能监控批量任务吗?
是的,通过Pushgateway最佳实践详见
Prometheus 的第三方工具有哪些?
详见exporters for third-party systems
我能通过 JMX 监控 JVM 应用程序吗?
是的。不能直接使用 Java 客户端进行测试的应用程序,你可以将JMX Exporter
工具对性能的影响是什么?
客户端和语言的性能可能不同。对于 Java,基准表明使用 Java 客户端递增计数器需要 12~17ns,具体依赖于竞争。
当服务崩溃恢复后,我的服务需要很多时间启动和清理垃圾日志。
你的服务可能遭到了不干净的关闭。Prometheus 必须在 SIGTERM 后彻底关闭,特别地对于一些重量级服务可能需要比较长的时间去。如果服务器崩溃或者司机(如:在等待 Prometheus 关闭时,内核的 OOM 杀死你的 Prometheus 服务),必须执行崩溃恢复,这在正常情况下需要不到一分钟。详见崩溃恢复
为什么 Prometheus 服务器组件不支持 TLS 或身份验证? 我可以添加这些吗
虽然 TLS 和身份验证是经常请求的功能,但我们有意不在 Prometheus 的任何服务器端组件中实现它们。 有这么多不同的选项和参数(仅限 TLS 的 10 多个选项),我们决定专注于建立最佳的监控系统,而不是在每个服务器组件中支持完全通用的 TLS 和身份验证解决方案。
如果您需要 TLS 或身份验证,我们建议将反向代理放在 Prometheus 前面。 参见例如使用 Nginx 添加对 Prometheus 的基本认证。