ELK日志分析系统

ELK日志分析系统简介

日志服务器

  • 提高安全性
  • 集中存放日志
  • 缺陷
    • 对日志的分析困难
      ELK日志分析系统_第1张图片

收集数据:LogstashAgent

建立索引:ElasticSearchCluster

数据可视乎:KilbanaServer

简单的结果拓扑

ELK日志分析系统_第2张图片

ELK日志分析系统

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

    日志处理步骤

  • 将日志进行集中化管理
  • 将日志格式化( Logstash )并输出到Elasticsearch
  • 对格式化后的数据进行索引和存储( Elasticsearch )
  • 前端数据的展示( Kibana )

    2、Elasticsearch介绍

    1、Elasticsearch的概述

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

    2、Elasticsearch的概念

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

3、Logstash介绍

1、Logstash介绍

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

    2、LogStash主要组件

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

    4、Kibana介绍

    1、Kibana介绍

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

    2、Kibana主要功能

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

5、部署ELK日志分析系统

1、需求描述

  • 配置ELK日志分析群集
  • 使用Logstash收集日志
  • 使用Kibana查看分析日志

    2、设备列表

    主机 操作系统 主机名/IP地址 主要软件
    服务器 CentOS7-x86 node1/192.168.45.128 Elasticsearch、kibana
    服务器 CentOS7-x86 node2/192.168.45.129 Elasticsearch
    服务器 CentOS7-x86 apache/192.168.45.133 Logstatsh

    3、实验拓扑

    ELK日志分析系统_第3张图片

    4、准备安装环境

  • 关闭防火墙和Selinux
  • Node1、Node2节点内存分配4G,Apache节点分配1G内存
  • 通过VMware虛拟网络Vmnet8连接

    第一步:配置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网址,并连接另一节点的地址,检查群集健康状态ELK日志分析系统_第4张图片ELK日志分析系统_第5张图片


第六步:创建索引

ELK日志分析系统_第6张图片回到概览即可看到创建好的索引!
ELK日志分析系统_第7张图片

第七步:配置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

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

ELK日志分析系统_第8张图片ELK日志分析系统_第9张图片


第九步:回到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

ELK日志分析系统_第10张图片
ELK日志分析系统_第11张图片


第十一步:对接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日志分析系统_第12张图片ELK日志分析系统_第13张图片
ELK日志分析系统_第14张图片ELK日志分析系统_第15张图片

以上就是ELK日志分析系统的全部内容了,谢谢阅读!!!