Elasticsearch+logstash+kibana实现日志分析(实验)

Elasticsearch+logstash+kibana实现日志分析(实验)

一、前言

Elastic Stack(旧称ELK Stack),是一种能够从任意数据源抽取数据,并实时对数据进行搜索、分析和可视化展现的数据分析框架。(hadoop同一个开发人员)

java 开发的开源的全文搜索引擎工具

基于lucence搜索引擎的

采用 restful - api 标准的

高可用、高扩展的分布式框架

实时数据分析的

官方网站: https://www.elastic.co/products

为什么要用elk?

服务器众多,组件众多,日志众多

发现问题困难,技能要求高

日志主要包括系统日志、应用程序日志和安全日志。

系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。

当务之急我们使用集中化的日志管理,例如:开源的 syslog ,将所有服务器上的日志收集汇总。

集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用 grep 、 awk和 wc 等 Linux 命令能实现检索和统计,

但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

开源实时日志分析 ELK 平台能够完美的解决我们上述的问题, ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三个开源工具组成。

二、安装过程

先安装java环境

[[email protected] ~]# yum install -y java-1.8.0-openjdk

上传在官网下载好的包(官网:https://www.elastic.co/downloads/elasticsearch

在解压目录下创建,log,data文件目录:

修改elastic.yaml:主机名字

node.name: node-1

修改elastic.yaml:监听主机

network.host: 192.168.113.193

开启 haed 插件

http.cors.enabled:true

http.cors.allow-origin:"*"

创建启动elasticsearch 的普通用户

[[email protected] ~]# useradd xhk

[[email protected] ~]# passwd xhk

给予用户目录的权限

[[email protected] ~]# chown -R xhk:xhk /usr/local/src/elasticsearch-5.6.3

启动之前,有几个参数要修改,否则会报错

问题1、max file descriptors [4096] for elasticsearch process likely toolow, increase to at least [65536]

修改/etc/security/limits.conf,添加或修改下列参数

*       hard    nofile           65536

*       soft    nofile           65536

 

问题2、[1]: max virtual memory areas vm.max_map_count [65530] is too low,increase to at least [262144]

修改/etc/sysctl.conf,添加或修改下列参数

vm.max_map_count=262144

添加后记得敲 sysctl -p ,使配置生效

接下来,切换到用户 xhk,启动elasticsearch

[[email protected] ~]# su – xhk

[[email protected] ~]$ /usr/local/src/elasticsearch-5.6.3/bin/elasticsearch

启动elastic:直接用curl访问9200端口成功即可


=====================================================================================


还可以为其安装一个head插件

安装需要的包

[[email protected] ~]# yum install -y git npm openssl

先在目录下创建一个名为 head 的文件夹

[[email protected] ~]# cd /usr/local/src/elasticsearch-5.6.3

[[email protected] elasticsearch-5.6.3]# mkdir head

[[email protected] head]# git clonegit://github.com/mobz/elasticsearch-head.git

[[email protected] head]# cd elasticsearch-head/

[[email protected] elasticsearch-head]# npm install

[[email protected] elasticsearch-head]# npm install -g grunt-cli

修改配置文件

[[email protected] ~]# vim /usr/local/src/elasticsearch-5.6.3/head/elasticsearch-head/Gruntfile.js

    server: {
           options: {
                 port: 9100,
                 hostname: ‘0.0.0.0‘,     #####添加这句。
                 base: ‘.‘,
                      keepalive: true
                             }
                    }
              }

启动服务,并用网页访问192.168.163.193:9100

[[email protected] elasticsearch-head]# grunt server

==============================================================================

接下来安装logstash,这个就很容易安装了,直接解压然后进入目录使用就行了

[[email protected] ~]# cd /usr/local/src

[[email protected] src]# tar xf logstash-5.6.3.tar.gz

[[email protected] src]# mkdir /logstash

[[email protected] src]# cd /logstash/

找一段nginx默认日志,并传入到elasticsearch

[[email protected] logstash]# vim input_output.conf

input {
   file {
       path => "/logstash/xhk.txt"
       type => "nginxlog"
       start_position => "beginning"
    }
}
filter{
   grok {
       match => {
       "message" => "%{IPORHOST:IP} - %{USER:User}\[%{HTTPDATE:Time}\] \"%{WORD:HTTP_Method} %{NOTSPACE:Request}HTTP/%{NUMBER:HTTP_Version}\" %{NUMBER:Status} (?:%{NUMBER:Bytes}|-)\"(?:%{URI:HTTP_Referer}|-)\"\"%{GREEDYDATA:User_Agent}\""
    }
    }
}
output{
    elasticsearch {
      action => "index"
      hosts  =>"192.168.163.193:9200"
      index  =>"xhk-%{+yyyy.MM.dd}"
   }
   stdout {
   codec => rubydebug
    }
}

执行命令传入命令

[[email protected] logstash]# /usr/local/src/logstash/bin/logstash -f input_output.conf

传入的时候,elasticsearch 可能会出现该报错

[2017-11-05T02:16:39,878][WARN][o.e.m.j.JvmGcMonitorService] [node-1] [gc][young][20][8] duration [2.5s],collections [1]/[2.6s], total [2.5s]/[3.4s], memory[69.8mb]->[65.9mb]/[1.9gb], all_pools {[young][39.3mb]->[18.1mb]/[66.5mb]}{[survivor] [8.3mb]->[6.9mb]/[8.3mb]}{[old][22.2mb]->[41.1mb]/[1.9gb]}

