一、下载
从官网下载最新版本:https://www.elastic.co/cn/downloads/
当前最新版本为7.14.0,下载linux-x86_64版本:
elasticsearch-7.14.0-linux-x86_64.tar.gz
kibana-7.14.0-linux-x86_64.tar.gz
filebeat-7.14.0-linux-x86_64.tar.gz
logstash-7.14.0-linux-x86_64.tar.gz
将下载的安装包上传到服务器的指定位置
二、elasticsearch安装部署
解压es安装包到/usr/local/文件夹下
sudo tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz /usr/local/
进入elasticsearch-7.14.0/config/文件夹,编辑elasticsearch.yml文件
需设置上图7处地方。
es不能使用root用户启动,必须用其他用户,并且给这个用户赋予操作elasticsearch-7.14.0文件夹的权限
sudo chown -R dl:123456 /usr/local/elasticsearch-7.14.0/
启动前需要先配置一些环境:
1、配置可打开的文件描述符的最大数
sudo vi /etc/security/limits.conf
添加:
* soft nofile 65536
* hard nofile 65536
并重新登录dl用户
2、配置文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量
sudo vi /etc/sysctl.conf
在文件末尾添加
vm.max_map_count=655360
然后执行
sudo sysctl -p
使用dl用启动es:
在/usr/local/elasticsearch-7.14.0/文件夹下执行
./bin/elasticsearch
浏览器打开http://192.168.2.129:9200/,如出现下图,则说明启动成功
ctrl+C即可停止es服务
当然也可以后台启动
./bin/elasticsearch &
三、logstash安装部署
解压logstash到/usr/local/目录下
sudo tar -zxvf logstash-7.14.0-linux-x86_64.tar.gz /usr/local/
进入logstash-7.14.0/config目录下编辑logstash-sample.conf文件,当然也可以新建一个配置文件,这里以logstash-sample.conf为例
在input->beats->port默认是5044,后面部署的filebeat的日志都会发送到这里,所以filebeat里面的配置要和这里的保持一致
输出到es里的配置增加了action, 配置了es的hosts,另外配置一个index,这里的索引不能使用大写字母
运行logstash:
在logstash-7.14.0文件夹在执行
sudo ./bin/logstash -f ./config/logstash-sample.conf
注意:
- 需要在logstash运行的机器上防火墙开放5044端口
- Logstash启动时依赖于es,因此es要先于logstash启动
四、filebeat安装部署
filebeat是一个轻量级的日志采集服务,可以将采集的日志发送到es或者logstash,这里测试时将filebeat部署在另外一台服务器上ip:192.168.2.173
解压filebeat到指定位置
sudo tar -zxvf filebeat-7.14.0-linux-x86_64.tar.gz /usr/local/
进入filebeat-7.14.0-linux-x86_64文件夹,编辑filebeat.yml文件,这里只设置了输入格式为log的路径,同时把enable设置为true
这里的outputs设置,采用输出到logstash后再输入es的方式,因此将es output的配置注释,将logstash的配置打开并配置logstash的hosts
运行filebeat:
在filebeat-7.14.0-linux-x86_64文件夹下执行
./filebeat -e -c ./filebeat.yml
注意:
filebeat运行时要访问logstash,因此logstash要先于filebeat启动
五、kibana安装部署
将kibana安装包解压到/usr/local/目录
sudo tar -zxvf kibana-7.14.0-linux-x86_64.tar.gz /usr/local/
进入kibana-7.14.0-linux-x86_64/config文件夹,编辑kibana.yml文件
简单配置这4项
Kibana不能使用root用户启动,必须用其他用户,并且给这个用户赋予操作kibana-7.14.0-linux-x86_64文件夹的权限
sudo chown -R dl:123456 /usr/local/kibana-7.14.0-linux-x86_64/
启动kibana:
在kibana-7.14.0-linux-x86_64文件夹下执行
./bin/kibana
防火墙开放5601端口,网页访问http://192.168.2.129:5601/
六、ELK+Filebeat实际使用
场景:
在2.129和2.173两台机器上都部署filebeat,分别采集日志,发送到2.129机器上的logstash上,logstash可以做过滤或者分组,然后把日志数据发送给2.129机器上的es,最后由2.129机器上的kibana进行日志可视化展示。由于需要对129和137上的日志做区分,因此在filebeat的配置文件中分别设置日志的tags。
173的filebeat.yml文件
129的filebeat.yml文件
当然,可以在General里设置tags,也可以在inputs下面的每个type下设置fields,tags是对整个filebeat打标签,filelds则可对具体每个type打标签
Logstash对日志进行分组,不同的filebeat获取的日志生成不同的索引
注意:
- 索引的命名不能以logs开头,新版本会把logs开头的自动作为Data Streams
在logstash的配置文件中根据tags属于哪个filebeat,然后发往es的时候生成不同的index。
登录kibana,找到Management->Stack Management->Index Management可以看到,配置的两个索引elklog-129-2021.08.24和elklog-173-2021.08.24显示在indices下
找到Management->Stack Management->Index patterns->Create index pattern,创建索引模板,Index pattern name输入elklog-*,点击下一步选择过滤器,然后创建
找到Analytics->Discover,在左上角选择elklog-*,即可显示日志
或者在Observability->Stream页面,输入框输入_index : elklog*,回车,即可以查看日志。
点击Stream live按钮即可查看实时日志
也可以根据日志关键字搜索,message : "Hello"
七、ELK+Filebeat+Kafka集群实际使用
场景:
在2.129、2.173和2.185三台机器上搭建Kafka集群,在2.129、2.173和2.185三台机器上都部署filebeat,分别采集日志,发送到kafka集群,由2.129机器上的logstash接收kafka消息做过滤或者分组,然后把日志数据发送给2.129机器上的es,最后由2.129机器上的kibana进行日志可视化展示。由于需要对129、137和185上的日志做区分,因此在filebeat的配置文件中分别设置日志的tags,参见第六大点。
关于kafka集群的搭建详见我另一篇帖子:https://www.cnblogs.com/bigfaceWei/p/15393971.html
增加Kafka集群和第六点不一样的地方在于filebeat和logstash的配置
filebeat.yml文件:
注释掉Logstash Output,添加kafka的配置,意思是将采集的日志输出到kafka集群
logstash-sample.conf文件:
logstash的input改成kafka集群,输出做一下筛选和分组,发送到elasticsearch,最后由kibana进行可视化展示。