文章目录
- 一、ELKF介绍
- 1.kibana简介
- 2.elasicsearch简介
- 3.logstash简介
- 4.filebeat简介
- 5.部署前注意事项
- 二、部署logstash
- 三、部署elasicsearch
- 四、部署kibana
- 五、部署filebeat
一、ELKF介绍
1.kibana简介
Kibana是一个使用 Apache 开源协议, 基于浏览器的 Elasticsearch 分析和搜索仪表板。 Kibana 非常容易安装和使 用。 整个 项目都是用 HTML 和 Javascript 写的, 所以 Kibana 不需要任何服务器端组件, 一个纯文本发布服务器就够了。 Kibana 和 Elasticsearch 一样, 力争成为极易上手, 但同样灵活而强大的软件。
2.elasicsearch简介
Elasticsearch(ES)是一个基于Lucene构建的开源、分布式、RESTful接口的全文搜索引擎。Elasticsearch还是一个分布式文档数据库,其中每个字段均可被索引,而且每个字段的数据均可被搜索,ES能够横向扩展至数以百计的服务器存储以及处理PB级的数据。可以在极短的时间内存储、搜索和分析大量的数据。通常作为具有复杂搜索场景情况下的核心发动。
3.logstash简介
Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。
4.filebeat简介
Filebeat是一个轻量级日志传输Agent,可以将指定日志转发到Logstash、Elasticsearch、Kafka、Redis等中。Filebeat占用资源少,而且安装配置也比较简单,支持目前各类主流OS及Docker平台,图示如下:
5.部署前注意事项
1. filebest就是agent,它把采集的数据交给logstash,因此只需在需要收集日志的机器上安装filebeat即可。
2. es的部署尽量独立安装,根据业务量及服务器配置调节es的jvm内存参数。
3. kibana和logstash在一台机器部署即可,如果机器配置不太好建议分开装。
4. ELKF机器最小配置建议4c,8G。服务版本需要一样。
5. ELKF先后部署顺序尽量,1.logstash,2.es,3.kibana,4,filebeat。
6. ELKF部署依赖jdk,且ELKF各组件版本如果大于等于7.0.0,jdk版本要在1.8.0_191或者以上版本才兼容。
二、部署logstash
环境是Centos7,需要下载logstash安装包并上传服务器
Logstash官方下载地址 本专栏是基于官网最新版本进行搭建的,Logstash版本是7.1.1,如图所示:
1.将logstash包上传到服务器
2.解压:
tar -zxvf logstash-7.1.1.tar.gz
3.重定向到指定目录:
mv ./logstash-7.1.1 /opt/logstash
4.修改配置文件vim /opt/logstash/config/logstash-sample.conf
修改以下内容:
字段解释:
beats.port
#是logstash配置接收filebeat的数据端口
Output.elasticsearch
#是配置在es中生成的索引名的规则
Host
#是指定es的地址和端口
Index
#是索引名称
Output
#一般指定多个,一个output对应一个索引
5.配置完成后启动logstash:
cd /opt/logstash
nohup ./bin/logstash -f ./config/logstash-sample.conf &
6.验证是否启动成功:
ps -aux|grep logstash
注意:一定使用nohup启动ELKF所有插件。不然可能即使监听,集群依然报错,无法访问。
三、部署elasicsearch
需要搭建好前文中的Logstash,然后去官网下载ElasticSearch安装包
ElasticSearch6.7.2官方下载地址 版本和logstash一样即可
1.上传es安装包到服务器
2.解压:
tar -zxvf elasticsearch-7.1.1.tar.gz
3.重定向到指定目录:
mv ./elasticsearch-7.1.1 /opt/elasticsearch
4.修改配置文件vim /opt/elasticsearch/config/elasticsearch.yml
修改以下内容:
字段解释:
cluster.name:
#指定es集群名称
cluster.initial_master_nodes
: #指定es集群节点,我们目前只有一台
network.host
: #es监听地址
http.port
: #es监听端口
其他的参数不太清楚,按着配置即可。欢迎大佬解读。。。
这里如果配置集群,不同ElasticSearch节点的node.name
和http.port
唯一就好。
5. 修改/opt/elasticSearch/config/jvm.options
调整es分配最大内存限制为2G:
修改参数值:
-Xms2g
-Xmx2g
注意: 根据实际情况和服务器配置,修改这两个参数,这里我们限制最大内存为2G。
6.我们需要创建一个elk用户和组,因为ElasticSearch不能以root身份运行,否则将会报错,执行以下命令:
groupadd elk ##创建组
useradd -g elk elk ##创建用户,并把用户加入elk组
7.然后修改我们elasticsearch文件夹所属用户和组为elk
chown -R elk:elk /opt/elasticsearch
8.修改服务器sysctl
和limit
进程数限制,否则会报错:
修改/etc/security/limits.conf
文件,增加配置,用户退出后重新登录生效
修改为如上配置,然后exit,然后重新登录终端即可生效,命令查看:
修改/etc/sysctl.conf
文件,增加配置vm.max_map_count=262144
执行命令sysctl -p
生效
9.配置完成以上参数后,切换elk用户启动es:
su elk #切换elk用户
cd /opt/elasticsearch/ #cd到es目录下
nohup /opt/elasticsearch/bin/elasticsearch -v & #启动es,将详细信息输出至nohup.out
10.验证是否成功:ps出现以下信息并且netstat监听了9200和9300端口说明完成了。
ps -aux|grep elasticsearch
四、部署kibana
需要搭建好前文中的Logstash、ElasticSearch,然后去官网下载Kibana安装包
Kibana官方下载地址 跟之前版本一致即可:7.1.1
1.上传kibana安装包到服务器
1. tar -zxvf kibana-7.1.1-linux-x86_64.tar.gz ##解压
2. mv ./kibana-7.1.1-linux-x86_64 /opt/kibana ##重定向到指定目录
4.修改配置文件:vim /opt/kibana/config/kibana.yml
修改为以下内容:
字段解释:
server.port
#指定kibana对外端口
server.host
#指定访问的网段
elasicsearch.hosts
#指定es地址
5. /opt/kibana ##Cd到kibana目录
6.kibana:nohup ./bin/kibana & ## 启动
访问http://192.168.78.9:5601
显示如下:
五、部署filebeat
搭建好前文中的Logstash、ElasticSearch、kibana,然后去官网下载filebeat安装包
Filebeat官方下载地址 版本和logstash一致即可
1.将filebeat安装包上传到要采集日志的服务器上:
2.tar -zxvf filebeat-7.1.1-linux-x86_64.tar.gz ##解压
3.mv ./filebeat-7.1.1-linux-x86_64 /opt/filebeat ##重定向到指定目录
4.修改配置文件:vim /opt/filebeat/filebeat.yml
因为本次监控了nginx的日志,所以修改如下:
字段解释:
filebeat.inputs
#指定要采集的日志路径
type:
#文件类型log
paths:
#指定nginx日志的路径
fields:
#要和logstash里的index的日志格式引用的key对上。
app:
#要和logstash的规则对上
Logstash的index的日志规则是:logstash-%{[fields][app]}-%{+YYYY.MM.dd}
Output.logstash
#指定logstash地址可指定多个path,用于采集不同的日志文件
5.启动filebeat:
cd /opt/filebeat ##cd到/opt/filebeat路径下
nohup ./filebeat -e -c filebeat.yml & ##启动filebeat服务
ps -ef |grep filebeat ##查看进程
至此部署完成。