Source: http://www.cnblogs.com/ityouknow/p/4933103.html
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以及日志傳輸的通道來處理
用一張圖來表示他們之間的關系
此文以兩個服務器為例來部署
服務器A:192.168.0.1 java elasticsearch redis kibana logstash(agent indexer)
服務器B:192.168.0.2 java logstash(agent)
首先安裝
服務器A相關軟件
一、安裝基礎軟件
yum -y install curl wget lrzsz axel
二、安裝配置redis服務
1、安裝tcl8.6.1
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(可選,并且如報找不到文件,沒關系)
2、安裝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
2、配置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
3、重啟服務
service redis start/stop
4、查看進程和端口
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
三、安裝java環境
1、安裝包
yum -y list java*
yum -y install openjdk-7-jdk
2、查看版本
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)
四、安裝elasticsearch
1、下載elasticsearch
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.2.noarch.rpm
2、安裝elasticsearch
rpm -ivh elasticsearch-1.7.2.noarch.rpm
3、配置
1)備份配置
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
2)修改配置
echo "network.bind_host: 192.168.0.1" >> /etc/elasticsearch/elasticsearch.yml
4、啟動elasticsearch服務
/etc/init.d/elasticsearch start
/etc/init.d/elasticsearch stop
5、查看進程和端口
1)查看進程
ps -ef |grep java
2)查看端口
netstat -tupnl |grep java
6、測試
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"
}
7、添加到開機啟動
update-rc.d elasticsearch defaults
update-rc.d: using dependency based boot sequencing
五、安裝logstash
1、下載logstash
wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-1.5.4-1.noarch.rpm
2、安裝logstash
rpm -ivh logstash-1.5.4-1.noarch.rpm
3、配置(默認沒有這個配置文件)
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"
}
}
4、啟動服務
/etc/init.d/logstash start
5、使用jps -mlv或ps -ef來查看下進程
ps -ef|grep logst
6、設置開機啟動
update-rc.d logstash defaults
update-rc.d: using dependency based boot sequencing
六、安裝kibana(前端web)
1、下載
wget https://download.elastic.co/kibana/kibana/kibana-4.1.2-linux-x64.tar.gz
2、解壓到指定目錄
tar zxvf kibana-4.1.2-linux-x64.tar.gz -C /opt
3、創建日志目錄
mkdir -p /opt/kibanalog
4、配置
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
5、啟動服務
cd /opt/kibanalog && nohup /opt/kibana-4.1.2-linux-x64/bin/kibana &
6、查看進程和端口
1)查看進程
ps aux |grep kibana
2)查看端口
netstat -tupnl|grep 5601
7、在windows上訪問
http://192.168.0.1:56018、設置開機啟動
echo "cd /opt/kibanalog && nohup /opt/kibana-4.1.2-linux-x64/bin/kibana &" >> /etc/rc.local
到此服務器A的相關軟件全部安裝完成; 現在安裝日志采集端的程序(
服務器B),可以有多個
clientB安裝配置logstash(agent)
1、安裝java環境
yum -y list java*
yum -y install openjdk-7-jdk
1、下載logstash
wget https://download.elastic.co/logstash/logstash/packages/centos/logstash-1.5.4-1.noarch.rpm
2、安裝logstash
rpm -ivh logstash-1.5.4-1.noarch.rpm
3、配置(默認沒有這個配置文件)
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"
}
}
5、啟動服務
/etc/init.d/logstash start
logstash started.
6、使用jps -mlv或ps -ef來查看下進程
ps -ef|grep logst
7、設置開機啟動
update-rc.d logstash defaults
update-rc.d: using dependency based boot sequencing
至此服務器B也安裝配置完成,根據日志采集端的需要可以配置N個服務B 如何查看日志:
1、查看redis日志
cat /var/log/redis/redis-server.log
2、查看elasticsearch日志
cat /var/log/elasticsearch/elasticsearch.log
tail -300f /var/log/elasticsearch/elasticsearch.log
3、查看logstash日志
cat /var/log/logstash/logstash.errtail -30f /var/log/logstash/logstash.err
4、查看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 過來任何數據一般檢查一下數據傳輸