ELK0.9搭建

1. ELK是什么

ELK是ElasticSearch缘厢,Logstash狸演,Kibana加在一起的縮寫眉厨,ElasticSearch簡稱ES,主要用來存儲和檢索數(shù)據(jù)孵户。Logstash主要用來往ES中寫入數(shù)據(jù)萧朝。Kibana主要用來展示數(shù)據(jù)。一般用這幾個應用組合來搭建分布式日志系統(tǒng)延届,監(jiān)控平臺剪勿。

2. 為什么要使用ELK

記錄系統(tǒng)日志,并方便檢索

我在維護一個已經(jīng)運行很多年的網(wǎng)站方庭,一個Java WEB項目厕吉,部署在weblogic上,后臺使用的是Oracle數(shù)據(jù)庫械念,平心而論這個項目全部用開源的技術(shù)就好头朱,根本沒必要花錢用Oracle的東西,不過這種電信的遺留系統(tǒng)龄减,也不能說調(diào)整就調(diào)整项钮,呵呵扯遠了。
最開始一臺服務器就能跑起來了,后來訪問量大了烁巫,就增加幾臺服務器署隘,再配個負載均衡。問題來了亚隙,后臺的日志都是打印在war包所在服務器上磁餐,系統(tǒng)出現(xiàn)問題的話需要逐個服務器查找日志文件,相當麻煩阿弃。能不能把這些分布式的日志都放到同一個地方呢诊霹?一開始有個“大神”(好像是我)想到了把日志都放到數(shù)據(jù)庫-Oracle。問題是勉強解決渣淳,但是脾还,日志本身只會不停新增,不會有更新操作入愧,刪除操作鄙漏,也不會有什么一致性要求,放到關(guān)系型數(shù)據(jù)庫實在是殺雞用牛刀的感覺砂客,于是后來就用到了這個ELK泥张。
以往有syslogd等工具可以匯總到一臺機器,但都是以文件方式鞠值,搜索不方便媚创。Logstash可配置輸出到ElasticSearch服務幫忙做搜索功能,可以做到實時的關(guān)鍵字搜索彤恶,作為系統(tǒng)管理員钞钙,這個配置非常方便。

為什么要用0.9版本声离? 現(xiàn)在都有ELK5了啊

所謂的0.9版本其實就是指ElasticSearch的0.9版本芒炼。而0.9版本是最后一個還支持JDK 1.6的版本。JDK1.6是國內(nèi)第一個被大范圍廣泛使用的JDK版本术徊,直到現(xiàn)在還有無數(shù)的項目用著1.6本刽。 因為安裝ELK的服務器正是某個電信遺留系統(tǒng)所在的服務器,給遺留系統(tǒng)升級JDK版本也不是說升級就升級的赠涮,除了技術(shù)上的工作還有大量非技術(shù)的工作子寓,這會折騰我好多時間,所以先用0.9試試手笋除,以后再找一臺新的服務器安裝最新的ELK斜友,以便用上其更強大的功能。

3. 安裝步驟

系統(tǒng)環(huán)境

16核 Intel(r) Xeon(R) CPU E5620 @ 2.40GHz
32G內(nèi)存
Red Hat Enterprise Linux Server release 5.5 (Tikanga)
jdk1.6.0_23

Redis

Redis是什么

Redis 是一個開源(BSD許可)的垃它,內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)存儲系統(tǒng)鲜屏,它可以用作數(shù)據(jù)庫烹看、緩存和消息中間件。

為什么要使用Redis

ELK本身并沒有Redis洛史,為什么會需要這個東東呢惯殊?
Redis在這里充當?shù)氖且粋€緩沖的消息隊列。

  1. 在Java開發(fā)中也殖,不少人會用到Logback作為日志的工具靠胜,由于Logback目前沒有渠道直接把Log發(fā)到Logstash上,所以就做一個Appender毕源,先把log發(fā)送到Redis上,然后logstash自己上redis取日志
  2. 提高系統(tǒng)穩(wěn)定性陕习,避免因網(wǎng)絡抖動等原因突然出現(xiàn)大量寫入日志造成阻塞霎褐。先把日志放到Redis中緩沖一下怕吴,即使logstash讀取數(shù)據(jù)失敗桃笙,數(shù)據(jù)依舊在Redis中不會丟失。

安裝

安裝的是3.2.8版本歌径,編譯安裝

$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz
$ tar xzvf redis-3.2.8.tar.gz
$ cd redis-3.2.8
$ make & make install
$ vi redis.conf    
# 編輯redis.conf文件
#(1)把“bind 127.0.0.1”注釋掉损合,否則redis只能從本地訪問
#(2)加上這一句:requirepass 【密碼】省艳,既然允許遠程訪問,自然應該設置密碼
$ cd src
$ ./redis-server

