Centos 7 部署ELK Stack+beats+kafka

Centos 7 部署ELK Stack+beats+kafka
整体的架构如下图:

介绍篇:
日志的定义:
日志是带时间戳的基于时间序列的机器运行数据,包括硬件(服务器,网络设备,存储设备,IOT设备),系统(Linux&windows&docker&*bsd),数据库(Mysql&Oracle&SQL server..),应用程序(nginx,tomcat,Apache...)。日志是反映设备运行真是数据,也是系统运行情况,故障分析,性能分析,安全问题追踪等问题的重要依据。
为啥要有集中的日志管理平台?
你公司对服务端日志你有多重视,包括web日志、应用程序日志、服务器,网络设备,存储设备,IOT设备日志等等?
-- 有日志,基本不控制日志需要输出的内容,也很少去查看日志信息;
--调整日志的格式,按照要求只输出我们想看和有用的;
--经常监控日志,一方面格式化输出日志,一方面及早通过日志中的错误信息发现程序的问题;
--高度依赖日志,做服务可用性监控,故障排查,程序性能监控等等;
--开发人员不能登录线上服务器查看日志,经过运维周转费时费力,影响排错的效率,增加程序员和运维的工作量;
日志里边包含着非常多的重要信息,是硬件设备和应用程序给出我们最直观的信息反馈,可以通过日志做到设备问题的预警,做到对应用程序的问题定位,做到对用户的行为分析等,总而言之只要你有心就能通过日志挖掘到你想要的信息;

日志怎么看?
--线上日志逐个查看
--tail+grep,可以应付不多的主机和不多的应用部署场景。但对于多机多应用部署就不合适了。这里的多机多应用指的是同一种应用被部署到几台服务器上,每台服务器上又部署着不同的多个用。可以想象,这种场景下,为了监控或者搜索某段日志,需要登陆多台服务器,执行多个tail -f和grep,sed,awk等命令。一方面这很被动。另一方面,效率非常低。
--日志统一管理,所有日志集中到一起,能够提供可视化查看日志,然后能够对日志做实时分析;比如web访问状态码统计,当有很多5xx的状态码时,所以服务已经出现有不可用现象,数据库慢查询日志统计,应用程序执行慢的日志统计等等。

利用日志还能做些什么?
--统计分析,比如接口的调用次数、执行时间、成功率等
--异常数据自动触发消息通知
--基于日志的数据挖掘
--日志数据量大,查询速度慢
--一个调用会涉及多个系统,难以在这些系统的日志中快速定位数据
--数据不够实时

Why ELK Stack ?
基于上述问题,于是许多产品或方案就应运而生了。比如,简单的 Rsyslog,Syslog-ng;商业化的 Splunk ;开源的有 FaceBook 公司的 Scribe,Apache 的 Chukwa,Linkedin 的 Kafak,Cloudera 的 Fluentd,ELK 等等。在上述产品中,Splunk 是一款非常优秀的产品,但是它是商业产品,价格昂贵,让许多人望而却步。直到 ELK 的出现,让大家又多了一种选择。相对于其他几款开源软件来说,本文重点介绍 ELK。

What is ELK Stack?
ELK Stack是Elasticsearch,Logstash,Kibana,beats,这四个开源软件的组合。在实时数据检索和分析场合,四者通常是配合共用,而且又都先后归于Elastic.co公司名下,故有此简称。
可视化 Kibana
日志存储 Elasticsearch
日志解析 Logstash
日志收集 Beat 家族
Kibana、 Elasticsearch、Logstash、beats 组合工作原理如下所示:

Kibana 是一款基于 Apache 开源协议,使用 JavaScript 语言编写,为 Elasticsearch 提供分析和可视化的 Web 平台。它可以在 Elasticsearch 的索引中查找,交互数据,并生成各种维度的表图。
主要特点:
Kibana 核心搭载了一批经典功能:柱状图、线状图、饼图、环形图,等等。它们充分利用了 Elasticsearch 的聚合功能。

Elasticsearch 是一个分布式的 RESTful 风格实时的分布式搜索和分析引擎,它可以用于全文搜索,结构化搜索以及分析。它是一个建立在全文搜索引擎 Apache Lucene 基础上的搜索引擎,使用 Java 语言编写。
主要特点:
实时分析
快到不可思议,但是要达到这样的速度并非易事。我们通过有限状态机实现了用于全文检索的倒排索引,实现了用于存储数值数据和位置数据的 BKD 树, 以及用于分析的列存储。
分布式实时文件存储,并将每一个字段都编入索引
文档导向,所有的对象全部是文档
高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)。见图 2 和图 3
接口友好,支持 JSON

Logstash 是开源的服务器端数据处理管道,能够同时 从多个来源采集数据、转换数据,然后将数据发送到您最喜欢的 “存储库” ElasticSearch中。
采集各种样式、大小和来源的数据
数据往往以各种各样的形式,或分散或集中地存在于很多系统中。Logstash 支持各种输入选择 ,可以在同一时间从众多常用来源捕捉事件。能够以连续的流式传输方式,轻松地从您的日志、指标、Web 应用、数据存储以及各种 AWS 服务采集数据。
实时解析和转换数据
数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。
Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响:
利用 Grok 从非结构化数据中派生出结构
从 IP 地址破译出地理坐标
将 PII 数据匿名化,完全排除敏感字段
整体处理不受数据源、格式或架构的影响
选择您的存储库,导出您的数据
尽管 Elasticsearch 是我们的首选输出方向,能够为我们的搜索和分析带来无限可能,但它并非唯一选择。
Logstash 提供众多输出选择,您可以将数据发送到您要指定的地方,并且能够灵活地解锁众多下游用例。

