网站首页  词典首页

请输入您要查询的论文:

 

标题 基于ELK的日志分析系统
范文

    魏山林

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

    关键词:日志;系统运维

    中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)05-0069-02

    1 Elk日志分析平台介绍

    通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog ,将所有服务器上的日志收集汇总。

    集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用 grep 、 awk 和 wc 等Linux 命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

    2 开源实时日志分析ELK平台部署流程

    1)安装Logstash 依赖包 JDK

    Logstash 的运行依赖于Java 运行环境, Logstash 1.5 以上版本不低于 java 7 推荐使用最新版本的Java 。

    下载RPM包安装jdk

    #rpm -ivh jdk-8u91-linux-x64.rpm

    设置 JDK 的环境变量,如下:

    # tail -5 /etc/profile

    export JAVA_HOME=/usr/java/jdk1.8.0_91

    export PATH=$PATH:$JAVA_HOME/bin

    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

    在 Shell 提示符中执行java version 命令,显示如下结果,说明安装成功:

    # java -version

    java version "1.8.0_91"

    2)安装 Logstash

    下载并安装Logstash ,下载allplugins的版本,安装logstash 只需将它解压的对应目录即可,例如: /usr/local 下:

    # tar zxf logstash-all-plugins-2.3.1.tar.gz -C /usr/local/

    #cd /usr/local

    #mv logstash-2.3.1 logstash

    安裝完成后运行如下命令:

    # /usr/local/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'

    Settings: Default pipeline workers: 8

    Pipeline main started

    ysten

    2016-05-20T01:53:36.857Z localhost ysten

    使用-e参数在命令行中指定配置是很常用的方式,不过如果需要配置更多设置则需要很长的内容。这种情况,我们首先创建一个简单的配置文件,并且指定logstash使用这个配置文件。例如:在logstash 安装目录下创建一个“基本配置”测试文件 logstash-test.conf,文件内容如下:

    # cat logstash-simple.conf

    input { stdin { } }

    output {

    stdout { codec=> rubydebug }

    }

    Logstash 使用 input 和 output 定义收集日志时的输入和输出的相关配置,本例中 input 定义了一个叫"stdin"的 input , output 定义一个叫"stdout"的 output 。无论我们输入什么字符,Logstash 都会按照某种格式来返回我们输入的字符,其中 output 被定义为"stdout"并使用了 codec 参数来指定logstash 输出格式。

    使用logstash的-f参数来读取配置文件,执行如下开始进行测试:

    # echo "`date` hello World"

    Fri May 20 09:58:13 CST 2016 hello World

    # /usr/local/logstash/bin/logstash agent -f logstash-simple.conf

    Settings: Default pipeline workers: 8

    Pipeline main started

    Fri May 20 09:58:13 CST 2016 hello World

    {

    "message" =>"Fri May 20 09:58:13 CST 2016 hello World",

    "@version" =>"1",

    "@timestamp" =>"2016-05-20T01:58:23.138Z",

    "host" =>"localhost"

    }

    3)安装 Elasticsearch

    下载 Elasticsearch 的最新版RPM包并安装。

    #rpm -ivh elasticsearch-2.3.2.rpm

    修改 Elasticsearch配置

    #vim /etc/elasticsearch/elasticsearch.yml

    启动elasticsearch服务

    # /etc/init.d/elasticsearch start

    确认 elasticsearch 的 9200 端口已监听,说明 elasticsearch 已成功运行

    # netstat -anp |grep :9200

    tcp 0 0 ::ffff:192.168.1.111:9200 :::* LISTEN 12440/java

    访问http://192.168.1.111:9200/

    Elasticsearch 安装完成。

    4)安装 Kibana

    下载 kibana 的最新版RPM包并安装。

    # rpm -ivhkibana-4.5.0-1.x86_64.rpm

    修改 kibana配置

    # vim /opt/kibana/config/kibana.yml

    启动kibana服务

    # /etc/init.d/kibana start

    使用 http://192.168.1.111:5601访问 Kibana,全绿就说明安装成功。

    5)安装Redis

    下载最新版Redis

    # tar -zxvf redis-3.2.0.tar.gz -C /usr/local

    # cd /usr/local

    # mv redis-3.2.0 redis

    安装redis

    # cd /usr/local/redis

    # make

    # make install

    使用redis自带的脚本配置redis

    启动redis

    # /usr/local/bin/redis-server

    6)集成測试-搜集分析nginx日志

    Logstash

    创建input output配置文件

    #cat sp.conf #采集传输nginx日志到redis

    input {

    file {

    type =>"nginx_access"

    path => ["/nginxlogs/tvlivemedia.log"]

    }

    }

    output {

    redis {

    host =>“localhost"#若不是本地redis则改成redis服务器ip

    data_type =>"list"

    key =>"logstash:redis"

    }

    }

    #cat index.conf#从redis发送日志到Elasticsearch

    input {

    redis {

    host =>"localhost"

    data_type =>"list"

    key =>"logstash:redis"

    type =>"redis-input"

    }

    }

    output {

    elasticsearch {

    hosts =>"192.168.1.111"

    index =>"access-%{+YYYY.MM.dd}"

    }

    }

    启动采集进程

    #/usr/local/logstash/bin/logstash agent -f sp.conf &

    Settings: Default pipeline workers: 8

    Pipeline main started

    Elasticsearch

    访问http://192.168.1.111:9200/_search?pretty=true来查看index-pattern

    已经可以看到nginx日志进入了Elasticsearch并建立索引access-2016.05.19

    Kibana

    打开Kibana

    http://192.168.1.111:5601/app/kibana#/settings

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/23 19:02:55