专业的编程技术博客社区

网站首页 > 博客文章 正文

去年写的监控方案调研对比(视频监控市场调研)

baijin 2024-10-15 08:33:46 博客文章 9 ℃ 0 评论

1 现状分析

某云平台经常出现 504 , 502 ,可以通过 awk 命令分析 单个日志,但无法获取整个系统运行全貌。

这里总计需要整理的指标点:

▍ 请求总览

  • 异常状态数量 比如 504 404 502 以及请求数量分布 (top 100 )
  • 动态请求数量 : 请求分布按照请求数量
  • 静态请求数量: 静态页面分布
  • IP 访问统计 & 分布
  • 域名访问统计

▍ 性能指标

  • 动态请求 MAX ,MIN , TP999 , TP99 性能分析

2 GoAccess工具分析

GoAccess 被设计成快速的并基于终端的日志分析工具。其核心理念是不需要通过 Web 浏览器就能快速分析并实时查看 Web 服务器的统计数据(这对于需要使用 SSH 来对访问日志进行快速分析或者就是喜欢在终端环境下工作的人来说是超赞的)。

使用终端分析日志结果 :

goaccess -a -d -f /var/log/nginx/access.log

使用定时器以HTML格式输出分析结果

重启nginx,在浏览器中访问/report-armstrong.html,输入用户名和密码查看对应数据

缺点:

  • 单机部署,需要安装依赖, 修改 NGXIN 配置 ,添加本地 cron 定时任务
  • 也不太能完全满足监控的需求

3 经典ELK

ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats、Logstash、Elasticsearch、Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案。本文将会介绍ELK常见的架构以及相关问题解决。

  1. Filebeat是一款轻量级,占用服务资源非常少的数据收集引擎,它是ELK家族的新成员,可以代替Logstash作为在应用服务器端的日志收集引擎,支持将收集到的数据输出到Kafka,Redis等队列。
  2. Logstash:数据收集引擎,相较于Filebeat比较重量级,但它集成了大量的插件,支持丰富的数据源收集,对收集的数据可以过滤,分析,格式化日志格式。
  3. Elasticsearch:分布式数据搜索引擎,基于Apache Lucene实现,可集群,提供数据的集中式存储,分析,以及强大的数据搜索和聚合功能。
  4. Kibana :数据的可视化平台,通过该web平台可以实时的查看 Elasticsearch 中的相关数据,并提供了丰富的图表统计功能。

优点:

  1. 方案成熟 ,本质是日志内容保存到 搜索引擎 ;
  2. 负载均衡服务器 NGINX 和 日志分析服务隔离。

缺点:

  1. kibana 需要定制查询方案 ;
  2. Elastic Search 存储成本较高,需要存储全量日志数据;
  3. 界面并不直观。

4 阿里云云端方案

登录 日志管理平台,配置日志格式。

通过 类SQL 语句分析日志:

  • 来源IP分布
  • 图展示最近一天访问IP地址的来源情况,所关联的查询分析语句如下所示:
  • * | select count(1) as c, ip_to_province(remote_addr) as address group by address limit 100

请求状态占比图展示最近一天各HTTP状态码的占比情况,所关联的查询分析语句如下所示:

 * | select count(1) as pv,
         status
         group by status

4 自研日志分析

  1. 在负载均衡服务器 Nginx 上配置 Filebeat ;
  2. filebeat 配置监控哪些日志信息,发送日志数据到 kafka ;
  3. 通过流式计算 nginx 日志信息 ;
  4. 计算结果保存到 ES (或者其他的存储: mysql )

所需硬件自研 :

  1. 单 Kafka broker ;
  2. 2核4G 流式计算服务器 ;
  3. 存储(mysql 或者 本地搜索);
  4. 控制台服务 (查询展现)

5 总结

若仅仅是分析整体系统状态,个人建议:自研日志分析系统。

这种模式比较轻,适合单独部署,可作为独立分析系统的工具。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表