第一章 日志收集

  1. filebeat的作用是什么?
    filebeat是一款部署在服务器上的日志收集工具, 用来实时收集指定服务的日志, 并对日志进行指定输出
  2. filebeat的输出目标可以设置多个?
    一个
  3. filebeat在第一次收集日志时, 会从第一行读取, 若第二次也想从第一行读取怎么操作?
    删除安装目录下的data目录即可
    安装目录: /usr/local/filebeat/filebeat
  4. filebeat的事件是什么?
    一行日志
  5. filebeat的数据格式是什么?
    json
  6. 前台启动使用什么? 后台启动使用什么?
    前台启动: /usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml
    后台启动: nohup /usr/local/filebeat/filebeat -c /usr/local/filebeat/filebeat.yml > /root/filebeat.log 2>&1 &
  7. filebeat的组件都有什么?
    harvester(收割者): 收集日志文件中的每一行记录, 并封装成事件
    inputs(输入): 管理日志来源, 接收收割者的事件
    registry(注册表): 记录日志收割进度, 避免重复收割或丢失
    processors(处理器): 完成数据的清洗, 包括字段的删除, 添加
    queue(队列): 缓存日志事件, 规避输出端效率慢或故障
    output(输出): 负责将日志事件发送到指定目标
    module(预配置模块): 采集常见服务日志的预定义模板
  8. filebeat的模块是什么? 常用的模块都有什么?
    采集常见服务日志事件的预定义模板
    nginx
    apache
    mysql
  9. filebeat启用预定义模块怎么操作?
    /usr/local/filebeat/filebeat modules enable apache

    重命名modules下对应模块的文件为: apache.yml
    并将文件中的access与error的enabled改为true
  10. filebeat的input组件中, var.path的作用是什么?
    当服务的日志文件不是默认路径时, 在input中使用var.paths来指定收集日志的路径
  11. var.path指定的路径与默认路径会冲突吗?
    不会
  12. filebeat的常用input都有什么?
    log: 读取本地日志文件
    container: 读取容器的日志
    stdin: 标准输入
  13. filebeat的常用output都有什么?
    output.elasticsearch: 输出到elasticsearch
    output.logstash: 输出到logstash
    output.kafka: 输出到kafka
    output.stdout: 标准输出
  14. filebeat的处理器怎么对日志进行过滤?
    删除事件: drop_event:
    删除字段: drop_fields:
  15. filebeat的处理器怎么对日志进行增强?
    添加字段: add_fields:
  16. logstash的作用是什么?
    logstash是一款部署在服务器上的日志收集工具, 用来实时收集指定服务的日志, 并对日志进行指定输出, 常用于对filebeat收集的日志进行过滤
  17. logstash的三大组件分别是什么?
    input: 从不同来源接收原始数据
    filter: 对input的数据进行清洗, 并将数据转换为结构化字段
    output: 将数据输出到指定目标
  18. logstash收集filebeat事件的端口是什么?
    5044
  19. logstash输入或输出时直接对数据进行格式化使用什么插件?
    codec => “json”
    codec => “rubydebug”
  20. logstash常用的input有什么?
    beats{}: 收集filebeat的输出
    file{}: 收集指定文件的内容
    kafka{}: 收集kafka中的数据
    stdin{}: 标准输入
  21. logstash常用的output有什么?
    elasticsearch{}: 输入到elasticsearch
    file{}:输出到指定文件
    kafka{}: 输出到kafka
    stdout{}: 标准输出
  22. logstash常用的filter有什么?
    grok: 将非结构数据转换为结构化数据
    mutate: 对数据中的字段, 进行增删等操作
    drop: 删除无用数据
    date: 将@timestamp字段的值从收集时间, 改为日志发生时间
  23. grok插件常用的格式化模式是什么?
    match => { “message” => “%{COMBINEDAPACHE}” }
    match => { “message” => “%{HTTP_COMBINEDLOG:nginx_log}” }
  24. mutate重命名, 删除, 添加字段分别是用什么?
    重命名: rename => { “字段” => “新字段名称” }
    删除: remove_field => [“字段1”,“字段2”]
    添加: add_field => { “字段名” => “字段值” }
  25. drop插件怎么实现删除无用事件?
    drop { if [条件] == 值 {} }
    第二章 日志存储
  26. es的作用是什么?
    用于存储logstash与filebeat收集的日志, 并对存储的日志进行搜索与分析
  27. es支持的数据类型都有什么?
    结构化数据
    非结构化数据
    数据字典
  28. es的最小数据单元是什么?
    文档: json化后的一条数据
  29. es的数据格式是什么?
    json
  30. es为每一个文档添加索引的作用是什么?
    方便检索文档
  31. es集群的作用是什么?
    将数据进行分布式存储, 具有高可用, 易扩展的特点
  32. es集群的节点都有什么? 作用分别是什么?
    主节点: 负责管理集群的状态与分片的分配
    数据节点: 负责数据主分片与副本分片的存储, 写入, 查询等工作
  33. es集群的主分片与副本分片是什么?
    主分片: 将数据均匀的拆分, 存储到不同数据节点中
    副本分片: 主分片的备份
  34. es集群的主分片和他的副本分可以存储在同一节点吗?
    不能存储在同一数据节点, 避免数据丢失
  35. es的工作端口是什么?
    9200: 接收数据
    9300: 用于集群主机之间选举主节点
  36. 检测es集群的健康状态使用什么命令? 反应健康状态的颜色都有什么? 分别表示什么意思?
    curl -X GET “localhost:9200/_cat/health?v”
    绿色: 表示正常
    黄色: 单节点部署或至少有一个副本分片未分配
    红色: 至少有一个主分片未分配
  37. 检测es集群节点的运行状态使用什么命令? 主节点与从节点分别使用什么表示?
    curl -X GET “localhost:9200/_cat/nodes?v”
    主节点: *
    数据节点: -
  38. es集群查看索引使用什么命令?
    curl -X GET “localhost:9200/_cat/indices”
  39. es集群配置节点都需要配置什么?
    集群名称: cluster.name: es
    节点名称: node.name: es1
    是否是数据节点: node.data: true
    工作网卡: network.host: 0.0.0.0
    工作端口: http.port: 9200
    集群节点:
    discovery.seed_hosts:
  • es1
  • es2
  • es3
    集群中主节点的选举范围: cluster.initial_master_nodes: [“es1”,“es2”,“es3”]
    第三章 日志管理
  1. kibana的作用是什么?
    用于对es集群中存储的日志进行可视化, 同时对日志进行分析和管理
  2. kibana的服务端口是什么?
    5601
  3. kibana的配置项都有什么?
    服务端口: server.port: 5601
    工作网卡: server.host: “0.0.0.0”
    连接es集群的地址与端口: elasticsearch.hosts: [http://es1:9200",“http://es2:9200”,“http://es3:9200”]
    配置kibana的日志存放路径: logging.dest: /var/log/kibana/kibana.log
    设置操作界面为中文: il8n.locale: “zh-CN”
    第四章 日志缓冲
  4. kafka的作用是什么?
    用于数据缓冲队列, 临时存放数据, 避免高并发导致集群宕机, 具有削峰填谷的能力
  5. kafka的运行依赖什么?
    zookeeper
  6. kafka的特点都有什么?
    高吞吐量: 每秒可以处理十万级的消息
    可扩展性: 支持热扩展
    可靠性: kafka的数据会被持久化到磁盘, 并且支持数据的备份
    容错性: 允许集群中的节点失败
    高并发: 支持数千用户的同时读写
  7. kafka的组件都有什么? 作用分别是什么?
    话题(topic): kafka将消息进行分类, 每一个类型就是一个topic
    生产者(producer): 消息的发送者, 将消息发送给kafka
    消费者(consumer): 消息的接收者, 读取kafka中的消息
    服务代理(broker): 处理生产者与消费者的请求, 一个集群有多个broker
    partition(区): 将一个topic拆分成多个分片存储,
    replication: 区的副本, 防止消息丢失, 每个分片可以有多个副本
    leader: 处理所有生产者的写入以及消费者的读取
    follower: 同步leader中的数据, 不处理请求, leader宕后, follower会自动作为leader
    zookeeper: 对数据进行存储
  8. elk+kafka架构的工作原理是什么?
    由filebeat收集日志, 并将日志转发给kafka暂存, 之后logstash拉区kafka中的日志, 对日志数据进行过滤, 之后发送给es进行存储并做备份, 而用户可以借助kibana在可视化页面中, 查看日志信息
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