我有很多服务:节点,MySQL,Redis,弹性......
我想监视它们如何相互连接:连接速率,活动连接数...(Node1每秒创建30个与Node2 / MySQL / Redis的连接...),如下面的Haproxy统计图像所示。
当前我有两个选择:
如何执行此操作?在这种情况下,日志中心好吗?
答案 0 :(得分:1)
使用ELK-具有filebeat的elasticsearch logstash和kibana堆栈。 Filebeat -将与logstash共享日志文件内容 Logstash -将扫描,过滤并共享所需内容以进行弹性搜索 Elasticsearch -将用作数据库,将logstash中的内容以json格式存储为文档。 基巴纳语-使用基巴纳语,您可以搜索所需的信息。您还可以使用相关数据绘制图形和其他视觉效果。
答案 1 :(得分:1)
问题
我认为您的问题不是收集统计信息并将其传递给Elasticsearch,而是从您的服务中提取指标的大量工作,因为其中大多数没有指标文件/日志。
然后,您需要使用一些自定义脚本导出它们,记录它们并使用filebeat捕获它,将其流式传输到logstash以进行文本处理和量度提取,以便为它们建立索引,从而可以进行某种分析,以及然后将其发送到elasticsearch。
我的回答
至少对于您所引用的3种服务,有Prometheus个导出器随时可用,您可以找到它们here。导出器是简单的过程,将查询您的服务本机统计API,并向Scrape(轮询)公开Prometheus的Prometheus度量标准API。
在Prometheus抓取指标之后,您可以通过Grafana(这是Prometheus的事实可视化层)在仪表板中显示它们,或将指标批量导出到所需的位置(Elasticsearch等)。进行可视化和探索。
结论
这种方法的好处: