ELK日志分析系统搭建

 

ELK日志分析系统概述

ELK是Elasticsearch、Logstash、Kibana的简称 Elasticsearch是实时全文搜索和分析引擎 Logstash是一个用来搜集、分析、过滤日志的工具 Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。

日志服务器:

提高安全性

集中存放日志

缺陷:对日志的分析困难

ELK日志分析系统:

收集数据:LogstashAgent

建立索引:ElasticSearchCluster

数据可视化:KilbanaServer

日志处理步骤:

1.将日志进行集中化管理

2.将日志格式化( Logstash )并输出到Elasticsearch

3.对格式化后的数据进行索引和存储( Elasticsearch )

4.前端数据的展示( Kibana )

Elasticsearch介绍

Elasticsearch的概述

提供了一个分布式多用户能力的全文搜索引擎

Elasticsearch的概念

接近实时、集群、节点 、索引:索引(库)-->类型(表)-->文档(记录) 、分片和副本

Logstash介绍

一款强大的数据处理工具,可以实现数据传输、格式处理、格式化输出、数据输入、数据加工(如过滤,改写等)以及数据输出

LogStash主要组件

Shipper 、Indexer 、Broker 、Search and Storage 、Web Interface

Kibana介绍

一个针对Elasticsearch的开源分析及可视化平台,搜索、查看存储在Elasticsearch索引中的数据,通过各种图表进行高级数据分析及展示

Kibana主要功能

Elasticsearch无缝之集成、整合数据,复杂数据分析、让更多团队成员受益、接口灵活,分享更容易、配置简单,可视化多数据源、简单数据导出

部署ELK日志分析系统

需求描述

配置ELK日志分析群集

使用Logstash收集日志

使用Kibana查看分析日志

安装环境

全部关闭防火墙

Node1、Node2节点内存分配4G,Apache节点分配1G内存

通过VMware虛拟网络Vmnet8连接

主机名称IP地址主要软件
Node1服务器192.168.142.152Elasticsearch、Kibana
Node2服务器192.168.142.153Elasticsearch
Apache服务器192.168.142.155Logstash

第一步:配置ES节点1服务器

1.关闭防火墙及安全功能

systemctl stop firewalld.service  
setenforce 0

2.修改主机名配置文件

vim /etc/hosts
192.168.142.152 node1
192.168.142.153 node2

3.远程挂载资源包

mount.cifs //192.168.142.1/elk /mnt

4.安装软件包

cd /mnt
rpm -ivh elasticsearch-5.5.0.rpm

5.加载系统服务

systemctl daemon-reload

6.开机自启动服务

systemctl enable elasticsearch.service

7.备份配置文件

cd /etc/elasticsearch/
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak

8.修改elasticsearch主配置文件

vim /etc/elasticsearch/elasticsearch.yml

#第17行,取消注释并修改集群名称
cluster.name: my-elk-cluster

#第23行,取消注释修改节点名字
node.name: node1

#第33行,取消注释修改数据存放路径
path.data: /data/elk_data

#第37行,取消注释修改日志存放路径
path.logs: /var/log/elasticsearch/

#第43行,取消注释并修改,取消在不启动时锁定内存
bootstrap.memory_lock: false

#第55行,取消注释并修改地址,放入所有的地址(0.0.0.0代表所有地址)
network.host: 0.0.0.0

#第59行,取消注释,放开服务端口
http.port: 9200

#第68行,取消注释修改节点名称
discovery.zen.ping.unicast.hosts: ["node1", "node2"]

9.创建数据库存放路径

mkdir -p /data/elk_data

10.授权数据库存放路径

chown elasticsearch:elasticsearch /data/elk_data/

11.开启elasticsearch服务

systemctl start elasticsearch.service 

12.查看端口服务状态

netstat -ntap | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      96970/java     

13.安装编译环境

yum install gcc gcc-c++ make -y

14.解压node节点软件包

cd /mnt
tar zxvf node-v8.2.1.tar.gz -C /opt

15.配置node

cd /opt/node-v8.2.1/
./configure

16.编译安装

make && make install

第二步:安装phantomjs前端框架

1.解压phantomjs软件包

cd /mnt
tar jxvf phantomjs-2.1.1-Linux-x86_64.tar.bz2 -C /usr/local/src 

