logstash+kafka

前言

線上項(xiàng)目的日志在整個(gè)系統(tǒng)中的重要性不言而喻,以往日志往往成為發(fā)現(xiàn)錯(cuò)誤用來(lái)查看錯(cuò)誤信息的工具,但是這其實(shí)時(shí)間相對(duì)滯后了,如果能比使用者更早發(fā)現(xiàn)問(wèn)題,就能更好的應(yīng)對(duì)了,這次我們介紹使用lostash+kafka來(lái)監(jiān)控錯(cuò)誤日志發(fā)送郵件的功能。

環(huán)境信息

操作系統(tǒng)版本:CentOS release 6.5 (Final)
jdk版本:1.7.0-79

軟件包準(zhǔn)備

名稱 版本
logstash 2.3.4
kafka 2.11-0.10.0.1

把準(zhǔn)備好的包上傳到服務(wù)器上,這里我放在/usr/local文件夾下,準(zhǔn)備工作做好下面我們開(kāi)始部署環(huán)境了~

kafka

  • 解壓
    $ tar -zxvf kafka_2.11-0.10.0.1.tgz
  • 修改配置文件
    $ cd kafka_2.11-0.10.0.1
    $ vi config/server.properties
    這里我們需要對(duì)以下的內(nèi)容做修改
##broker.id必須唯一
broker.id=0
##當(dāng)前機(jī)器IP地址(單引號(hào)不需要)
listeners = PLAINTEXT://'your.host.name':9092
##kafka數(shù)據(jù)存放目錄
log.dirs=/usr/local/kafkalog
##zookeeper地址(這里我使用現(xiàn)有的zookeeper環(huán)境'192.168.1.120',后面使用到的地方均需替換為自己的地址,如果沒(méi)有需要自行搭建)
zookeeper.connect=192.168.1.120:2181
  • 啟動(dòng)kafka
##放在后臺(tái)運(yùn)行
$ nohup sh bin/kafka-server-start.sh config/server.properties &
  • 創(chuàng)建一個(gè)主題
##這里創(chuàng)建一個(gè)叫'kafkatopic'的主題
$ sh bin/kafka-topics.sh --create --topic kafkatopic --replication-factor 1 --partitions 1 --zookeeper 192.168.1.120:2181
 &
  • 測(cè)試是否ok
##啟動(dòng)生產(chǎn)者,localhost為kafka所在機(jī)器的IP,topic就是之前創(chuàng)建的
$ sh bin/kafka-console-producer.sh --broker-list localhost:9092 --sync --topic kafkatopic
##啟動(dòng)消費(fèi)者,需要制定zookeeper以及topic
$ sh bin/kafka-console-consumer.sh --zookeeper 192.168.1.120:2181 --topic kafkatopic --from-beginning

在生產(chǎn)者窗口輸入經(jīng)典的hello world,在消費(fèi)者窗口馬上出現(xiàn),這里就說(shuō)明ok了!

logstash

logstash比較簡(jiǎn)單,不需要配置

  • 同樣解壓包
    $ tar -zxvf logstash-2.3.4.tar.gz
    $ cd logstash-2.3.4
  • 編寫測(cè)試配置文件test.conf
##控制臺(tái)輸入
input { stdin { } }
##控制臺(tái)按照rubydebug格式輸出
output { stdout { codec => rubydebug } }
  • 啟動(dòng)logstash
    $ /usr/local/logstash-2.3.4/bin/logstash -f test.conf
    等控制臺(tái)打印出下面的內(nèi)容,說(shuō)明啟動(dòng)完畢
Settings: Default pipeline workers: 4
Logstash startup completed
  • 測(cè)試
##在控制臺(tái)輸入hello world
hello world
##控制臺(tái)輸出
{
       "message" => "hello world",
      "@version" => "1",
    "@timestamp" => "2016-09-13T02:23:01.783Z",
          "host" => "gejunqingdeMacBook-Pro.local",
          "tags" => [
        [0] "_dateparsefailure"
    ]
}
  • 編寫正式的輸出到kafka的配置文件kafka.conf
##在4560端口接收l(shuí)og4j發(fā)送的日志
input {
    log4j {
      type => "log4j-json"
      port => 4560
    }
}
##這里的localhost為kafka所在機(jī)器的IP,topic則是之前創(chuàng)建的
output {
    kafka {
        bootstrap_servers => "localhost:9092"
        topic_id => "kafkatopic"
    }
}
  • 后臺(tái)運(yùn)行
    $ nohup /usr/local/logstash-2.3.4/bin/logstash -f kafka.conf

結(jié)語(yǔ)

至此,logstash+kafka的配置已經(jīng)結(jié)束,后面只需要將日志輸入logtsash,使用應(yīng)用接收kafka消息來(lái)發(fā)送錯(cuò)誤郵件,這些后面再介紹~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容