ELK介绍说明
介绍 ELK 是由 Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个组合体,ELK 是 elastic 公司研发的一套完整的日志收集、分析和展示的企业 级解决方案,在这三个软件当中,每个软件用于完成不同的功能,ELK 又称为 ELK stack,官方域名为 elastic.co,ELK stack 的主要优点有如下几个: 处理方式灵活:elasticsearch 是实时全文索引,具有强大的搜索功能 配置相对简单:elasticsearch 的 API 全部使用 JSON 接口,logstash 使用模块配置,kibana 的配置文件部分更简单。 检索性能高效:基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。 集群线性扩展:elasticsearch 和 logstash 都可以灵活线性扩展 前端操作绚丽:kibana 的前端设计比较绚丽,而且操作简单 什么是 Elasticsearch: 是一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索、支持分布式可实现高可用、提供 API 接口,可以处理大规模日志数据,比如 Nginx、Tomcat、系统日志等功能。 Elasticsearch 使用 Java 语言开发,是建立在全文搜索引擎 Apache Lucene 基础之上的搜索引擎,https://lucene.apache.org/。 Elasticsearch 的特点 实时搜索、实时分析 分布式架构、实时文件存储 文档导向,所有对象都是文档 高可用,易扩展,支持集群,分片与复制 接口友好,支持 json 什么是 Logstash Logstash 是一个具有实时传输能力的数据收集引擎,其可以通过插件实现日志收集和转发,支持日志过滤, 支持普通 log、自定义 json 格式的日志解析,最终把经过处理的日志发送给 elasticsearch。 什么是 kibana: Kiabana:是基于 Node.js 开发的展示工具,可以为 elasticsearch 提供一个查看数据的 web 界面,其主要是通过elasticsearch 的 API 接口进行数据查找, 并进行前端数据可视化的展现,另外还可以针对特定格式的数据生成相应的表格、柱状图、饼图等。 Filebeat:轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据, 并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。 为什么使用 ELK? ELK 组件在海量日志系统的运维中,可用于解决以下主要问题: - 分布式日志数据统一收集,实现集中式查询和管理 - 故障排查 - 安全信息和事件管理 - 报表功能 ELK 的好处: ELK 组件在大数据运维系统中,主要可解决的问题如下: - 日志查询,问题排查,故障恢复,故障自愈 - 应用日志分析,错误报警 - 性能分析,用户行为分析 LK的工作原理 在所有需要收集日志的服务器上部署Logstash; 或者先将日志进行集中化管理在日志服务器上, 在日志服务器上部署 Logs tash。 Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。 Elasticsearch 对格式化后的数据进行索引和存储。 Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。 ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ elasticsearch优化部分: 一个是内核参数 vm.max_map_count = 262144 一个是资源限制 需要允许elasticsearch用户占用系统的资源上限 内存优化 推荐是宿主机的一半内存,最大不超过30G index的创建机制: 按天创建 访问量比较大的业务日志,比如各种web服务的访问日志 按周创建 网络设备的日志,web服务错误日志 按月创建 系统日志,/var/log/message /var/log/syslog index名称格式:(logstash +服务名称+IP+时间) logstash_tomcat.access.log_192.168.80.120_2021.10.21 索引=index ES集群状态: 绿色状态: 表示集群各节点运行正常,而且没有丢失任何数据,各主分片和副本分片都运行正常 黄色状态: 表示由于某个节点宕机或者其他情况引起的,node节点无法连接、副本分片丢失等场景,但是还没有丢失任何数据 红色状态: 表示由于某个节点宕机或者其他情况引起的主分片丢失及数据丢失 Master 与 Slave 的区别: Master 的职责:统计各 node 节点状态信息、集群状态信息统计、索引的创建和删除、索引分配的管理、关闭 node 节点等 Slave 的职责: 从 master 同步数据、等待机会成为 Master 收集日志的几种方式: 1.logstash 2.logstash的TCP/UDP 监听端口,在”其他“服务器安装 nc 命令 3.通过 rsyslog 收集日志,要logstash接收再转发到ES : 4.filebeat 收集日志: 通过 shell 命令获取集群状态: curl -XGET 192.168.80.100:9200/_cat/nodes?pretty 查看节点状态 curl -XGET 192.168.80.100:9200/_nodes/process?pretty 查看节点详细信息 curl -XGET 192.168.80.100:9200/_cluster/health?pretty 查看健康状态 curl -XGET http://192.168.80.100:9200/_cat?pretty curl http://192.168.80.100:9200/_cat/indices?v 查看索引和分片状态 curl -XGET 'http://192.168.80.100:9200/_cat/indices?v&pretty'查看损坏索引 curl 192.168.80.100:9200/_settings 查看索引和副本 curl -i -XPUT 192.168.80.100:9200/linux39/_settings -H 'content-Type:application/json' -d '{"number_of_replicas": 0}' 修改linux39副本数量为0。