Elasticsearch、Logstash、Kibana搭建統一日誌分析平臺

ELKstack是Elasticsearch、Logstash、Kibana三個開源軟件的組合。目前都在Elastic.co公司名下。
ELK是一套經常使用的開源日誌監控和分析系統,包括一個分佈式索引與搜索服務Elasticsearch,
一個管理日誌和事件的工具logstash,和一個數據可視化服務Kibana
logstash_1.5.3                  負責日誌的收集,處理和儲存
elasticsearch-1.7.2            負責日誌檢索和分析
kibana-4.1.2-linux-x64.tar.gz  負責日誌的可視化
redis-2.4.14                      DB以及日誌傳輸的通道來處理前端

用一張圖來表示他們之間的關係java

image

 

此文以兩個服務器爲例來部署linux

服務器A:192.168.0.1  java elasticsearch redis kibana logstash(agent indexer)web

服務器B:192.168.0.2  java logstash(agent)redis

 

首先安裝服務器A相關軟件vim

1、安裝基礎軟件windows

yum -y install curl wget lrzsz axel

 

2、安裝配置redis服務centos

一、安裝tcl8.6.1bash

複製代碼
a) tar -xf tcl8.6.1-src.tar.gz --strip-components=1 
b) cd tcl8.6.1/unix 
c) ./configure --prefix=/usr/local 
d) make
e) make test 
f) make install  
g) make install-private-headers  
h) ln -v -sf tclsh8.6 /usr/bin/tclsh  
i) chmod -v 755 /usr/lib/libtcl8.6.so(可選,而且如報找不到文件,不要緊)
複製代碼

二、安裝redis-3.0.2服務器

複製代碼
wget http://download.redis.io/releases/redis-3.0.2.tar.gz 
tar xzf redis-3.0.2.tar.gz /usr/local/redis
cd redis-3.0.2
make MALLOC=libc
make test
make install
複製代碼

二、配置redis

複製代碼

a) mkdir /etc/redis 

b) mkdir /var/redis 

c) cp utils/redis_init_script /etc/init.d/redis

d) vim /etc/init.d/redis
頭部添加:

#chkconfig: 345 60 60

#!/bin/bash

e) mkdir /var/redis/6379 

f) cp redis.conf /etc/redis/6379.conf

g) vim /etc/redis/6379.conf
        #設置daemonize爲yes
        #設置pidfile爲/var/run/redis_6379.pid
        #設置loglevel
        #設置logfile爲/var/log/redis_6379.log
        #設置dir爲/var/redis/6379

h) sysctl vm.overcommit_memory=1

i) chkconfig --add redis

j) chkconfig redis on

複製代碼

三、重啓服務

service redis start/stop

四、查看進程和端口
1)查看進程

ps -ef |grep redis
root     31927 25099  0 18:26 pts/0    00:00:00 vi /etc/init.d/redis

2)查看端口

netstat -tupnl |grep redis
tcp        0      0 0.0.0.0:6379                0.0.0.0:*                   LISTEN      31966/redis-server  
tcp        0      0 :::6379                     :::*                        LISTEN      31966/redis-server

 

3、安裝java環境

一、安裝包

yum -y list java* 
yum -y install openjdk-7-jdk

二、查看版本

java -version
java version "1.7.0_91"
OpenJDK Runtime Environment (rhel-2.6.2.2.el6_7-x86_64 u91-b00)
OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode)

 

4、安裝elasticsearch

一、下載elasticsearch

wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.noarch.rpm

二、安裝elasticsearch

rpm -ivh elasticsearch-1.7.2.noarch.rpm

三、配置
1)備份配置

cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak

2)修改配置

echo "network.bind_host: 192.168.0.1" >> /etc/elasticsearch/elasticsearch.yml

四、啓動elasticsearch服務

/etc/init.d/elasticsearch start
/etc/init.d/elasticsearch stop

五、查看進程和端口

1)查看進程

ps -ef |grep java

2)查看端口

netstat -tupnl |grep java

六、測試

複製代碼
curl -X GET http://192.168.54.147:9200
{
  "status" : 200,
  "name" : "Miguel O'Hara",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "1.7.2",
    "build_hash" : "e43676b1385b8125d647f593f7202acbd816e8ec",
    "build_timestamp" : "2015-09-14T09:49:53Z",
    "build_snapshot" : false,
    "lucene_version" : "4.10.4"
  },
  "tagline" : "You Know, for Search"
}
複製代碼

