需求背景:
业务发展越来越庞大,服务器越来越多 各种访问日志、应用日志、错误日志量越来越多,导致运维人员无法很好的去管理日志 开发人员排查问题,需要到服务器上查日志,不方便 运营人员需要一些数据,需要我们运维到服务器上分析日志
为什么要用到ELK:
一般我们需要进行日志分析场景:直接在日志文件中 grep、awk 就可以获得自己想要的信息。但在规模较大也就是日志量多而复杂的场景中, 此方法效率低下,面临问题包括日志量太大如何归档、文本搜索太慢怎么办、如何多维度查询。需要集中化的日志管理,所有服务器上的日志收集汇总。 常见解决思路是建立集中式日志收集系统,将所有节点上的日志统一收集,管理,访问。
大型系统通常都是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息, 定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。
一个完整的集中式日志系统,需要包含以下几个主要特点:
收集-能够采集多种来源的日志数据 传输-能够稳定的把日志数据传输到中央系统 存储-如何存储日志数据 分析-可以支持 UI 分析 警告-能够提供错误报告,监控机制
而ELK则提供了一整套解决方案,并且都是开源软件,之间互相配合使用,完美衔接,高效的满足了很多场合的应用。是目前主流的一种日志系统。
ELK简介:
ELK是三个开源软件的缩写,分别为:Elasticsearch 、 Logstash以及Kibana , 它们都是开源软件。不过现在还新增了一个Beats, 它是一个轻量级的日志收集处理工具(Agent),Beats占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具, 目前由于原本的ELK Stack成员中加入了 Beats 工具所以已改名为Elastic Stack。
Elastic Stack包含:
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片, 索引副本机制,restful风格接口,多数据源,自动搜索负载等。详细可参考Elasticsearch权威指南。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上, server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
Beats在这里是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。 相比 Logstash,Beats所占系统的CPU和内存几乎可以忽略不计
ELK一些组件:
openjdk 1.8.0_191 ElasticSearch Logstash Kibana Filebeat
ELK Stack (5.0版本之后)–> Elastic Stack == (ELK Stack + Beats)。目前Beats包含六种工具:
Packetbeat: 网络数据(收集网络流量数据) Metricbeat: 指标 (收集系统、进程和文件系统级别的 CPU 和内存使用情况等数据) Filebeat: 日志文件(收集文件数据) Winlogbeat: windows事件日志(收集 Windows 事件日志数据) Auditbeat:审计数据 (收集审计日志) Heartbeat:运行时间监控 (收集系统运行时的数据)
关于x-pack工具:
x-pack对Elastic Stack提供了安全、警报、监控、报表、图表于一身的扩展包,是收费的,所以本文不涉及x-pack的安装。
ELK相关链接:
ELK官网:https://www.elastic.co/cn/ 中文指南:https://www.gitbook.com/book/chenryn/elk-stack-guide-cn/details
备注:以上内容来自网络。
一、准备
ELK注意点:
1、主要掌握logstash的原理、ElasticSearch原理、Kibana可视化技术(这里我采用Grafana可视化) 2、logstash的时候output先输出到命令控制台,如果没问题再写入配置文件。 3、要引入redis或者kanfa,有很多优点。一般情况下redis都能胜任,kanfa太重型。
1、关闭防火墙和selinux
2、安装常用工具、同步时间
3、更改最大文件描述符、打开数、进程数
4、修改最大打开进程数,最低2048
5、其他设置

二、安装JDK环境
可以yum、rpm、tar.gz等方式安装。为了简单和省事,我直接yum方式安装(推荐yum方式安装,因为它会将java程序放在/usr/bin等目录下。 其它两种方式会造成服务启动不了,需要设置环境变量、elk配置文件或做软链接)。
[root@iZj6c7bp1a289r04izstw4Z ]# yum install java-1.8.0-openjdk -y [root@localhost ]# java -version openjdk version “1.8.0_191” OpenJDK Runtime Environment (build 1.8.0_191-b12) OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
三、安装ELK
1、配置yum源
2、安装ELK
四、配置ELK
1、配置elasticsearch
2、配置kibana


3、配置logstash
4、测试logstash场景1(系统日志作为输入,直接输出到终端)。
#设置syslog日志配置文件 [root@iZj6c7bp1a289r04izstw4Z ~]# vim /etc/rsyslog.conf RULES . @172.31.116.244:10514
[root@data-node1 ~]# systemctl restart rsyslog
5、测试logstash场景2(系统日志作为输入,输出到es服务器)
6、测试logstash场景3(nginx日志文件作为输入,经过过滤后,输出到es服务器)
7、测试logstash场景4(filebeat收集nginx日志并作为输入,经过过滤后,输出到es服务器)
8、配置kibana




9、收集腾讯云CDN日志,安装grafana5.3可视化日志
访问grafana:





备注:注意时间要选择正确,要不没数据显示。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/159856.html