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