【问题标题】:Apache Cassandra monitoringApache Cassandra 监控
【发布时间】:2018-03-23 22:52:26
【问题描述】:

监控 cassandra 节点是否启动的最佳方法是什么?由于安全原因,JMX 和 nodetool 是不可能的。我通过 Rest Api 进行集群指标监控,但我知道即使一个节点运行,Rest Api 也只会报告整个集群。

【问题讨论】:

    标签: cassandra monitoring


    【解决方案1】:

    好吧,我已经集成了一个系统,我可以在其中监控与我的所有节点集群有关的所有指标。这看起来很复杂,但集成起来很简单。您将需要以下组件来构建cassandra 的监控系统:

    • jolokia 罐子
    • 电报
    • influxdb
    • 格拉法纳

    我正在写一个简短的程序,它是如何工作的。
    步骤1:将jolokia jvm jar复制到install_dir/apache-cassandra-version/lib/,jolokia jvm代理可以从google的任何地方下载。 p>

    第2步:将以下行添加到install_dir/apache-cassandra-version/conf/cassandra-env.sh

    JVM_OPTS="$JVM_OPTS -javaagent:<here_goes_the_path_of_your_jolokia_jar>"
    

    第 3 步: 在每个节点上安装 telegraf 并配置您要监控的指标。并启动telegraf 服务。

    第 4 步: 安装grafana 并配置您的 ip、端口、协议。 grafana 将为您提供一个仪表板来管理您的节点并启动 grafana 服务。您的指标将能够在此处获得可见性。

    第 5 步:在另一台服务器上安装 influxdb,您要从该服务器存储您的指标数据,这些数据将通过电报代理。

    第6步:浏览您提到的ip,通过浏览器启动grafana并添加数据源ip(influxdb ip),然后自定义仪表板。

    图片来源:https://blog.pythian.com/monitoring-cassandra-grafana-influx-db/

    【讨论】:

      【解决方案2】:

      这不是用于监控,而仅用于节点状态。 Cassandra CQL 驱动程序通过 Host.StateListener 接口提供特定节点是 UP 还是 DOWN 的信息。驱动程序使用此信息来标记节点 UP 或 Down。因此,如果无法访问 JMX,则可以在节点关闭或启动时使用它。

      Java 文档 API:https://docs.datastax.com/en/drivers/java/3.3/

      【讨论】:

        【解决方案3】:

        我想出了一个脚本,它可以侦听集群中的 DN 节点并将其报告给我们与 pagerduty 集成的监控设置。

        脚本在我们的一个节点上运行,每分钟执行一次 nodetool 状态并报告所有故障节点。

        这里是脚本https://gist.github.com/johri21/87d4d549d05c3e2162af7929058a00d1

        [1]:

        【讨论】:

          猜你喜欢
          • 2017-02-18
          • 2016-07-19
          • 1970-01-01
          • 2018-05-22
          • 2017-04-29
          • 2012-11-07
          • 1970-01-01
          • 2023-03-13
          • 1970-01-01
          相关资源
          最近更新 更多