Centos7部署ELK日志收集系统
一、ELK概述:
ELK是一组开源软件的简称,其包括Elasticsearch、Logstash 和 Kibana。ELK最近几年发展迅速,已经成为目前最流行的集中式日志解决方案。
Elasticsearch: 能对大容量的数据进行接近实时的存储,搜索和分析操作。 本项目中主要通过Elasticsearch存储所有获取的日志。
Logstash: 数据收集引擎,它支持动态的的从各种数据源获取数据,并对数据进行过滤,分析,丰富,统一格式等操作,然后存储到用户指定的位置。
Kibana: 数据分析与可视化平台,对Elasticsearch存储的数据进行可视化分析,通过表格的形式展现出来。
Filebeat: 轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装Filebeat,并指定目录与日志格式,Filebeat就能快速收集数据,并发送给logstash进行解析,或是直接发给Elasticsearch存储。
Redis:NoSQL数据库(key-value),也数据轻型消息队列,不仅可以对高并发日志进行削峰还可以对整个架构进行解耦
传统ELK的经典框架:
单一的架构,logstash作为日志搜集器,从数据源采集数据,并对数据进行过滤,格式化处理,然后交由Elasticsearch存储,kibana对日志进行可视化处理。
新型ELK框架:
Filebeats是一种轻量级的日志搜集器,其不占用系统资源,自出现之后,迅速更新了原有的elk架构。Filebeats将收集到的数据发送给Logstash解析过滤,在Filebeats与Logstash传输数据的过程中,为了安全性,可以通过ssl认证来加强安全性。之后将其发送到Elasticsearch存储,并由kibana可视化分析。
二、新型ELK搭建详细过程
实验环境:
主机:
10.254.254.202 部署程序:filebeat
10.254.254.201 部署程序:redis,logstash,elasticsearch,kibana
下面是搭建过程中所需程序安装包:
https://pan.baidu.com/s/1w02WtUAqh9yX4TChyMLa5Q 密码:g0p9
1.客户端部署filebeat:
1)下载和安装key文件
rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch
1)创建yum源文件
[root@localhost ~]# vim /etc/yum.repos.d/elk-elasticsearch.repo
[elastic-5.x]
name=Elastic repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
3)安装启动
yum -y install filebeat
systemctl start filebeat
systemctl status filebeat
4)修改配置文件使filebeat获取的日志进入redis:
****注:此处演示获取spring cloud框架中eureka日志,其他程序日志都可相同方法获取
vim /etc/filebeat/filebeat.yml
#修改的内容有一家几个字段
enabled:true
paths:程序日志路径
output.redis:日志输出地方
hosts:redis所在服务器IP
port:redis端口
key:redis中的key(可以用来指定redis获取到的数据的名称)
2.源码安装redis:
1)解压redis程序包:
tar zxf redis-3.2.9.tar.gz –C /usr/local
2)编译redis:
cd /usr/local/redis-3.2.9
make && make install
ln –s /usr/local/redis-3.2.9 /usr/local/redis
注:redis安装时有的缺少语言环境会出错,有的会出现奇奇怪怪的问题,只要复制Error到往上搜索下就能轻易解决,在此不多做解释
3)修改redis配置文件:
vim /usr/local/redis/redis.conf
修改内容如下:
daemonize yes #开启后台运行
timeout 1