Logstash+kibana+ ElasticSearch+redis

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

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

1 系统各部分应用介绍linux

  Logstash:一个彻底开源对日志进行收集、分析和存储的工具。他能够作系统的log收集,转载的工具。同时集成各种日志插件,对日志查询和分析的效率有很大的帮助.通常使用shipper做为log收集、indexer做为log转载.git

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

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

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

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

如下是工做的一个流程图:数据库

 

 

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

  2.1 JDK安装json

  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

欢迎界面

 

 

相关文章
相关标签/搜索