mark一下時間:2016年2月19日10:17:09
記錄使用
Logstash: Logstash服務的組件,用於處理傳入的日志。
Elasticsearch: 存儲所有日志
Kibana 4: 用於搜索和可視化的日志的Web界面,通過nginx反代
環境:
2台機器都是centos6.5
ELK server:192.168.0.160
agent :192.168.0.82
ELKserver上需要安裝:ES、kibana、logstash、Redis、nginx、jdk
agent端 :jdk、logstash
(這里注意一點,服務器時間要同步,不然到后面kibana 不出圖,找了半天原因都找不到,結果是系統時間沒同步哦)
nginx和jdk安裝就不講了。這里我用的jdk為1.8.0_73
先下載ELK安裝包。
wget https://download.elastic.co/kibana/kibana/kibana-4.4.1-linux-x64.tar.gz wget http://nginx.org/download/nginx-1.8.1.tar.gz wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.2.0/elasticsearch-2.2.0.rpm wget http://download.redis.io/releases/redis-3.0.7.tar.gz wget https://download.elastic.co/logstash/logstash/logstash-2.2.1.tar.gz
ELKserver上安裝:
rpm --import http://packages.elastic.co/GPG-KEY-elasticsearch 導入公鑰 rpm -ivh elasticsearch-2.2.0.rpm RPM方式安裝,用tar也一樣 rpm -ql elasticsearch 查詢安裝路徑 vim /etc/elasticsearch/elasticsearch.yml 修改配置文件 (注意空格)

安裝es插件head和kopf
/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf /usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
保存並啟動es
/etc/init.d/elasticsearch start
這個時候我們可以瀏覽head插件或者kopf插件。如下圖

如果這個時候head界面沒有logstash(前提是在agent端安裝了logstash)的原因是因為agent的logstash沒有傳入數據給redis。so es也收不到redis output的並來自logstash的數據,當redis有數據之后,head就會顯示logstash了。
es的插件可以在下圖目錄下查看

安裝nginx
useradd www ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module make;make install
並將nginx配置文件修改成如下。

將請求轉給kibana。
安裝kibana
tar zxf kibana-4.4.1-linux-x64.tar.gz mv kibana-4.4.1-linux-x64 /usr/local/kibana
啟動kibana
nohup /usr/local/kibana/bin/kibana -l /var/log/kibana.log &
redis安裝
請轉至另一篇博文
安裝logstash
tar zxf logstash-2.2.1.tar.gz mv logstash-2.2.1 /usr/local/logstash cd /usr/local/logstash mkdir conf log
配置logstash文件
vim /usr/local/logstash/conf/logstash.conf
如下
input {
redis {
host => "192.168.0.160"
data_type => "list"
port => "6379"
key => "logstash:redis"
type => "redis-input"
}
}
output {
elasticsearch {
hosts => "192.168.0.160"
}
}
啟動logstash (啟動比較慢)
/usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf &
===============================================agent端=========================================================
jdk環境
nginx日志格式
log_format main '{"@timestamp":"$time_iso8601",'
'"@version":"1",'
'"host":"$server_addr",'
'"client":"$remote_addr",'
'"size":$body_bytes_sent,'
'"responsetime":$request_time,'
'"domain":"$host",'
'"url":"$uri",'
'"status":"$status"}';
access_log logs/access.log main;
安裝logstash和上面一樣,只是配置文件不同。
vim /usr/local/logstash/conf/logstash_agent.conf
input {
file {
type => "nginx_access"
path => "/usr/local/nginx/logs/access.log" #路徑一定要寫對哦- -之前進入kibana首頁沒有crate按鈕就是因為 這里。還有redis monitor 沒有數據。
}
}
output {
redis {
host => "192.168.0.160"
port => "6379"
data_type => "list"
key => "logstash:redis"
}
}
啟動logstash
/usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash_agent.conf &
這個時候用力刷nginx日志哦。
我們訪問ELKserver

然后點擊Create
查看圖形點擊discover

然后不停的刷新日志,(刷新才會出圖哦,不然就是哭臉喲)等一段時間就會有綠色的柱狀圖。

至此ELK簡單部署已OK 有錯誤或者問題可以留言哦,多多指教
Author:V
