离线部署ELK+kafka日志管理系统

本文详细介绍了如何搭建离线ELK(Elasticsearch、Logstash、Kibana)日志管理系统,并结合Kafka进行日志收集。首先概述了ELK组件的作用,接着展示了在测试环境中的配置,包括Java环境、Kafka和Zookeeper集群的搭建,以及Logstash、Elasticsearch和Kibana的安装和配置。通过这个系统,可以实现日志的收集、查询、显示以及异常数据的自动通知等功能。
摘要由CSDN通过智能技术生成

1、简介

对于日志来说,最常见的需求就是收集、查询、显示,正对应logstashelasticsearchkibana的功能。

 

ELK日志系统在系统中,主要可解决的问题:

基于日志的数据挖掘

问题排查,上线检查

根据关键字查询日志详情

异常数据自动触发消息通知

服务器监控,应用监控,Bug管理

统计分析,比如接口的调用次数、执行时间、成功率等

性能分析,用户行为分析,安全漏洞分析,时间管理

 

Logstash

Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websocketsElasticsearch。与其他监控系统的整合也很方便,可以将数据输出到zabbixnagios等。还可以把数据统计后输出到graphite,实现统计数据的可视化显示。

 

logstash对日志的处理逻辑很简单,就是一个pipeline的过程:

inputs >> codecs >> filters>> outputs

 

agent分布在每一台需要采集数据的节点上,agent只是Logstash承担的一个角色,与此对应的是indexeragent会分别将各自获取的日志作为输入输出到一个消息代理(例如redis或者kafka),indexer会将消息代理作为输入再输出到ES上,由ESindexing。其实Logstash在整个过程中只负责输入输出,对Logstash而言并没有agentindex之分。如果日志量小的话完全不需要设置indexer,直接将ES作为agent的输出源。

 

Elasticsearch

elasticsearch是基于lucene的开源搜索引擎,主要的特点有

real time

distributed

high availability

document oriented 

schema free

restful api

 

kibana

Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用ElasticsearchREST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据。kibana是根据前台过滤的条件,生成query 发送到elasticsearch,然后根据返回的值重绘页面。

 

下面盗用一张图来展示整个架构:

wKiom1fhLJaj6e0nAAFzLbrjnOw559.jpg


以上是我查看网上资料最终总结的,感谢各位大神的贡献。


2、测试环境说明

下面通过在测试环境下搭建ELK日志系统来对ELK进行更加深入的认识。


软件环境:

logstash-2.3.3.tar.gz  marvel-2.3.3.tar.gzelasticsearch-2.3.3.zip   kibana-4.5.1-linux-x64    marvel-agent-2.3.3.zip   elasticsearch-head-master.zip   license-2.3.3.zip   jdk-8u101-linux-x64.tar.gz   kafka_2.10-0.10.0.1.tgz   zookeeper-3.4.6.tar.gz


服务器和角色:

192.168.1.101           kafka+zookeeper     

192.168.1.102           kafka+zookeeper      

192.168.1.103           kafka+zookeeper   logstash shipper 

192.168.1.104          logstash shipper

192.168.1.105             elasticsearch kibana

192.168.1.106        logstash indexer



说明:

本篇分别对上边的物理节点标识为node1—node6,下面都以这种称谓。

Node1和nide2以及node3三台节点上搭建kafka+zookeeper集群,另外node3本身也是一个nginx服务器。

Node4上搭建nginx服务器,和node3一起负责logstash日志数据生产端,把nginx日志传给kafka集群。


日志传输方向:

Nginx日志-->logstash shipper-->kafka+zookeeper-->logstash indexer-->elasticsearch

最后kibana负责展示es收集到的数据


3、 配置java环境


各节点配置jdk1.8的环境

/home/apps # tar -zxvf jdk-8u101-linux-x64.tar.gz

 

/home/apps # ln -sv /home/apps/jdk1.8.0_101/usr/local/jdk1.8.0_101

`/usr/local/jdk1.8.0_101' ->`/home/apps/jdk1.8.0_101'

 

编辑环境变量文件,注释掉之前的java环境配置,添加下面的内容

/home/apps # vi /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_101

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar

export PATH JAVA_HOME CLASSPATH

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值