ELK日志实时处理系统应用实战

        在日常运维工作中,我们需要进行日志分析,通常根据特定条件直接grep、awk过滤自己想要的信息。但在大规模的日志场景中,这种方法效率低下,面临的问题是数据量大、时间跨度长、查询慢等问题。通常解决思路是建立集中式的日志管理分析系统,将所有节点日志进行收集、整理、归档管理。

        目前ELK(E=Elasticsearch、L=Logstash、K=Kibana)提供了一整套的日志管理分析的解决方案,是当前流行的一种日志分析管理系统。

 

1.1 ELK架构介绍

对于日常运维工作而言,ELK提供一整套日志收集、分析、管理的解决方案。

1.1.1 核心组件

ELK由Elasticsearch、Logstash、Kibana组成,这三款组件都是开源,通常是配合使用。

Elasticsearch

        Elasticsearch 是一个分布式的 RESTful 风格的搜索和数据分析引擎。当然Elasticsearch 并不仅仅是 Lucene 那么简单,它不仅包括了全文搜索功能,还可以进行以下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,处理PB级别的结构化或非结构化数据。

Logstash

        Logstash 的作用就是一个数据收集器,将各种格式各种渠道的数据通过它收集解析之后格式化输出到 Elasticsearch ,再由Kibana 提供的比较友好的 Web 界面进行汇总、分析、搜索。        Logstash 内部也是管道的方式进行数据的搜集、处理、输出。在 Logstash 中,包括了三个阶段:
输入 input --> 处理 filter(不是必须的) --> 输出 output。

Kibana

        Kibana 是为 Elasticsearch设计的开源分析和可视化平台。你可以使用 Kibana 来搜索,查看存储在 Elasticsearch 索引中的数据并与之交互。你可以很容易实现高级的数据分析和可视化,以图表的形式展现出来。

1.2 搭建ELK日志管理系统

1.2.1 服务器准备

        这里我用的是滴滴云的弹性服务器,作为学习使用,4C8G配置即可,大家学习可自行搭建虚拟机或者采用云服务器。

1.2.2 云服务器开放安全组

        因为是用于学习,所以不做网络限制,这里开放了所有端口和源IP访问。

1.2.3 安装java环境变量

yum install -y java-1.8.0-openjdk*

 查看Java版本

java -version

 

1.2.4 ELK应用安装

        ELK安装包一共有三个应用,我们先安装elasticsearch。

下载elasticsearch。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.16.0-linux-x86_64.tar.gz

解压elasticsearch。

tar -zxvf elasticsearch-7.16.0-linux-x86_64.tar.gz

1.2.5 elasticsearch配置并启动

打开elasticsearch配置文件

vi /usr/local/elasticsearch-7.16.0/config/elasticsearch.yml

加入以下配置

#允许入访IP
network.host: 0.0.0.0
#应用端口
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"

启动elasticsearch

由于root用户不能直接启动elasticsearch,我们需要创建elk用户,属主后启动。

#创建elk用户组
groupadd elk
#创建elk用户
useradd elk -g elk
#属组
chown -R elk.elk elasticsearch-7.16.0

#启动elasticsearch
#进入elk用户
su elk
#进入bin目录
cd /usr/local/elasticsearch-7.16.0/bin
#执行启动脚本
./elasticsearch &

启动后发现程序报错,我们逐一处理

​​​​​​​

 第一个报错是:max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144],根据提示,我们将vm.max_map_count调整到262144。

#编辑 /etc/sysctl.conf,追加以下内容:
vm.max_map_count=262144
#保存后,执行:

sysctl -p

第二个报错是:the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seenitial_master_nodes] must be configured,根据报错提示,我们在elasticsearchconfig目录下,修改elasticsearch.yml配置文件,将下面的配置加入到该配置文件中:

cluster.initial_master_nodes: ["node-1"]

再次启动 elasticsearch后成功,可通过IP+端口访问elasticsearch。

安装Kibana

wget下载Kibana,并解压启动。

#wget下载kibana
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.16.0-linux-x86_64.tar.gz
#解压
tar -zxvf kibana-7.16.0-linux-x86_64.tar.gz
#属主授权
chown -R elk.elk kibana-7.16.0-linux-x86_64


#修改配置文件

su elk
vi /usr/local/kibana-7.16.0-linux-x86_64/config/kibana.yml

加入以下配置 

elasticsearch.hosts: ["http://localhost:9200"]

启动kibana

cd /usr/local/kibana-7.16.0-linux-x86_64/bin

./kibana &

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值