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收集數據。
相關教程: