ELK 搭建

ELK是elasticsearch,logstash以及kibana的简称,是一套处理日志的组件,从日志的收集,分析,都最后的展示.都是根据如下流程图:


大致说明一下含义:
1.多个独立的agent(Shipper)负责收集不同来源的数据,一个中心agent(Indexer)负责汇总和分析数据,在中心agent前的Broker(使用redis实现)作为缓冲区,中心agent后的ElasticSearch用于存储和搜索数据,前端的Kibana提供丰富的图表展示。
2.Shipper表示日志收集,使用LogStash收集各种来源的日志数据,可以是系统日志、文件、redis、mq等等;
3.Broker作为远程agent与中心agent之间的缓冲区,使用redis实现,一是可以提高系统的性能,二是可以提高系统的可靠性,当中心agent提取数据失败时,数据保存在redis中,而不至于丢失;
4.中心agent也是LogStash,从Broker中提取数据,可以执行相关的分析和处理(Filter);
5.ElasticSearch用于存储最终的数据,并提供搜索功能;
6.Kibana提供一个简单、丰富的web界面,数据来自于ElasticSearch,支持各种查询、统计和展示;

环境
角色:

xxx.xxx.xxx.xxx Broker,Indexer,Elasticserach,kibana ----服务端

xxx.xxx.xxx.xxx Shipper(logstash) ----客户端


服务端:
logstash,elasticsearch都依赖于java虚拟机.所以在shipper,indexer端都需要安装java环境.
安装java环境
1.解压jdk-7u55-linux-x64.bin到opt目录下,使用的java版本跟生产环境的java保持一致
2.添加环境变量
JAVA_HOME=/opt/jdk1.7.0
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

3.安装redis,nginx服务
脚本进行安装redis 2.8.6 和nginx 1.5

4.安装ElasticSearch
cd /tmp
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.5.2.tar.gz 
tar zxf elasticsearch-1.5.2.tar.gz -C /opt
mv elasticsearch-1.5.2 elasticsearch
elasticserach的安装,配置与调优请自行google
配置ok以后,启动elasticserach
cd /opt//opt/elasticsearch/bin/elasticsearch -d
启动完成以后,查看日志是否正确,无报错


5.安装logstash
wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz 
tar -zxvf logstash-1.4.2.tar.gz -C /opt
mv logstash-1.4.2 logstash
logstash暂时不启动,logstash启动的方式根据shipper的收集的日志来定

6.安装kibana
wget https://download.elastic.co/kibana/kibana/kibana-4.1.1-linux-x64.tar.gz
tar -zxvf kibana-4.1.1-linux-x64.tar.gz -C /opt
mv kibana-4.1.1-linux-x64.tar.gz kibana4
kibana4相对于kibana4在启动方式上面不一样,kibana4自己启动就行.
创建kibana服务(配置仅供参考):
vim /etc/init.d/kibana
#!/bin/sh
#
# kibana -- startup script for kibana4
#
# chkconfig: - 85 15
# processname: kibana
# pidfile: /var/run/kibana.pid
# description: Kibana is a webui to visualize data
#
### BEGIN INIT INFO
# Provides: kibana
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop kibana
### END INIT INFO
#
#
. /etc/init.d/functions

PIDFILE="/var/run/kibana.pid"
KIBANA_DIR="/opt/kibana4/"

start() {
echo -n "Starting Kibana Daemon: "
if [ -f $PIDFILE ]; then
PID=`cat $PIDFILE`
echo Kibana already running: $PID
exit 1;
else
cd $KIBANA_DIR
PID=`./bin/kibana >/dev/null 2>&1 & echo $! > $PIDFILE`
echo `cat $PIDFILE`
fi

}

stop() {
echo -n "Shutting down Kibana Daemon: "
echo
killproc kibana
echo
rm -f /var/lock/subsys/kibana
return 0
}

case "$1" in
start)
start
;;
stop)
stop
;;
status)
status kibana
;;
restart)
stop
start
;;
*)
echo "Usage: {start|stop|status|restart}"
exit 1
;;
esac
exit $?

#修改启动权限
chmod +x /etc/init.d/kibana

#启动kibana服务
service kibana start
service kibana status

7.启动nginx,调整nginx的配置文件(仅供参考):
server {
listen 80;
server_name xxx.xxx.xxx.xxx;

access_log logs/logs.onepluscorp.cn_access.log combined;
error_log logs/logs.onepluscorp_error.log;
location / {
auth_basic "Restricted";
auth_basic_user_file /opt/nginx/conf/kibana4.htpasswd;
proxy_pass http://xxx.xxx.xxx.xxx:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


客户端配置:
客户端需要安装logstash和java,安装方式跟服务端一致

 

posted @ 2016-01-20 18:36  进击的pythoner  阅读(170)  评论(0)    收藏  举报