Logstash

安裝的是1.3.3版本嫁审,注意Logstash的版本必須對應ElasticSearch特定版本跋炕,否則無法運行,而且兩者版本號并不是一致的律适,相當混亂辐烂,好像是ELK3還是ELK5重新整理了版本號才改善過來。

$ mkdir logstash
$ cd logstash
$ wget http://download.elasticsearch.org/logstash/logstash/logstash-1.3.3-flatjar.jar
# 創(chuàng)建redis-logstash.conf
$ touch redis-logstash.conf
$ vi redis-logstash.conf
input{
    redis{
        host=>"127.0.0.1"      #我的redis也裝在同一臺服務器
        port=>6379                #redis的端口
        data_type=>"list"
        key=>"logstash"         # 自定義的key捂贿,需要與我在logback上配置的對應
        password=>"Abcedfg"  #在redis設置的訪問密碼
        codec=>json{
            charset=>"UTF-8"
        }
}
output{
    file{
        #從redis中獲取的日志纠修,放到這個文件,支持動態(tài)文件名
        path=>"/data/logs/logstash-%{+yyyy.MM.dd}.log"  
    }
    elasticsearch{
        host=>"127.0.0.1"  # 我的elasticsearch也是裝在同一臺服務器上
    }
}
# 直接用Java跑這個jar包
# 其中 -f 是指以前臺方式運行厂僧,結(jié)合實際情況考慮去掉
$ java -jar logstash-1.3.3-flatjar.jar agent -f redis-logstash.conf

ElasticSearch

安裝的版本是0.90.13

$ wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.13.tar.gz
$ tar xvf elasticsearch-0.90.13.tar.gz
$ cd elasticsearch-0.90.13/bin/
# 使用的是默認的配置扣草,在redis-logstash.conf中已經(jīng)指定了ElasticSearch所在的ip,所以只需開啟ElasticSearch颜屠,它自會處理日志
# -f 是指以前臺方式運行辰妙,根據(jù)實際情況去掉
$ ./elasticsearch -f

Kibana

可以通過一個圖形化的界面看日志
logstash已經(jīng)包含了:
java -jar logstash-1.3.3-flatjar.jar web
它默認使用的是9292端口,我們用一個支持HTML5的瀏覽器打開即可http://127.0.0.1:9292/index.html#/dashboard/file/logstash.json

4. 不足與展望

以上只是介紹了一個簡單的安裝步驟汽纤,可以看到安裝的版本很舊上岗,ELK全部裝在一臺服務器,索引也沒有優(yōu)化蕴坪,內(nèi)存會越來越少肴掷,也沒有使用集群以保證高可用敬锐。這個以后再另寫文章總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市呆瞻,隨后出現(xiàn)的幾起案子台夺,更是在濱河造成了極大的恐慌,老刑警劉巖痴脾,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颤介,死亡現(xiàn)場離奇詭異,居然都是意外死亡赞赖,警方通過查閱死者的電腦和手機滚朵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來前域,“玉大人辕近,你說我怎么就攤上這事∧渎ⅲ” “怎么了移宅?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長椿疗。 經(jīng)常有香客問我漏峰,道長,這世上最難降的妖魔是什么届榄? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任浅乔,我火速辦了婚禮,結(jié)果婚禮上痒蓬,老公的妹妹穿的比我還像新娘童擎。我一直安慰自己,他們只是感情好攻晒,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布顾复。 她就那樣靜靜地躺著,像睡著了一般鲁捏。 火紅的嫁衣襯著肌膚如雪芯砸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天给梅,我揣著相機與錄音假丧,去河邊找鬼。 笑死动羽,一個胖子當著我的面吹牛包帚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播运吓,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼渴邦,長吁一口氣:“原來是場噩夢啊……” “哼疯趟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起谋梭,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤信峻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瓮床,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盹舞,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年隘庄,在試婚紗的時候發(fā)現(xiàn)自己被綠了踢步。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡丑掺,死狀恐怖贾虽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吼鱼,我是刑警寧澤,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布绰咽,位于F島的核電站菇肃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏取募。R本人自食惡果不足惜琐谤,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望玩敏。 院中可真熱鬧斗忌,春花似錦、人聲如沸旺聚。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砰粹。三九已至唧躲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碱璃,已是汗流浹背弄痹。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留嵌器,地道東北人肛真。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像爽航,于是被迫代替她去往敵國和親蚓让。 傳聞我的和親對象是個殘疾皇子乾忱,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容