Prometheus学习系列(四)之FAQ

1、通常问题

1. Prometheus是什么?

Prometheus是一款高活跃生态系统的开源系统监控和警告工具包。详见概览node

2. Prometheus与其余的监控系统比较

详见比较git

3. Prometheus有什么依赖?

Prometheus服务独立运行,没有其余依赖github

4. Prometheus有高可用的保证吗?

是的,在多台服务器上运行相同的Prometheus服务,相同的报警会由警告管理器删除 警告管理器当前不能保证高可用,但高可用是目标浏览器

5. 我被告知Prometheus"不能水平扩展"

事实上,有许多方式能够扩展Prometheus。 阅读Robust Percetion的博客关于Prometheus的扩展服务器

6. Prometheus是什么语言写的?

大多数Prometheus组件是由Go语言写的。还有一些是由Java,Python和Ruby写的网络

7. Prometheus的特性、存储格式和APIs有多稳定?

Prometheus从v1.0.0版本开始就很是稳定了,咱们如今有一些版本功能规划,详见路线图工具

8. 为何是使用的是pull而不是push?

基于Http方式的拉模型提供了一下优势:性能

  • 当开发变化时,你能够在笔记本上运行你的监控
  • 若是目标实例挂掉,你能够很容易地知道
  • 你能够手动指定一个目标,并经过浏览器检查该目标实例的监控情况

整体来讲,咱们相信pull模式比push模式要好一些,可是当考虑一个监控系统时,它不是主要的考虑点 Push vs. Pull监控在Brian Brazil的博客中被详细的描述测试

若是你必需要用Push模式,咱们提供Pushgatewaygoogle

9. 怎么样把日志推送到Prometheus系统中?

简单地回答:千万别这样作,你可使用ELK栈去实现 比较详细的回答:Prometheus是一款收集和处理度量指标的系统,并不是事件日志系统。Raintank的博客有关日志、度量指标和图表在日志和度量指> 标之间,进行了详尽地阐述。

若是你想要从应用日志中提取Prometheus度量指标中。 谷歌的mtail可能会更有帮助

10. 谁写的Prometheus?

Prometheus项目发起人是Matt T. Proud和Julius Volz。 一开始大部分的开发是由SoundCloud赞助的 如今它由许多公司和我的维护和扩展

11. 当前Prometheus的许可证是用的哪一个?

Apache 2.0

12. Prometheus单词的复数是什么?

Prometheis

13. 我可以动态地加载Prometheus的配置吗?

是的,经过发送SIGHUP信号量给Prometheus进行,将会重载配置文件。不一样的组件会优雅地处理失败的更改

14. 我能发送告警吗?

是的,经过警告管理器 当前,下面列表的外部系统都是被支持的

15. 我能建立Dashboard吗?

是的,可是在生产使用中,咱们推荐用GrafanaPromDash和[Console templates](https://prom etheus.io/docs/visualization/consoles/)也能够

16. 我能改变timezone和UTC吗?

不行。为了不任什么时候区的困惑和混乱,咱们用了UTC这个通用单位

2、仪表

1. 哪些语言有工具库?

这里有不少客户端库,用Prometheus的度量指标度量你的服务。详见client库 若是你对功能工具库很是感兴趣,详见exposition formats

2. 我能监控机器吗?

是的。Node Exporter暴露了不少机器度量指标,包括CPU使用率、内存使用率和磁盘利用率、文件系统的余量和网络带宽等数据。

3. 我能监控网络数据吗?

是的。SNMP Exporter容许监控网络设备。

4. 我能监控批量任务吗?

是的,经过Pushgateway. 详见最佳实践

5. Prometheus开箱即用的监控应用程序是什么?

详见the list of exporters and integrations.

6. 我能经过JMX监控JVM应用程序吗?

是的。不能直接使用Java客户端进行测试的应用程序,你能够将JMX Exporter单独使用或者Java代理使用

7. 工具对性能的影响是什么?

客户端和语言的性能可能不一样。对于Java,基准代表使用Java客户端递增计数器须要12~17ns,具体依赖于竞争。最关键的延迟关键代码以外的全部代码都是能够忽略的。

3、故障排除

1. 个人Prometheus 1.x服务器须要很长时间才能启动并使用有关崩溃恢复的大量信息来保存日志。。

你的服务可能遭到了不干净的关闭。Prometheus必须在SIGTERM后完全关闭,特别地对于一些重量级服务可能须要比较长的时间去。若是服务器崩溃或者强制杀死(如:在等待Prometheus关闭时,内核的OOM杀死你的Promethe us服务),必须执行崩溃恢复,这在正常状况下须要不到一分钟。详见崩溃恢复

2. 个人Prometheus 1.x服务器内存不足。

请参阅有关内存使用状况的部分,以配置Prometheus可用的内存量。

3. 个人Prometheus 1.x服务器报告处于“匆忙模式”或“存储须要限制”。

您的存储空间很重。阅读有关配置本地存储的部分,了解如何调整设置以得到更好的性能。

4、实现

1. 为何全部样品值都是float64数据类型?我想要integer数据类型。

咱们限制了float64以简化设计,IEEE 754双精度二进制浮点格式支持高达253的值的整数精度。若是您须要高于253但低于263的整数精度,支持本地64位整数将有帮助。原则上,支持不一样的样本值类型 (包括某种大整数 ,支持甚至超过64位)能够实现,但它如今不是一个优先级。 注意,一个计数器,即便每秒增长100万次,只有在超过285年后才会出现精度问题。

2. 为何Prometheus服务器组件不支持TLS或身份验证? 我能够添加这些吗?

注意:Prometheus团队在2018年8月11日的开发峰会期间已经改变了对此的立场,如今正在项目的路线图中支持TLS和服务端点的身份验证。 代码更改后,将更新此文档。

虽然TLS和身份验证是常常被请求的功能,但咱们故意没有在Prometheus的任何服务器端组件中实现它们。 咱们已经决定专一于构建最佳监控系统,而不是在每一个服务器组件中支持彻底通用的TLS和身份验证解决方案,所以有两个不一样的选项和参数(仅TLS的10多个选项)。

若是您须要TLS或身份验证,咱们建议将反向代理放在Prometheus前面。 参见例如使用Nginx添加对Prometheus的基本认证。

这仅适用于入站链接。 Prometheus确实支持删除TLS-和auth启用的目标,以及其余建立出站链接的Prometheus组件具备相似的支持。

5、连接

Prometheus官网地址:prometheus.io/ 个人Github:github.com/Alrights/pr…

相关文章
相关标签/搜索