如何监视局域网中的连接

时间:2018-11-21 07:44:50

标签: microservices haproxy monitor

我有很多服务:节点,MySQL,Redis,弹性......
我想监视它们如何相互连接:连接速率,活动连接数...(Node1每秒创建30个与Node2 / MySQL / Redis的连接...),如下面的Haproxy统计图像所示。

Haproxy stat

当前我有两个选择:

  • Haproxy(代理):我想使用单个服务Haproxy对此进行存档,但是使用ALC来检测将哪些连接转发到什么服务似乎非常困难。
  • ELK(日志中心):我需要在每个服务(节点,MySQL,Redis ...)上创建日志文件,然后在日志中心上显示它们。我看到大量的工作要做而没有诸如Haproxy stat页面之类的内置功能。<​​/ li>

如何执行此操作?在这种情况下,日志中心好吗?

2 个答案:

答案 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等)。进行可视化和探索。

结论

这种方法的好处:

  1. Prometheus可以自动发现您添加到网络中的新节点
  2. 易于使用的haproxy,redis和mysql导出程序,用于 普罗米修斯
  3. 不需要代码,每个出口商只需要很少的代码 针对每种受监控技术的配置,它可以轻松实现 如果您的环境是容器,则进行容器化和部署 面向,否则您只需要在 正确的机器
  4. Prometheus非常非常容易部署