一.elk套件介紹
ELK 由 ElasticSearch 、 Logstash 和 Kiabana 三個開源工具組成。官方網站: https://www.elastic.co/products
Elasticsearch 是個開源分布式搜索引擎,它的特點有:分布式,零配置,自動發現,索引自動分片,索引副本機制, restful 風格接口,多數據源,自動搜索負載等。
Logstash 是一個完全開源的工具,他可以對你的日志進行收集、分析,並將其存儲供以后使用(如,搜索)。
kibana 也是一個開源和免費的工具,他 Kibana 可以為 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以幫助您匯總、分析和搜索重要數據日志。
工作原理如下如所示:

**客戶端的logstash從日志里取出數據推送到服務端的redis里,服務端的logstash從redis里取出推送到elasticsearch,elasticsearch進行分析,kibana來展示
注:安裝全部使用rpm安裝,方便管理
二、服務端安裝過程
1.安裝依賴JDK
版本:jre-8u91-linux-x64.rpm
# rpm -ivh jre-8u91-linux-x64.rpm
Preparing... ########################################### [100%]
1:jre1.8.0_91 ########################################### [100%]
Unpacking JAR files...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
jfxrt.jar...
2.安裝logstash
版本:logstash-2.3.2-1.noarch.rpm
# rpm -ivh logstash-2.3.2-1.noarch.rpm
Preparing... ########################################### [100%]
3.安裝elasticsearch
版本:elasticsearch-2.3.3.rpm
# rpm -ivh elasticsearch-2.3.3.rpm
Preparing... ########################################### [100%]
4.安裝kibana
版本:kibana-4.5.1-1.x86_64.rpm
# rpm -ivh kibana-4.5.1-1.x86_64.rpm
Preparing... ########################################### [100%]
1:kibana ########################################### [100%]
5.安裝redis
版本: redis-3.0.0.tar.gz
#tar xf redis-3.0.0.tar.gz
#cd redis-3.0.0
#make
#mkdir /usr/local/redis
#mkdir /usr/local/redis/bin
#cp src/redis-benchmark /usr/local/redis/bin/
#cp src/redis-check-aof /usr/local/redis/bin/
#cp src/redis-check-dump /usr/local/redis/bin/
#cp src/redis-cli /usr/local/redis/bin/
#cp src/redis-sentinel /usr/local/redis/bin/
#cp src/redis-server /usr/local/redis/bin/
#cp redis.conf /usr/local/redis/
#cd /usr/local/redis/
#mv redis.conf redis_6378.conf
三.客戶端安裝過程#
1.安裝依賴JDK
版本:jre-8u91-linux-x64.rpm
# rpm -ivh jre-8u91-linux-x64.rpm
Preparing... ########################################### [100%]
1:jre1.8.0_91 ########################################### [100%]
Unpacking JAR files...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
jfxrt.jar...
2.安裝logstash
版本:logstash-2.3.2-1.noarch.rpm
# rpm -ivh logstash-2.3.2-1.noarch.rpm
Preparing... ########################################### [100%]
四.客戶端配置
#cd /etc/logstash/conf.d/
#新建一個conf文件
## vi nginx_access.conf
配置文件如下:
input {
file {
type => "nginx_access"
#分析的日志路徑。一般都是咱們的squid or nginx日志路徑
path => ["/usr/local/nginx/logs/access.log"]
codec => plain {
charset => ["UTF-8"] #字符編碼UTF-8
}
}
}
output {
stdout {}
redis {
#將過濾好的數據推送到服務端的redis里
host => '服務端IP地址'
data_type => 'list'
key => 'elk:redis'
codec => json {
charset => ["UTF-8"]
}
}
}
啟動服務
/etc/init.d/logstash start
五、服務端配置
1.修改logstash配置文件
# cd /etc/logstash/conf.d/
# vi nginx_access.conf
input {
redis {
#從redis里取出日志
host => '服務器IP地址'
data_type => 'list'
port => "6378"
key => 'elk:redis'
type => 'redis-input'
codec => plain {
charset => "UTF-8"
}
}
}
filter {
json{
source =>"message"
}
}
#把日志交給elastic分析
output {
elasticsearch {
hosts => ["127.0.0.1:9200"]
codec => "json"
}
}
2.修改logstash運行內存
vi /etc/init.d/logstash
LS_HEAP_SIZE="1g"
#此處可以根據你服務器的配置來修改
3.配置elasticsearch
vi /usr/share/elasticsearch/bin/elasticsearch.in.sh
if [ "x$ES_MAX_MEM" = "x" ]; then
ES_MAX_MEM=4g
fi
將max調整為4g
#此處可以根據你服務器的配置來修改
修改elasticsearch 監聽地址
vi /etc/elasticsearch/elasticsearch.yml
network.host: 0.0.0.0
4.啟動相關服務
/etc/init.d/elasticsearch start
/etc/init.d/logstash start
/etc/init.d/kibana start
/usr/local/redis/bin/redis-server /usr/local/redis/redis_6378.conf &
#記得redis添加防火牆,要不容易被啪啪。
5.kibana顯示
略。
