一、相关功能展示
Kibana图形展示,包括单位时间网站访问量折线图、响应状态码统计饼图、热点URL统计、访问量最高IP统计(自己手动做的图形,略丑):
Kibana的X-Pack监控:
二、部署EFK Stack
2.1、结构图
在需要收集日志的节点上安装Filebeat,从日志文件中读取日志内容;
将Filebeat读取的日志数据都输出到Elasticsearch集群,进行数据检索;
Elasticsearch-head和Kibana都是可以用于数据检索的图形化界面。ES-head更轻量级,但功能单一;Kibana功能丰富,但占用资源较多。
如果不需要,可以不安装Elasticsearch-head。
2.2、准备节点
ELK Stack的一个特性是,各个组件的版本一致,将采用7.8.0版本部署。
主机名 | IP | 内存 | 服务 |
---|---|---|---|
server0 | 192.168.18.130 | 2G | Elasticsearch,Kibana |
server1 | 192.168.18.131 | 2G | Elasticsearch,Elasticsearch-head |
server2 | 192.168.18.132 | 2G | Elasticsearch,Nginx,Filebeat |
2.3、安装JDK
在三个节点上都安装JDK:
[root@server0 ~]# yum -y install java-1.8.0-openjdk.x86_64
2.4、部署Elasticsearch集群
Elasticsearch历史版本下载页面:https://www.elastic.co/cn/downloads/past-releases#elasticsearch。这里使用的是7.8.0版本x86_64的RPM包。
在三个节点上安装Elasticsearch:
[root@server0 ~]# yum -y install elasticsearch-7.8.0-x86_64.rpm
Elasticsearch配置:
[root@server0 ~]# vim /etc/elasticsearch/elasticsearch.yml
cluster.name: my-application
path.data: /var/lib/elasticsearch #ES使用普通用户启动,如果修改默认路径,需要修改目录权限
path.logs: /var/log/elasticsearch
bootstrap.memory_lock: true #允许ES启动时即锁定分配的内存
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.18.130", "192.168.18.131","192.168.18.132"]
discovery.zen.minimum_master_nodes: 2
cluster.initial_master_nodes: ["192.168.18.130"]
http.cors.enabled: true
http.cors.allow-origin: "*"
JVM配置,修改ES可用内存,需要小于服务器可用内存:
<