Logstash安裝搭建(一)

  Logstash是一個具備實時管道的開源數據收集引擎。能夠動態地統一不一樣來源的數據,並將數據歸到不一樣目的地。也是一個管理事件和日誌工具。你能夠用它來收集日誌,分析它們,並將它們儲存起來以供之後使用。html

  Logstash 一般都是和 Kibana 以及 Elasticsearch 一塊兒使用,其實還有不少其餘的用法值得咱們關注的。Elasticsearch的相關配置與搭建能夠查看本博客。本文將詳細講述logstash的安裝和簡單配置。java

一、從官網下載Logstashlinux

# wget https://download.elastic.co/logstash/logstash/logstash-2.3.2.tar.gz

二、下載logstash的rpm版本,解壓使用官方啓動腳本後端

# wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.2-1.noarch.rpm

三、Java 8 下載地址:centos

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 

四、配置java環境ruby

# tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/local/
# vi /etc/profile
    export JAVA_HOME=/usr/local/jdk1.8.0_91
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile

輸入 java -version若看到以下信息,則java環境配置成功oracle

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

五、解壓rpm軟件包dom

# mv logstash-2.3.2-1.noarch.rpm /tmp
# cd /tmp/
# rpm2cpio logstash-2.3.2-1.noarch.rpm | cpio -div

六、解壓tar包,並配置啓動腳本 curl

# tar zxf logstash-2.3.2.tar.gz -C /usr/local/      
# cd /usr/local/
# mv logstash-2.3.2/ logstash
# groupadd -r logstash  //建立logstash組
# useradd -r -g logstash -d /usr/local/logstash -s /sbin/nologin -c "logstash" logstash  //建立logstash用戶

將rpm軟件包中的腳本複製到系統指定位置
# cp /tmp/etc/init.d/logstash /etc/init.d/
# cp /tmp/etc/sysconfig/logstash /etc/sysconfig/
# cp /tmp/etc/logrotate.d/logstash /etc/logrotate.d/
# chmod 0644 /etc/logrotate.d/logstash

建立logstash的日誌、HOME以及配置文件目錄
# mkdir -p /etc/logstash/conf.d/  //配置文件目錄
# mkdir /var/log/logstash  //日誌目錄
# mkdir /var/lib/logstash  //HOME目錄
# chown logstash /var/log/logstash
# chown logstash:logstash /var/lib/logstash
# chown -R logstash:logstash /usr/local/logstash/

配置啓動腳本中的變量,將其修改成logstash的實際路徑
# vi /etc/init.d/logstash
    program=/usr/local/logstash/bin/logstash

此時就能夠將本身寫好的logstash配置文件放到  /etc/logstash/conf.d/ 下,並設置開機啓動。elasticsearch

七、使用簡單的配置文件測試

# cat /etc/logstash/conf.d/simple.conf
input {
  stdin {}
}
output {
  stdout {
    codec => rubydebug }
}

使用命令運行logstash

# /usr/local/logstash/bin/logstash -f /etc/logstash/conf.d/simple.conf     // -f 指定配置文件,在啓動以前還能夠使用 -t 參數指定配置文件檢查配置是否正確
Settings: Default pipeline workers: 4
Pipeline main started

輸入hello world ,查看輸出結果

#/usr/local/logstash/bin/logstash -f /etc/logstash/conf.d/simple.conf 
Settings: Default pipeline workers: 4
Pipeline main started
hello world !
{
       "message" => "hello world !",
      "@version" => "1",
    "@timestamp" => "2016-06-13T02:35:01.737Z",
          "host" => "localhost.localdomain"
}

能夠看到,輸入什麼內容logstash按照某種格式輸出,使用CTRL-C命令能夠退出以前運行的Logstash。

八、配置logstash使用elasticsearch做爲logstash後端

# cat /usr/local/logstash/conf.d/logstash-es-simple.conf
  input {
    stdin {}
  }
  output {
    elasticsearch {
      hosts => "127.0.0.1"}
    stdout {
      codec => rubydebug }
  }

執行命令

 執行命令:
    # /usr/local/logstash/bin/logstash agent -f conf.d/logstash-es-simple.conf
        Settings: Default pipeline workers: 4
        Pipeline main started
        hello logstash
        {
               "message" => "hello logstash",
              "@version" => "1",
            "@timestamp" => "2016-06-13T02:39:25.112Z",
                  "host" => "localhost.localdomain"
        }

使用curl命令發送請求來查看ES是否接收到了數據:

# curl 'http://127.0.0.1:9200/_search?pretty'
        {
          "took" : 21,
          "timed_out" : false,
          "_shards" : {
            "total" : 5,
            "successful" : 5,
            "failed" : 0
          },
          "hits" : {
            "total" : 1,    
            "max_score" : 1.0,
            "hits" : [ {
              "_index" : "logstash-2016.06.13",
              "_type" : "logs",
              "_id" : "AVRg9UHczZ2iuimLmajG",
              "_score" : 1.0,
              "_source" : {
                "message" : "hello logstash",
                "@version" : "1",
                "@timestamp" : "2016-06-13T02:39:25.112Z",
                "host" : "localhost.localdomain"
              }
            } ]
          }
        }

此時已經成功利用elasticsearch和logstash收集數據。

相關教程:

http://udn.yyuap.com/doc/logstash-best-practice-cn/

http://kibana.logstash.es/content/

相關文章
相關標籤/搜索