prometheus+grafana构建应用监控(一)

监控目标

  1. 基础监控
    • 服务器基础指标(cpu load、内存、文件句柄数、用户线程数、端口连接数、存储)
    • 语言相关比如jvm以及go、php等
  2. 基础中间件监控
    • redis
    • mysql
    • rabbitmq
    • memcached
  3. 应用监控
    • 应用接口调用频率
    • 应用接口响应时间
    • 应用接口异常次数
    • 其他
  4. 根据监控指标可配置定制化的阈值告警

选型比较

  1. 数据存储

    • 支持特性
      • 监控信息不需要长时间保存
      • 时间序列类型数据库
      • 支持标记
      • 可扩展
    • 比较

      • influxdb vs opentsdb
        a) opentsdb 使用hbase,太庞大
        b) 同时单机influxdb的写吞吐量、磁盘空间占用率、响应时间都优于opentsdb
      • influxdb vs Prometheus
        a). influxdb优势:
        支持数据类型多,包括int64、float64、string
        存储时间精确到纳秒
        实时写入,占用内存少
        高可用,可扩展(商用)
        支持日志类型数据存储

        b). Prometheus 优势:
        写入速度快
        查询语法简洁
        同时支持pull和push,使用pull方式很容易控制收集频率
        占用cpu少,最高使用率在0.2load
        配置简单,仅仅文件方式

        根据业务的现状采用prometheus,因为它集采集与存储于一身,配置简单,方便扩展。

  2. 展示和告警

    • 使用grafana展示,并使用它告警
    • 接入的告警方式
      • 邮件
      • 短信
      • 微信

对比参考:
1、 https://stackoverflow.com/questions/33350314/usecases-influxdb-vs-prometheus
2、 https://bitworking.org/news/2017/03/prometheus
3、 https://prometheus.io/docs/introduction/comparison/

你可能感兴趣的:(监控)