七、添加到開機啓動

update-rc.d elasticsearch defaults
update-rc.d: using dependency based boot sequencing

 

5、安裝logstash

一、下載logstash

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

二、安裝logstash

rpm -ivh logstash-1.5.4-1.noarch.rpm

三、配置(默認沒有這個配置文件)

複製代碼
vim /etc/logstash/conf.d/logstash_indexer.conf
input {
        redis {
                host => "192.168.0.1"
                data_type => "list"
                key => "logstash:redis"
                type => "redis-input"
        port => "6379"
        }
}
output {
        elasticsearch {
                host => "192.168.0.1"
        }
}
複製代碼

四、啓動服務

/etc/init.d/logstash start

五、使用jps -mlv或ps -ef來查看下進程

ps -ef|grep logst

六、設置開機啓動

update-rc.d logstash defaults
update-rc.d: using dependency based boot sequencing

 

6、安裝kibana(前端web)

一、下載

wget https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gz

二、解壓到指定目錄

tar zxvf kibana-4.1.2-linux-x64.tar.gz -C /opt

三、建立日誌目錄

mkdir -p /opt/kibanalog

四、配置
1)備份配置

cp /opt/kibana-4.1.2-linux-x64/config/kibana.yml /opt/kibana-4.1.2-linux-x64/config/kibana.yml.bak

2)修改配置

sed -i 's!^elasticsearch_url: .*!elasticsearch_url: "http://192.168.0.1:9200"!g' /opt/kibana-4.1.2-linux-x64/config/kibana.yml
sed -i 's!^host: .*!host: "192.168.0.1"!g' /opt/kibana-4.1.2-linux-x64/config/kibana.yml

五、啓動服務

cd  /opt/kibanalog && nohup /opt/kibana-4.1.2-linux-x64/bin/kibana &

六、查看進程和端口
1)查看進程

ps aux |grep kibana

2)查看端口

netstat -tupnl|grep 5601

七、在windows上訪問

http://192.168.0.1:5601

八、設置開機啓動

echo "cd /opt/kibanalog && nohup /opt/kibana-4.1.2-linux-x64/bin/kibana &" >> /etc/rc.local

 

到此服務器A的相關軟件所有安裝完成;

 

如今安裝日誌採集端的程序(服務器B),能夠有多個

clientB安裝配置logstash(agent)

一、安裝java環境

yum -y list java* 
yum -y install openjdk-7-jdk

一、下載logstash

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

二、安裝logstash

rpm -ivh logstash-1.5.4-1.noarch.rpm

三、配置(默認沒有這個配置文件)
1)配置logstash_agent

複製代碼
vim /etc/logstash/conf.d/logstash_agent.conf

input {
    file {
        path => "/tmp/*.log"
        start_position => beginning
    }
}

output {
        redis {
                host => "192.168.0.1"
                data_type => "list"
                key => "logstash:redis"
        }
}
複製代碼


五、啓動服務

/etc/init.d/logstash start
logstash started.


六、使用jps -mlv或ps -ef來查看下進程

ps -ef|grep logst

七、設置開機啓動

update-rc.d logstash defaults
update-rc.d: using dependency based boot sequencing

 

至此服務器B也安裝配置完成,根據日誌採集端的須要能夠配置N個服務B

 

如何查看日誌:

一、查看redis日誌

cat /var/log/redis/redis-server.log

二、查看elasticsearch日誌

cat /var/log/elasticsearch/elasticsearch.log
tail -300f  /var/log/elasticsearch/elasticsearch.log

三、查看logstash日誌

cat /var/log/logstash/logstash.errtail -30f /var/log/logstash/logstash.err

四、查看kibana日誌

cat /opt/kibanalog/nohup.out
tail -30f /opt/kibanalog/nohup.out

 

 

錯誤處理

1)unable to fetch mapping, do you have indices matching the pattem?

kibana 報這個錯誤就是由於沒有從logstash 過來任何數據通常檢查一下數據傳輸


做者:純潔的微笑 
出處:www.ityouknow.com 本文版權歸做者和博客園共有,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利。 

相關文章
相關標籤/搜索