• ELK Stack 分布式日志系统 大纲


    1. Elastic Stack

    官网: https://www.elastic.co/cn/what-is/elk-stack

    image-20200720160010327

    image-20200721101950782

    2. 硬件配置

    2.1 推算依据

    ES JVM heap 最大可以设置32G 。
    30G heap 大概能处理的数据量 10 T。如果内存很大如128G,可在一台机器上运行多个ES节点实例
    

    2.2 两大应用场景

    A. 用于构建业务搜索功能模块,且多是垂直领域的搜索。数据量级几千万到数十亿级别。一般2-4台机器的规模。
    B. 用于大规模数据的实时OLAP(联机处理分析)经典的如ELK Stack,数据规模可能达到千亿或更多。几十到上百节点的规模
    

    3. elasticsearch

    image-20200720233958646

    ES集群工作原理:

    master-slave模式:
    master收集到日志后,会把一部分数据碎片到slave上(随机的一部分数据);同时master又会各自做副本,并把副本放到集群内其他机器上,这样就保证了数据不会丢失
    如果master宕机了,(es集群中节点会重新选举master)客户端在日志采集配置中将es主机指向slave,从而保证elk日志正常采集和展示
    

    4. logstash

    image-20200720234130072

    image-20200720234146211

    5. kibana

    image-20200720233858609

    6. Beats

    image-20200723100204396

    image-20200723100119754

    6.1 metricbeat

    image-20200720233217594

    Metricbeat有2部分组成,一部分是Module,另一部分为Metricset。

    • Module
      • 收集的对象,如:mysql、redis、nginx、操作系统等;
    • Metricset
      • 收集指标的集合,如:cpu、memory、network等;

    image-20200721101714511

    image-20200720233333366

    6.2 filebeat

    image-20200720233439472

    image-20200721101847023

    image-20200720233552071

    6.2.1 日志格式·要求

    [INFO] 2020-07-20 14:07:58 [cn.**.**.Main] - DAU|9349|搜索|2020-07-20 05:02:27
    [INFO] 2020-07-20 14:07:58 [cn.**.**.Main] - DAU|1883|评论商品|2020-07-20 01:01:20
    [INFO] 2020-07-20 14:08:00 [cn.**.**.Main] - DAU|2397|加入收藏|2020-07-20 05:01:00
    [INFO] 2020-07-20 14:08:05 [cn.**.**.Main] - DAU|8197|浏览页面|2020-07-20 11:02:01
    [INFO] 2020-07-20 14:08:18 [cn.**.**.Main] - DAU|8551|加入购物车|2020-07-20 06:05:01
    
    

    image-20200721103101140

    7、附件(了解)

    8.1 Devops 定义

    DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
    
    它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。
    
    它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工作必须紧密合作。
    
    

    image-20200724150859268

    8.2 实现DevOps需要什么

    硬性要求:工具上的准备

    代码管理(SCM):GitHub、GitLab、BitBucket、SubVersion
    构建工具:Ant、Gradle、maven
    自动部署:Capistrano、CodeDeploy
    持续集成(CI):Bamboo、Hudson、Jenkins
    配置管理:Ansible、Chef、Puppet、SaltStack、ScriptRock GuardRail
    容器:Docker、LXC、第三方厂商如AWS
    编排:Kubernetes、Core、Apache Mesos、DC/OS
    服务注册与发现:Zookeeper、etcd、Consul
    脚本语言:python、ruby、shell
    日志管理:ELK、Logentries
    系统监控:Datadog、Graphite、Icinga、Nagios
    性能监控:AppDynamics、New Relic、Splunk
    压力测试:JMeter、Blaze Meter、loader.io
    预警:PagerDuty、pingdom、厂商自带如AWS SNS
    HTTP加速器:Varnish
    消息总线:ActiveMQ、SQS
    应用服务器:Tomcat、JBoss
    Web服务器:Apache、Nginx、IIS
    数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
    项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
    

    IS
    数据库:MySQL、Oracle、PostgreSQL等关系型数据库;cassandra、mongoDB、redis等NoSQL数据库
    项目管理(PM):Jira、Asana、Taiga、Trello、Basecamp、Pivotal Tracker
    ``

  • 相关阅读:
    Chrome Extension 扩展程序 小白入门
    gulp 打包报错:ReferenceError: internalBinding is not defined
    error in static/js/xxx.js from UglifyJs Unpected token: punc() [static/js/xxx.js]
    ES6-
    浏览器的渲染原理(转载)
    nodeType、nodeName和nodeValue
    浏览器 HTTP 协议缓存机制详解
    JS函数的上下文环境
    ready和onload的区别
    自定义事件
  • 原文地址:https://www.cnblogs.com/zhengfx/p/13974355.html
Copyright © 2020-2023  润新知