CentOS7下搭建Elastic Stack 日志分析系统

本文介绍关于关于搭建elasticsearch+logstash(beats)+kibana实现搭建可视化的日志分析系统。
这几款软件也都是免费开源的,其官方站点为:https://www.elastic.co/cn/products

一、关于这几款软件的介绍

Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash是一个开源的用于收集,分析和存储日志的工具。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以汇总、分析和搜索重要数据日志。
Beats是elasticsearch公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端形式运行的数据收集器的统称,可以直接把数据发送给Elasticsearch或者通过Logstash发送给Elasticsearch,然后进行后续的数据分析活动。Beats由如下组成:
①Packetbeat:是一个网络数据包分析器,用于监控、收集网络流量信息,Packetbeat嗅探服务器之间的流量,解析应用层协议,并关联到消息的处理,其支 持ICMP (v4 and v6)、DNS、HTTP、Mysql、PostgreSQL、Redis、MongoDB、Memcache等协议;
②Filebeat:用于监控、收集服务器日志文件,其已取代 logstash forwarder;
③Metricbeat:可定期获取外部系统的监控指标信息,其可以监控、收集 Apache、HAProxy、MongoDB、MySQL、Nginx、PostgreSQL、Redis、System、Zookeeper等服务;
④Winlogbeat:用于监控、收集Windows系统的日志信息;
⑤Create your own Beat:自定义beat ,如果上面的指标不能满足需求,elasticsarch鼓励开发者 使用go语言,扩展实现自定义的beats,只需要按照模板,实现监控的输入,日志,输出等即可。
Beats 将搜集到的数据发送到 Logstash,经 Logstash 解析、过滤后,将其发送到 Elasticsearch 存储,并由 Kibana 呈现给用户。
Beats 作为日志搜集器没有Logstash 作为日志搜集器消耗资源,解决了 Logstash 在各服务器节点上占用系统资源高的问题。

二、实现elasticsearch+logstash+kibana的部署

(1)大概网络拓扑图

CentOS7下搭建Elastic Stack  日志分析系统


说明:
蓝线的线路图:文件---->logstash server------>elasticsearch
Logstash自己做过滤(input plugin)、转换(filter plugin)、输出(output plugin)机制然后直接传送到elasticsearch集群
红线的路线图说明:logstash agent 将数据传输到logstash server端,在servlet端进行统一的输出格式。此刻agent端输入是文件,输出到server;在logstash server 端,输入端是logstash agent ,输出端是elasticsearch集群。
墨色的线路图:加个redis做队列缓冲,为了减轻logstash server的压力,这也是主流的配置。
以上三种情况,就模拟第三种主流的配置,第一、二有兴趣的可以自己做一下。
(2)主机配置说明

主机名ip运行的服务
master   172.16.5.4   elasticsearch 、filebeat  
server1   172.16.5.3   logstash agent、redis  
server2   172.17.5.2   logstash server、kibana  

由于本实验测试吃很大内存,就不搭建集群了,都是用一台服务器测试。

(3)部署elastic stach
①环境部署。
关闭iptables、selinux,同时时间同步、hosts文件进行解析。
命令:iptables -F 情况防火墙策略
setenforce 0 临时关闭selinux,如果想要永久关闭,修改配置文件,不多说。
②安装java环境,解决依赖关系,所有服务器上都安装。
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel -y
③安装elasticsearch安装包。
可以官网下载:https://www.elastic.co/cn/products/elasticsearch
我使用已经下载好的安装包
rpm -ivh elasticsearch-5.4.2.rpm

CentOS7下搭建Elastic Stack  日志分析系统


④修改配置文件
vim /etc/elasticsearch/jvm.options
修改内存:
-Xms1g
-Xmx1g 【建议生产环境32g,发挥最好的性能】
vim /etc/elasticsearch.yml
cluster.name: myels 【集群名字】
node.name: node1 【节点名字,主机名】
path.data: /data/els/data 【索引存放路径】
path.logs: /data/els/logs 【日志路径】
network.host: 0.0.0.0 【加入集群时使用的地址,本机地址】
http.port: 9200 【监听端口】
discovery.zen.ping.unicast.hosts: ["node1", "node2", "node3"] 【判断是否在同一个集群里,也就是是否都是监听同一端口】
discovery.zen.minimum_master_nodes: 2 【有几个节点,大于半数的最小值】

CentOS7下搭建Elastic Stack  日志分析系统

CentOS7下搭建Elastic Stack  日志分析系统

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/af7fbe3264fa94448ff4021dfff054b2.html