[2017-11-05T02:16:39,913][WARN ][o.e.m.j.JvmGcMonitorService][node-1] [gc][20] overhead, spent [2.5s] collecting in the last [2.6s]

解决:

[[email protected] ~]# vim /usr/local/src/elasticsearch-5.6.3/config/jvm.options

添加以下2个参数

Xmx=300m

Xms=300m

=====================================================================================


安装kibana

传入一个rpm包直接yum安装

[[email protected] ~]# cd /usr/local/src/

[[email protected] src]# ls

kibana-5.6.3-x86_64.rpm

[[email protected] src]# yum install -y kibana-5.6.3-x86_64.rpm

修改配置文件,指向elasticsearch

[[email protected] src]# vim /etc/kibana/kibana.yml

elasticsearch.url: http://192.168.163.194:9200

server.host: "192.168.163.196"

启动服务

[[email protected] src]# systemctl start kibana

使用浏览器访问 http://192.168.163.193:5601

创建图表,效果如下

时间: 2024-12-27 21:46:13

Elasticsearch+logstash+kibana实现日志分析(实验)的相关文章

ELK(elasticsearch+logstash+kibana)开源日志分析平台搭建

环境介绍 System:   CentOS7.2 x86_64 hostname: elk-server.huangming.org IP Address: 10.0.6.42.10.17.83.42 本篇的ELK环境为单机部署方式,即将ELK所有的软件包都安装在一台服务器上,配置如下: CPU:   4c Mem:   8G Disk:  50 一.Elasticsearch安装 1.安装jdk 1.8及以上的版本(安装过程略) [[email protected] elk]# java -v

Elasticsearch+Logstash+Kinaba+Redis日志分析系统

一.简介 1.组成 ELK由Elasticsearch.Logstash和Kibana三部分组件组成: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,它可以对你的日志进行收集.分析,并将其存储供以后使用 kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可

Linux——使用ELK(Elasticsearch + Logstash + Kibana) 搭建日志集中分析平台

http://wsgzao.github.io/post/elk/

使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务

1.使用ElasticSearch+LogStash+Kibana+Redis搭建日志管理服务 http://www.tuicool.com/articles/BFzye2 2.ElasticSearch+LogStash+Kibana+Redis日志服务的高可用方案 http://www.tuicool.com/articles/EVzEZzn 3.示例 开源实时日志分析ELK平台部署 http://baidu.blog.51cto.com/71938/1676798?utm_source=t

CentOS7使用Elasticsearch+ Logstash+kibana快速搭建日志分析平台

CentOS7使用Elasticsearch+ Logstash+kibana快速搭建日志分析平台 介绍: 安装logstash,elasticsearch,kibana三件套,搜索程序一般由索引链及搜索组件组成. 索引链功能的实现需要按照几个独立的步骤依次完成:检索原始内容.根据原始内容来创建对应的文档.对创建的文档进行索引. 搜索组件用于接收用户的查询请求并返回相应结果,一般由用户接口.构建可编程查询语句的方法.查询语句执行引擎及结果展示组件组成. Elasticsearch是个开源分布式搜

用ElasticSearch,LogStash,Kibana搭建实时日志收集系统

用ElasticSearch,LogStash,Kibana搭建实时日志收集系统 介绍 这套系统,logstash负责收集处理日志文件内容存储到elasticsearch搜索引擎数据库中.kibana负责查询elasticsearch并在web中展示. logstash收集进程收获日志文件内容后,先输出到redis中缓存,还有一logstash处理进程从redis中读出并转存到elasticsearch中,以解决读快写慢速度不一致问题. 官方在线文档:https://www.elastic.co

elasticsearch + logstash + kibana 搭建实时日志收集系统【原创】

实时日志统一收集的好处: 1.快速定位集群中问题机器 2.无需下载整个日志文件(往往比较大,下载耗时多) 3.可以对日志进行统计 a.发现出现次数最多的异常,进行调优处理 b.统计爬虫ip c.统计用户行为,做聚类分析等 基于上面的需求,我采用了 ELK(elasticsearch + logstash + kibana)的方案,安装方法请到他们的官网:https://www.elastic.co/ 上面查询,这里我主要讲讲我遇到的问题. ??????1.LVS 分发UDP请求不成功的问题???

ELK日志系统:Elasticsearch+Logstash+Kibana搭建教程

ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程 安装配置JDK环境 JDK安装(不能安装JRE) JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载包:jdk-8u131-linux-x64.rpm yum localinstall jdk-8u131-linux-x64.rpm mvn 安装 cd /usr/lo

基于ELK5.1(ElasticSearch, Logstash, Kibana)的一次整合测试

前言开源实时日志分析ELK平台(ElasticSearch, Logstash, Kibana组成),能很方便的帮我们收集日志,进行集中化的管理,并且能很方便的进行日志的统计和检索,下面基于ELK的最新版本5.1进行一次整合测试. ElasticSearch1.概述:ElasticSearch是一个高可扩展的开源的全文搜索分析引擎.它允许你快速的存储.搜索和分析大量数据.ElasticSearch通常作为后端程序,为需要复杂查询的应用提供服务.Elasticsearch是一个基于Lucene的开