ELK 日志分析搭建

  

目录

         一、ELK概述

         1.1 概述

         1.1.1  Elasticsearch概述

        1.1.2 Logstash概述

        1.1.3 kibana概述

        1.2 ELK解决处理的事务

        1.3 ELK优点

       二、ELK 搭建操作

        2.1 实验配置环境

        2.2 实际操作

        2.3 安装Elasticsearch-head插件

        2.4 安装安装phantomjs

        2.5 安装elasticsearch-head

        2.6 ELK Logstash 部署


         一、ELK概述

         1.1 概述

        ELK是由Elasticsearch(日志存储和搜索)、Logstash(日志收集)、Kibana(查看日志)三个开源软件的组成的一个组合体,ELK是elastic公司研发的一套完整的日志收集、分析和展示的企业级解决方案,在这三个软件当中,每个软件用于完成不同的功能,ELK又称为ELKstack。

         1.1.1  Elasticsearch概述

        一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索、支持分布式可实现高可用、提供API接口,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。

        工作原理:

        原始数据会从多个来源〈包括日志、系统指标和网络应用程序)输入到Elasticsearch中。数据采集指在,Elasticsearch中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在Elasticsearch 中索引完成之后,用户便可针对他们的数据运行复杂的查问,并使用聚合来检索自身数据的复杂汇总。在 Kibana中,用户可以基于自己的数据创建强大的可视化,分享仪表板,并对Elastic Stack进行管理。

        1.1.2 Logstash概述

        Logstash 是一个具有实时传输能力的数据收集引擎,其可以通过插件实现日志收集和转发,支持日志过滤,支持普通 log、自定义 json 格式的日志解析,最终把经过处理的日志发送给 elasticsearch。

        1.1.3 kibana概述

        Kibana 为 elasticsearch 提供一个查看数据的 web 界面,其主要是通过elasticsearch 的 API 接口进行数据查找,并进行前端数据可视化的展现,另外还可以针对特定格式的数据生成相应的表格、柱状图、饼图等。

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

        1.2 ELK解决处理的事务

        ELK 组件在海量日志系统的运维中,可用于解决以下主要问题:- 分布式日志数据统一收集,实现集中式查询和管理:故障排查、安全信息和事件管理、报表功能

        1.3 ELK优点

处理方式灵活elasticsearch是实时全文索引,具有强大的搜索功能 (支持任意key全文搜索)
配置相对简单elasticsearch的API全部使用JSON接口,logstash使用模块配置,kibana的配置文件部分更简单。
检索性能高效基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
集群线性扩展elasticsearch和logstash都可以灵活线性扩展,节点读写出现瓶颈可以扩容(3 5 7 11个服务器)
前端操作绚丽kibana的前端设计比较绚丽,而且操作简单(早期比较简单)

       二、ELK 搭建操作

        2.1 实验配置环境

主机a:192.168.162.100
主机b:192.168.162.111
主机c:apache服务器:192.168.162.101

        2.2 实际操作

##初始化操作
[root@lppdff ~]# systemctl stop firewalld.service  ##关闭防火墙
[root@lppdff ~]# setenforce 0
[root@lppdff ~]# hostnamectl set-hostname node1    ##改名

##添加主机记录
[root@node2 ~]# echo "
> 192.168.162.102 node1
> 192.168.162.111 node2
> 192.168.162.101 apache">>/etc/hosts

##在apache服务器中查看Java环境是否支持
[root@node1 ~]#java -version


##主机a与b中将安装包放入并升级
[root@node1 opt]#rpm -ivh elasticsearch-5.5.0.rpm 


##切换文件位置下
[root@node1 opt]# cd /etc/elasticsearch/
##备份文件
[root@node1 elasticsearch]# cp elasticsearch.yml{,.bak}
##编辑文件
[root@node1 elasticsearch]# vim elasticsearch.yml

 

 

##将主机a配置文件导入主机b并覆盖
[root@node1 elasticsearch]# scp /etc/elasticsearch/elasticsearch.yml node2:/etc/elasticsearch/