Beats 平台集合了多种单一用途数据采集器。这些采集器安装后可用作轻量型代理,从成百上千或成千上万台机器向 Logstash 或 Elasticsearch 发送数据。之前都是使用logstash 来做日志的收集,搬运等工作,但是因为logstash 占用cpu和内存资源过大,所以才有了Go 语言开发的Beats 家族;
Filebeat 和 Metricbeat 内部集成了一系列模块,用以简化收集、解析和可视化常见日志格式,诸如: NGINX、Apache 或系统指标,如:Redis或Docker
包含如下几个模块:
Filebeat 日志文件、
Metricbeat 指标
Packetbeat 网络数据
Winlogbeat Windows 事件日志
Auditbeat 审计数据
Heartbeat 运行时间监控
下一篇主要介绍Kafka 的相关信息及如何配置整套系统。

原文地址:http://blog.51cto.com/seekerwolf/2085891

时间: 2024-10-08 18:10:08

Centos 7 部署ELK Stack+beats+kafka的相关文章

Kubernetes实战之部署ELK Stack收集平台日志

主要内容 1 ELK概念 2 K8S需要收集哪些日志 3 ELK Stack日志方案 4 容器中的日志怎么收集 5 K8S平台中应用日志收集 准备环境 一套正常运行的k8s集群,kubeadm安装部署或者二进制部署即可 ip地址 角色 备注 192.168.73.136 nfs 192.168.73.138 k8s-master 192.168.73.139 k8s-node01 192.168.73.140 k8s-node02 1 ELK 概念 ELK是Elasticsearch.Logst

CentOS 8 部署 ELK日志分析 平台

需求 1.开发人员不能登录线上服务器查看日志2.各个系统都有日志,日志分散难以查找3.日志数据量大,查找慢,数据不够实时 解决办法:部署ELK平台 ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件.新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash . ELK架构图 Elasticsearch简介: El

Centos7上 Nginx + ELK Stack +Kafka + Filebeat 实战 一

之前有导读部分内容,介绍了elk的及kafka的前世今生及优点,各位客官可以点击这里访问,欢迎大家批评指正交流学习共同进步:(http://blog.51cto.com/seekerwolf/2085891)OS:Centos 7 ELK Stack : 6.2.2 安装方式:源码安装我的日志收集系统是基于这样的架构来做,前端代理使用Nginx,然后是ELK 的全家桶,文件收集使用filebeat来搞定:一,系统优化,在安装ES 的主机上需要作如下系统级别的优化工作,不然启动ElasticSea

如何在CentOS 7 / Fedora 31/30/29上安装ELK Stack

原文地址:https://computingforgeeks.com/how-to-install-elk-stack-on-centos-fedora/ 原作者: Josphat Mutai 译者:高行行 如何在 CentOS 7 / Fedora 31/30/29 上安装 ELK Stack?" ELK "是 Elasticsearch, Logstash, and Kibana 的缩写. Elasticsearch:这是一个开源的.基于 REST 和 JSON 的搜索引擎.它具有

CentOS 7 使用ELK套件搭建日志分析和监控平台

1 概述 ELK套件(ELK stack)是指ElasticSearch.Logstash和Kibana三件套.这三个软件可以组成一套日志分析和监控工具. 由于三个软件各自的版本号太多,建议采用ElasticSearch官网推荐的搭配组合:http://www.elasticsearch.org/overview/elkdownloads/ 2 环境准备 2.1 软件要求 本文把ELK套件部署在一台CentOS单机上. 具体的版本要求如下: 操作系统版本:CentOS 6.4: JDK版本:1.

ELK stack 学习记录

ELK日志分析平台学习记录 首先ELK主要指elasticsearch .logstash 和kibana,三个开源软件组合而成的一套日志平台解决方案.可以将平时收集到的日志,通过前台展示出来,并且可以加以分析,理论上可以解放劳动力(再也不用干上生产取日志这种活了--很搓). 最近在研究ELKstack日志分析平台,网上相关的中文资料不多.所以呢也就写了这篇文章将自己的一些学习认识总结记录下来,基本偏实战,概念理论较少,概念这块,我想以后可以再开一篇文章来做一个阐述总结. 这篇文章中会先讲一下搭

55 logstach应用详解、ELK Stack

01 logstash应用详解 配置环境: node3 192.168.1.133 CentOS Linux release 7.2 node4 192.168.1.134 CentOS Linux release 7.2 [[email protected] ~]# cd /etc/logstash/conf.d/ [[email protected] conf.d]# vim filesample.conf input { file { path    =>  ["/var/log/m

Docker 部署ELK 日志分析

Docker 部署ELK 日志分析 elk集成镜像包 名字是 sebp/elk 安装 docke.启动 yum install docke service docker start Docker至少得分配3GB的内存:不然得加参数 -e ES_MIN_MEM=128m  -e ES_MAX_MEM=1024m 加了-e参数限制使用最小内存及最大内存. Elasticsearch至少需要单独2G的内存: vm.max_map_count至少需要262144,修改vm.max_map_count 参

Kubernetes运维之使用ELK Stack收集K8S平台日志

kubernetes运维之使用elk Stack收集k8s平台日志目录: 收集哪些日志 elk Stack日志方案 容器中的日志怎么收集 k8S平台中应用日志收集 一.收集哪些日志 ? k8s系统的组件日志 比如kubectl get cs下面的组件 master节点上的controller-manager,scheduler,apiservernode节点上的kubelet,kube-proxy? k8s Cluster里面部署的应用程序日志 标准输出 日志文件elk Stack日志方案,改怎