zoukankan      html  css  js  c++  java
  • Logstash+kibana+ ElasticSearch+redis

      这是之前Logstash+kibana+ ElasticSearch+redis 安装时,自己整理的初学者容易看懂的资料,按照以下的步骤也已经完成了安装。

    这里有二台服务器:
      192.168.148.201 logstash index,redis,ElasticSearch,kibana,JDK
      192.168.148.129 logstash agent,JDK

    1 系统各部分应用介绍

      Logstash:一个完全开源对日志进行收集、分析和存储的工具。他可以做系统的log收集,转载的工具。同时集成各类日志插件,对日志查询和分析的效率有很大的帮助.一般使用shipper作为log收集、indexer作为log转载.

    • Logstash shipper收集log 并将log转发给redis 存储
    • Logstash indexer从redis中读取数据并转发给elasticsearch

      redis:在这里做一个缓存的机制,logstash shipper将log转发到redis(只做队列处理不做存储)。Logstash indexer从redis中读取数据并转发给elasticsearch。 这里加上redis是为了提高Logstash shipper的日志提交到Logstash indexer的速度,同时避免由于突然断电等导致的数据的丢失。

      Elasticsearch:开源的搜索引擎框架,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。也可进行多数据集群,提高效率。这里的目的是从redis中读取数据,并转发到kibana中。

      Kibana:漂亮的界面展示,用web界面将数据挖掘后的数据以图表等形式进行形象的展示。

    以下是工作的一个流程图:

     

    2 服务端的安装步骤(192.168.148.201)

      2.1 JDK安装

      1.下载JDK:jdk-8u25-linux-x64.tar.gz

      2.解压安装:

        我们把JDK安装到这个路径(自己定义):/opt      

    cd /opt
    tar -zxvf jdk-8u25-linux-x64.tar.gz
    

         出现文件夹  jdk1.8.0_25。

      3.配置环境变量:vim ~/.bashrc

        在打开的文件的末尾添加,

    export JAVA_HOME=/opt/jdk1.8.0_25
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH

        保存退出,然后输入下面的命令来使之生效

    source ~/.bashrc

      4.配置默认JDK

    sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_25/bin/java 300
    
    sudo update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_25/bin/javac 300

        注意:如果以上两个命令出现找不到路径问题,只要重启一下计算机在重复上面两行代码就OK了。

        执行下面的代码可以看到当前各种JDK版本和配置:

    sudo update-alternatives --config java

      5.测试

        打开一个终端,输入下面命令:

    java -version

        检测java命令是否已经可以运行了。

      2.2 redis

      下面是redis.conf的主要配置参数的意义:

    • daemonize:是否以后台daemon方式运行
    • pidfile:pid文件位置
    • port:监听的端口号
    • timeout:请求超时时间
    • loglevel:log信息级别
    • logfile:log文件位置
    • databases:开启数据库的数量
    • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
    • rdbcompression:是否使用压缩
    • dbfilename:数据快照文件名(只是文件名,不包括目录)
    • dir:数据快照的保存目录(这个是目录)
    • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
    • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

    这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是6379

      1.部署一个redis单机实例:

    wget https://github.com/antirez/redis/archive/3.0.0-rc1.tar.gz

      2.

    tar zxvf 3.0.0-rc1.tar.gz

      3.编译

        需要说明的事,redis的安装非常简单,已经有现成的Makefile文件,直接运行make命令即可。

    make
    make install

      4.redis.conf配置文件为:

    daemonize yes
    port 6379
    appendonly yes

      5.启动:

     redis.server redis.conf

      6.测试

     redis-cli
    
    127.0.0.1:6379> quit
    
    /bin
    
    redis-server redis.conf &

      2.3 logstash

      下载并解压:

    $ wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz
    
    $ tar zxvf logstash-1.4.2.tar.gz -C /usr/local/
    
    $ cd /usr/local/logstash-1.4.2
    
    $ mkdir conf logs

      配置文件conf/central.conf:

    input {
    
     
    
        file {
    
            path => "/var/log"
    
            type => "syslog"
    
            exclude => "*.gz"
    
        }
    
     
    
     
    
        redis {
    
            host => "127.0.0.1"
    
            port => 6379
    
            type => "redis-input"
    
            data_type => "list"
    
            key => "key_count"
    
        }
    
    }
    
      output {
    
        elasticsearch {
    
         host => "192.168.148.201"
    
         port => "9300"
    
        }

    启动:

      

     root@user:/opt/logstash-1.4.2# bin/logstash agent --verbose --config conf/central.conf --log logs/stdout.log  

    2.4 ElasticSearch

    $ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.3.4.tar.gz

      $ elasticsearch使用默认配置即可,默认的cluster name为:elasticsearch;

      启动:

    lasticsearch -d

      $ bin/elasticsearch解压即可使用非常方便,接下来我们看一下效果,首先启动ES服务,切换到elasticsearch目录,运行bin下的elasticsearch

    cd /search/elasticsearch/elasticsearch-0.90.5/bin
    
    ./elasticsearch start

      访问默认的9200端口

    curl -X GET http://localhost:9200

      3.启动服务

    # elasticsearch-1.1.1/bin/elasticsearch &
    
    # logstash-1.4.2/bin/logstash -f logstash-1.4.2/conf/logstash-apache.conf &

      2.5部署Kibana

    $ wget https://download.elasticsearch.org/kibana/kibana/kibana-3.1.1.tar.gz
    
    $ tar zxvf kibana-3.1.1.tar.gz 

       修改配置文件config.js,仅需要配置elasticsearch的地址即可:

    elasticsearch: "http://192.168.148.201:9200"
     cp -r kibana-3.1.0 /var/www/html/kibana3

      出现问题:kibana 的WEB界面无法出现,80端口已经被用

    cd /etc/apache2/sites-available
    
    cp 000-default.conf kibana3.conf
    
    vim kibana3.conf

      

    <VirtualHost *:8080>#修改端口
    
     
    
        ServerAdmin 192.168.148.201/kibana3#有没有都没关系的
    
        DocumentRoot /var/www/html/kibana3#kibana的根目录
    
        <Directory /var/www/html/kibana3>
    
            Options None
    
            AllowOverride None
    
            Allow from all
    
        </Directory>
    
    CustomLog /var/www/html/kibana combined#放日志的地方
    
    </VirtualHost>
    
     
    cd /etc/apache2
    
    vim  ports.conf
    Listen 80
    
    Listen 8080#新加的
    
    <IfModule ssl_module>
    
        Listen 443
    
    </IfModule>
    
     
    
    <IfModule mod_gnutls.c>
    
        Listen 443
    
    </IfModule>

      各种重启:

    cd  /var/www/html/kibana3/app/dashboards
    mv logstash.json default.json
    /etc/init.d/apache2 restart
    cd /opt
    elasticsearch-1.1.1/bin/elasticsearch &
    logstash-1.4.2/bin/logstash -f logstash-1.4.2/conf/logstash.conf &

    3.客户端的安装

      安装服务端安装:

    bin/logstash -e 'input { stdin { } } output { stdout { codec => rubydebug } }'
    我们再输入一些字符,这次我们输入"goodnight moon":
    goodnight moon {   "message" => "goodnight moon",   "@timestamp" => "2013-11-20T23:48:05.335Z",   "@version" => "1",   "host" => "my-laptop" }

      netstat –atln 看端口信息   

    4.访问:http://192.168.148.201:8080

    欢迎界面

    ------------------------------------------------------------------------------------------------------------------------------本娃的学习日记@lily园
  • 相关阅读:
    【Spring源码这样读】-再次走近容器Spring IOC 一
    【Spring源码这样读】-下载安装一份Spring源码
    【Spring源码这样读】-认识Spring的基本功能
    【Spring源码这样读】-怎么阅读源码
    RabbitMQ没有延时队列?学会这一招玩转延时队列
    【HDU 3746 Cyclic Nacklace】
    10要点解决IE6兼容性问题
    《遍地风流》- 阿城
    PyCharm2021使用教程 --- 1、PyCharm的下载与安装
    爬虫系列 | 6、详解爬虫中BeautifulSoup4的用法
  • 原文地址:https://www.cnblogs.com/yanglicyfsdm/p/4309012.html
Copyright © 2011-2022 走看看