整体架构
架构图如下所示:
整个架构分为四部分:
1.Filebeat,轻量级数据收集引擎,用来采集每台服务器上的日志,要安装到每台需要进行日志管理的服务器上。在这里用Filebeat而不用logstash,logstash是基于jvm运行的,且消耗内存非常多,filebeat是基于GO语言开发的轻量级agent。
2.Kaka,数据缓冲队列,作用一个是可以在kafka中对日志消息进行处理,二是可以起到缓冲作用,避免突发的压力造成ES集群的崩溃。由3台机器组成kafka集群。
3.Logstash,数据收集处理引擎,对日志进行过滤、格式化等操作,然后存储到ES中。用2台机器来安装logstash来分别作为消费者来消费kafka中的消息。
4.Elasticsearch,用来存储日志信息。由3台机器组成集群
安装过程
1.Elasticsearch集群安装
es运行需要jdk1.8
下载es6.4安装包elasticsearch-6.4.0.tar.gz,解压即可
配置es:目录/config/elasticsearch.yml
cluster.name: es-cluster #集群名称,必须跟其他节点相同
node.name: es-node1 #节点名称 不能跟其他节点相同
node.master: true #是否允许作为主节点
node.data: true #是否存储数据
path.data: /usr/local/elasticsearch-6.4.0/data #数据存储路径
path.logs: /usr/local/elasticsearch-6.4.0/logs/ #日志路径
http.enabled: true #是否允许http
network.host: 10.6.80.101 #配置为节点的ip地址
bootstrap.system_call_filter: false
transport.tcp.port: 9300 #传输端口
discovery.zen.ping.unicast.hosts: ["10.13.30.166:9300","10.13.30.167:9300","10.13.30.168:9300"] #集群所有几点ip
discovery.zen.minimum_master_nodes: 1
http.cors.enabled: true #允许es-head链接es
http.cors.allow-origin: "*"
启动es:进入bin目录,执行命令:./elasticsearch。(./elasticsearch -d 是后台执行)
其他两台机器同样的方式安装配置并启动es。
测试es是否安装成功:
curl 'http://10.13.30.166:9200'
2.Zookeeper集群安装
下载zookeeper安装包zookeeper-3.4.10.tar.gz,解压即可。
3.Kafka集群安装
下载kafka安装包kafka_2.12-2.0.0.tgz,解压即可。