2.切换目录查看phantomjs命令

cd /usr/local/src/phantomjs-2.1.1-Linux-x86_64//bin
ls
phantomjs

3.复制目录到系统目录

cp phantomjs /usr/local/bin/

第三步:安装elasticsearch-head数据可视化工具

1.解压elasticsearch-head软件包

cd /mnt
tar zxvf elasticsearch-head.tar.gz -C /usr/local/src

2.安装elasticsearch-head数据可视化工具

cd /usr/local/src/elasticsearch-head/
npm install

3.修改elasticsearch主配置文件

vim /etc/elasticsearch/elasticsearch.yml
#末行添加以下内容
http.cors.enabled: true
http.cors.allow-origin: "*"

4.开启elasticsearch服务

systemctl restart elasticsearch.service

5.启动后台运行

npm run start &

6.查看服务端口状态

netstat -ntap | grep 9100

tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      50105/grunt         
[root@node1 elasticsearch-head]# netstat -ntap | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      96970/java   

第四步:ES节点2服务器 与节点1的配置一样,重复执行上述操作即可!!!

第五步:使用浏览器输入192.168.142.152:9100网址,并连接另一节点的地址,检查群集健康状态

第六步:创建索引

回到概览即可看到创建好的索引!

第七步:配置Apache服务器,安装 logstash 搜集日志搜集​​​​​​​

#安装Apache服务
yum install -y httpd

#远程挂载资源包
mount.cifs //192.168.142.1/elk /mnt

#切换到挂载点
cd /mnt

#安装logstash
rpm -ivh logstash-5.5.1.rpm 

#开机自启动logstash服务
systemctl enable logstash.service

#启动logstash服务
systemctl start logstash.service

#建立命令软链接到系统
ln -s /usr/share/logstash/bin/logstash /usr/local/bin

#切换日志目录
cd /var/log

#授予他人读取权限
chmod o+r messages 

#查看权限
ll

#切入logstash配置目录
cd /etc/logstash/conf.d/

#编辑文件
vim system.conf

#写入以下内容,用以收集系统日志
input {
        file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
}
output {
        elasticsearch {
        #地址指向node1节点
        hosts => ["192.168.142.152:9200"]
        index => "system-%{+YYYY.MM.dd}"
        }
}

#重启服务
systemctl restart logstash.service

第八步:查看收集到的日志信息

第九步:回到node1节点安装kibana

#切入挂载点
cd /mnt

#安装kibana
rpm -ivh kibana-5.5.1-x86_64.rpm 

#切入kibana目录
cd /etc/kibana/

#备份kibana.yml文件
cp kibana.yml kibana.yml.bak

#修改kibana.yml文件
vim kibana.yml

#取消第2行的注释,放开5601端口
server.port: 5601

#取消第7行的注释并修改地址,放入所有的地址(0.0.0.0代表所有地址)
server.host: "0.0.0.0"

#取消第21行的注释并指向node1节点的url
elasticsearch.url: "http://192.168.142.152:9200"

#取消第30行注释,放开kibana首页
kibana.index: ".kibana"

#启动kibana服务
systemctl start kibana.service

第十步:测试kibana展现日志数据,使用浏览器访问192.168.142.152:5601

第十一步:对接Apache主机的所有Apache日志文件(在Apache服务器上操作)

#编辑Apache日志配置文件
vim apache_log.conf

input {
        file{
        path => "/etc/httpd/logs/access_log"
        type => "access"
        start_position => "beginning"
        }
        file{
        path => "/etc/httpd/logs/error_log"
        type => "error"
        start_position => "beginning"
        }
}
output {
        if [type] == "access" {
        elasticsearch {
        hosts => ["192.168.142.152:9200"]
        index => "apache_access-%{+YYYY.MM.dd}"
        }
    }   
        if [type] == "error" {
        elasticsearch {
        hosts => ["192.168.142.152:9200"]
        index => "apache_error-%{+YYYY.MM.dd}"
        }
    }
}

#重启服务,稍等片刻!
logstash -f apache_log.conf

第十二步:测试Apache日志信息展现

以上就是ELK日志分析系统的全部内容了

To be continued...

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值