欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台

来源:本站整理 作者:佚名 时间:2016-10-14 TAG: 我要投稿

3、日志分布在多台不同的服务器上,业务一旦出现故障,需要一台台查看日志。
为了解决以上困扰:
接下来我们要一步步构建这个日志分析平台,架构图如下:

架构解读 : (整个架构从左到右,总共分为5层)
第一层、数据采集层
最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给两个logstash服务。
第二层、数据处理层,数据缓存层
logstash服务把接受到的日志经过格式处理,转存到本地的kafka broker+zookeeper 集群中。
第三层、数据转发层
这个单独的Logstash节点会实时去kafka broker集群拉数据,转发至ES DataNode。
第四层、数据持久化存储
ES DataNode 会把收到的数据,写磁盘,建索引库。
第五层、数据检索,数据展示
ES Master + Kibana 主要协调ES集群,处理数据检索请求,数据展示。
笔者为了节约宝贵的服务器资源,把一些可拆分的服务合并在同一台主机。大家可以根据自己的实际业务环境自由拆分,延伸架构。
开 工 !
操作系统环境 : CentOS release 6.5
各服务器角色分配 :
IP
角色
所属集群
10.10.1.2
业务服务器+filebeat
业务服务器集群
10.10.1.30
Logstash+Kafka+ZooKeeper
Kafka Broker 集群
10.10.1.31
Logstash+Kafka+ZooKeeper
10.10.1.32
Kafka+ZooKeeper
10.10.1.50
Logstash
数据转发
10.10.1.60
ES DataNode
Elasticsearch 集群
10.10.1.90
ES DataNode
10.10.1.244
ES Master+Kibana
软件包版本:
jdk-8u101-linux-x64.rpm
logstash-2.3.2.tar.gz
filebeat-1.2.3-x86_64.rpm
kafka_2.11-0.10.0.1.tgz
zookeeper-3.4.9.tar.gz
elasticsearch-2.3.4.rpm
kibana-4.5.3-linux-x64.tar.gz
一、安装部署Elasticsearch集群
布置ES Master节点 10.10.1.244
1、安装jdk1.8,elasticsearch-2.3.4
oracle官网 jdk 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html
elasticsearch 官网: https://www.elastic.co/
# 安装命令
yum install jdk-8u101-linux-x64.rpm elasticsearch-2.3.4.rpm -y
# ES 会被默认安装在 /usr/share/elasticsearch/
2、系统调优,JVM调优
# 配置系统最大打开文件描述符数
vim /etc/sysctl.conf
fs.file-max=65535
# 配置进程最大打开文件描述符
vim /etc/security/limits.conf
# End of file
* soft nofile 65535
* hard nofile 65535
# 配置 JVM内存
vim /etc/sysconfig/elasticsearch
ES_HEAP_SIZE=4g
# 这台机器的可用内存为8G
3、编写ES Master节点配置文件
# /etc/elasticsearch/elasticsearch.yml
# ---------------------------------- Cluster -----------------------------------
# Use a descriptive name for your cluster:
cluster.name: bigdata
# ------------------------------------ Node ------------------------------------
node.name: server1
node.master: true
node.data: false
# ----------------------------------- Index ------------------------------------
index.number_of_shards: 5
index.number_of_replicas: 0
index.refresh_interval: 120s
# ----------------------------------- Paths ------------------------------------
path.data: /home/elk/data
path.logs: /var/log/elasticsearch/elasticsearch.log
# ----------------------------------- Memory -----------------------------------
bootstrap.mlockall: true
indices.fielddata.cache.size: 50mb
#------------------------------------ Network And HTTP --------------------------
network.host: 0.0.0.0
http.port: 9200
# ------------------------------------ Translog ----------------------------------
index.translog.flush_threshold_ops: 50000
# --------------------------------- Discovery ------------------------------------
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping.timeout: 200s
discovery.zen.fd.ping_timeout: 200s
discovery.zen.fd.ping.interval: 30s
discovery.zen.fd.ping.retries: 6
discovery.zen.ping.unicast.hosts: ["10.10.1.60:9300","10.10.1.90:9300","10.10.1.244:9300",]
discovery.zen.ping.multicast.enabled: false
# --------------------------------- merge ------------------------------------------
indices.store.throttle.max_bytes_per_sec: 100mb
注: path.data、path.logs 这两个参数指定的路径,如果没有需要自己创建,还要赋予权限给elasticsearch用户。(后面的ES DataNode也同样)
4、安装head、kopf、bigdesk 开源插件
安装方法有两种 :
1、使用ES自带的命令plugin
# head
/usr/share/elasticsearch/bin/plugin install mobz/elasticsearch-head
# kopf
/usr/share/elasticsearch/bin/plugin install lmenezes/elasticsearch-kopf
# bigdesk
/usr/share/elasticsearch/bin/plugin install hlstudio/bigdesk
2、自行下载插件的源码包安装
我们通过plugin命令安装的插件,其实是安装到了这个路径:/usr/share/elasticsearch/plugins
而plugin install 命令后面跟的这一串 mobz/elasticsearch-head 其实是github上的一个地址。

[1] [2] [3] [4] [5] [6] [7]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载