##修改主机b的配置文件
node.name: node2

 ##当你安装时会自动生成一个用户,注意其权限

##主机a与b创建配置文件中的文件
[root@node2 opt]# mkdir -p /data/elk_data
[root@node2 opt]# chown -R elasticsearch.elasticsearch /data/elk_data/
##开机自启,并立即运行
[root@node2 opt]# systemctl enable --now elasticsearch.service


##过滤出服务查看服务是否运行
[root@node2 opt]# netstat -ntap|grep 9200

 网页验证

        2.3 安装Elasticsearch-head插件

##安装所需编译环境
[root@node2 elasticsearch]# yum install gcc gcc-c++ make -y

##上传软件包到主机a与主机b
##上传node-v8.2.1.tar.gz到/opt
[root@node1 opt]#tar xf node-v8.2.1.tar.gz
[root@node1 opt]#cd node-v8.2.1/
[root@node1 node-v8.2.1]#./configure
[root@node1 node-v8.2.1]#make -j2 && make install

        2.4 安装安装phantomjs

##上传软件包到主机a与主机b
[root@node1 opt]#tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2  -C /usr/local/src/
[root@node1 src]#cd phantomjs-2.1.1-linux-x86_64/
[root@node1 phantomjs-2.1.1-linux-x86_64]#ln -s /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/* /usr/local/bin/

        2.5 安装elasticsearch-head

[root@node2 opt]#tar zxf elasticsearch-head.tar.gz  -C /usr/local/src/
[root@node1 opt]#cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]#npm install
##修改主机a与b的配置文件
[root@node1 ~]# vi /etc/elasticsearch/elasticsearch.yml   ####下面配置文件,插末尾##
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@node1 ~]# systemctl restart elasticsearch

 

##后台开启服务
[root@node1 elasticsearch-head]# npm run start &

##网页访问
http://192.168.162.102:9100/

 

##添加索引记录验证

[root@node1 elasticsearch-head]# curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"lpp","mesg":"hello world"}'

        2.6 ELK Logstash 部署

##在Apache 节点上操作
[root@apache ~]# yum install httpd -y
##将logstash包放入
##将包安装
[root@apache opt]# rpm -ivh logstash-5.5.1.rpm
##切换文件位置下做软链接
[root@apache opt]# cd /usr/share/logstash/
[root@apache logstash]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
输入采用标准输入 输出采用标准输出---登录192.168.91.100  在Apache服务器上
[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{} }'

 使用rubydebug显示详细输出,codec为一种编解码器

[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'

##将输出结果导入服务器a
[root@apache logstash]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.162.102:9200"] } }'

[root@apache opt]# chmod o+r /var/log/messages ##设置其它权限只读
[root@apache opt]# ll /var/log/messages
[root@apache opt]# vim /etc/logstash/conf.d/system.conf 
input {
       file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
      }
output {
        elasticsearch {
          hosts => ["192.168.162.102:9200"]
          index => "system-%{+YYYY.MM.dd}"
          }
        }
[root@apache opt]# systemctl restart logstash.service

 

##在主机a上安装kibana
##将包放入
[root@node1 ~]# cd /usr/local/src/
[root@node1 src]# rpm -ivh kibana-5.5.1-x86_64.rpm
##切换目录
[root@node1 src]# cd /etc/kibana/
##备份文件
[root@node1 kibana]# cp kibana.yml kibana.yml.bak
##开启记录
[root@node1 kibana]# vim /etc/kibana/kibana.yml

[root@node1 kibana]# systemctl start kibana.service    ###启动kibana服务
[root@node1 kibana]# systemctl enable kibana.service   ###开机启动kibana服务

 网页访问验证:使用浏览器输入192.168.162.102:5601

 

 

##对接Apache主机的Apache 日志文件
[root@apache opt]# cd /etc/logstash/conf.d/
[root@apache conf.d]# touch apache_log.conf
[root@apache conf.d]# vi apache_log.conf

[root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值