EFK教程 - 基于多节点ES的EFK安装部署配置
通过部署elasticsearch(三节点)+filebeat+kibana快速入门EFK,并搭建起可用的demo环境测试效果
作者:“发颠的小狼”,欢迎转载与投稿
目录
▪ 用途
▪ 实验架构
▪ EFK软件安装
▪ elasticsearch配置
▪ filebeat配置
▪ kibana配置
▪ 启动服务
▪ kibana界面配置
▪ 测试
▪ 后续文章
用途
▷ 通过filebeat实时收集nginx访问日志、传输至elasticsearch集群
▷ filebeat将收集的日志传输至elasticsearch集群
▷ 通过kibana展示日志
实验架构
▷ 服务器配置
▷ 架构图
EFK软件安装
版本说明
▷ elasticsearch 7.3.2
▷ filebeat 7.3.2
▷ kibana 7.3.2
注意事项
▷ 三个组件版本必须一致
▷ elasticsearch必须3台以上且总数量为单数
安装路径
▷ /opt/elasticsearch
▷ /opt/filebeat
▷ /opt/kibana
elasticsearch安装:3台es均执行相同的安装步骤
mkdir -p /opt/software && cd /opt/software wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.2-linux-x86_64.tar.gz tar -zxvf elasticsearch-7.3.2-linux-x86_64.tar.gz mv elasticsearch-7.3.2 /opt/elasticsearch useradd elasticsearch -d /opt/elasticsearch -s /sbin/nologin mkdir -p /opt/logs/elasticsearch chown elasticsearch.elasticsearch /opt/elasticsearch -R chown elasticsearch.elasticsearch /opt/logs/elasticsearch -R # 限制一个进程可以拥有的VMA(虚拟内存区域)的数量要超过262144,不然elasticsearch会报max virtual memory areas vm.max_map_count [65535] is too low, increase to at least [262144] echo "vm.max_map_count = 655350" >> /etc/sysctl.conf sysctl -p
filebeat安装
mkdir -p /opt/software && cd /opt/software wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.3.2-linux-x86_64.tar.gz mkdir -p /opt/logs/filebeat/ tar -zxvf filebeat-7.3.2-linux-x86_64.tar.gz mv filebeat-7.3.2-linux-x86_64 /opt/filebeat
kibana安装
mkdir -p /opt/software && cd /opt/software wget https://artifacts.elastic.co/downloads/kibana/kibana-7.3.2-linux-x86_64.tar.gz tar -zxvf kibana-7.3.2-linux-x86_64.tar.gz mv kibana-7.3.2-linux-x86_64 /opt/kibana useradd kibana -d /opt/kibana -s /sbin/nologin chown kibana.kibana /opt/kibana -R
nginx安装(用于生成日志,被filebeat收集)
# 只在192.168.1.11安装 yum install -y nginx /usr/sbin/nginx -c /etc/nginx/nginx.conf
elasticsearch配置
▷ 192.168.1.31 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字 cluster.name: my-application # 节点名字 node.name: 192.168.1.31 # 日志位置 path.logs: /opt/logs/elasticsearch # 本节点访问IP network.host: 192.168.1.31 # 本节点访问 http.port: 9200 # 节点运输端口 transport.port: 9300 # 集群中其他主机的列表 discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"] # 首次启动全新的Elasticsearch集群时,在第一次选举中便对其票数进行计数的master节点的集合 cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"] # 启用跨域资源共享 http.cors.enabled: true http.cors.allow-origin: "*" # 只要有2台数据或主节点已加入集群,就可以恢复 gateway.recover_after_nodes: 2
▷ 192.168.1.32 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字 cluster.name: my-application # 节点名字 node.name: 192.168.1.32 # 日志位置 path.logs: /opt/logs/elasticsearch # 本节点访问IP network.host: 192.168.1.32 # 本节点访问 http.port: 9200 # 节点运输端口 transport.port: 9300 # 集群中其他主机的列表 discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"] # 首次启动全新的Elasticsearch集群时,在第一次选举中便对其票数进行计数的master节点的集合 cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"] # 启用跨域资源共享 http.cors.enabled: true http.cors.allow-origin: "*" # 只要有2台数据或主节点已加入集群,就可以恢复 gateway.recover_after_nodes: 2
▷ 192.168.1.33 /opt/elasticsearch/config/elasticsearch.yml
# 集群名字 cluster.name: my-application # 节点名字 node.name: 192.168.1.33 # 日志位置 path.logs: /opt/logs/elasticsearch # 本节点访问IP network.host: 192.168.1.33 # 本节点访问 http.port: 9200 # 节点运输端口 transport.port: 9300 # 集群中其他主机的列表 discovery.seed_hosts: ["192.168.1.31", "192.168.1.32", "192.168.1.33"] # 首次启动全新的Elasticsearch集群时,在第一次选举中便对其票数进行计数的master节点的集合 cluster.initial_master_nodes: ["192.168.1.31", "192.168.1.32", "192.168.1.33"] # 启用跨域资源共享 http.cors.enabled: true http.cors.allow-origin: "*" # 只要有2台数据或主节点已加入集群,就可以恢复 gateway.recover_after_nodes: 2
filebeat配置
192.168.1.11 /opt/filebeat/filebeat.yml
# 文件输入 filebeat.inputs: # 文件输入类型 - type: log # 开启加载 enabled: true # 文件位置 paths: - /var/log/nginx/access.log # 自定义参数 fields: type: nginx_access # 类型是nginx_access,和上面fields.type是一致的 # 输出至elasticsearch output.elasticsearch: # elasticsearch集群 hosts: ["http://192.168.1.31:9200", "http://192.168.1.32:9200", "http://192.168.1.33:9200"] # 索引配置 indices: # 索引名 - index: "nginx_access_%{+yyy.MM}" # 当类型是nginx_access时使用此索引 when.equals: fields.type: "nginx_access" # 关闭自带模板 setup.template.enabled: false # 开启日志记录 logging.to_files: true # 日志等级 logging.level: info # 日志文件 logging.files: # 日志位置 path: /opt/logs/filebeat/ # 日志名字 name: filebeat # 日志轮转期限,必须要2~1024 keepfiles: 7 # 日志轮转权限 permissions: 0600
kibana配置
192.168.1.21 /opt/kibana/config/kibana.yml
# 本节点访问端口 server.port: 5601 # 本节点IP server.host: "192.168.1.21" # 本节点名字 server.name: "192.168.1.21" # elasticsearch集群IP elasticsearch.hosts: ["http://192.168.1.31:9200", "http://192.168.1.32:9200", "http://192.168.1.33:9200"]
启动服务
# elasticsearch启动(3台es均启动) sudo -u elasticsearch /opt/elasticsearch/bin/elasticsearch # filebeat启动 /opt/filebeat/filebeat -e -c /opt/filebeat/filebeat.yml -d "publish" # kibana启动 sudo -u kibana /opt/kibana/bin/kibana -c /opt/kibana/config/kibana.yml
上面的启动方法是位于前台运行。systemd配置方法,会在《EFK教程》系列后续文章中提供,敬请关注!
kibana界面配置
1️⃣ 使用浏览器访问192.168.1.21:5601,看到以下界面表示启动成功
2️⃣ 点"Try our sample data"
3️⃣ "Help us improve the Elastic Stack by providing usage statistics for basic features. We will not share this data outside of Elastic"点"no”
4️⃣ "Add Data to kibana"点"Add data"
5️⃣ 进入视图
测试
访问nginx,生成日志
curl -I "http://192.168.1.11"
在kibana上查看数据
1️⃣ 创建索引模板
2️⃣ 输入你要创建的索引模板的名字
3️⃣ 查看之前CURL的数据
后续文章
本文是《EFK教程》系列文章的第一篇,后续EFK文章将逐步发布,包含角色分离、性能优化等许多干货,敬请关注!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AnalyticDB for PostgreSQL 黑科技解析 - 列存储 Meta Scan 性能加速
作者:张晓博 2011年毕业于武汉理工大学,曾任职于人大金仓、北大方正信产研究院、百分点等公司,从事数据库内核开发工作,现在任职于阿里云数据库事业部,云化数据仓库服务 AnalyticDB for PostgreSQL 数据库内核开发技术专家。 1. 概述 AnalyticDB for PostgreSQL (原HybridDB for PostgreSQL,以下简称 ADB PG)是阿里云上的MPP数据仓库服务,其内核采用PostgreSQL引擎,基于开源数据库 Greenplum 改造,并在此基础上优化分析性能,其中列存储 metascan 就是提升数据库查询性能的一个关键特性。ADB PG支持列存储格式,具有较高的数据压缩能力,以及查询性能,但是当针对有较高过滤率的查询条件时,依然要做整列数据读取,或者建 B-Tree 索引,
- 下一篇
深度 | 带领国产数据库走向世界,POLARDB底层逻辑是什么? | 10月28号栖夜读
点击订阅云栖夜读日刊,专业的技术干货,不容错过! 阿里专家原创好文 1.深度 | 带领国产数据库走向世界,POLARDB底层逻辑是什么? 在刚刚结束的乌镇世界互联网大会上,阿里云自主研发的POLARDB云原生数据库当选世界互联网领先科技成果,凭实力站上C位。这个”包管“了北京市每天800万人次的公交出行的下一代分布式数据库到底有多强大?我们请阿里云智能数据库事业部总经理鸣嵩跟大家一起聊聊。阅读更多》》 2.十年磨一剑:从2009启动“去IOE”工程到2019年OceanBase拿下TPC-C世界第一 由此,启动了后面几年备受争议的“去IOE”工程。2010年5月,邀请正祥加盟淘宝,由此拉开了 OceanBase的自主研发之路。中间历尽磨难,各种反对、讽刺挖苦……回想起来当时都是折磨、痛苦和眼泪,今天说起来可以算是传奇和笑话了。2019年10月,OceanBase TPC-C 世界第一!热烈祝贺正祥和OB团队。今天我们可以自豪地说,阿里巴巴数字经济体的小二们,十年磨一剑,终于解决了困扰国家已久的信息技术三大软肋(“CPU芯片、操作系统、数据库”)之一的数据库难题,OceanBase 10...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,CentOS7官方镜像安装Oracle11G
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装