| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> ELK+kafka+filebeats日志采集部署 -> 正文阅读 |
|
[大数据]ELK+kafka+filebeats日志采集部署 |
ELK版本:7.4.0 一、ELK简介ELK主要由ElasticSearch、Logstash和Kibana三个开源工具组成,还有其他专门由于收集数据的轻量型数据采集器Beats。 Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 是用Java 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。在elasticsearch中,所有节点的数据是均等的。 Logstash :数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。 Kibana :可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。 Filebeat:轻量级数据收集引擎。相对于Logstash所占用的系统资源来说,Filebeat 所占用的系统资源几乎是微乎及微。它是基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择。 版本说明: Elasticsearch、Logstash、Kibana、Filebeat安装的版本号必须全部一致,不然会出现kibana无法显示web页面。 ELK常见的几种架构: 1 Elasticsearch + Logstash + Kibana 每台机器(客户端)上部署Logstash,logstash收集了数据直接往es里面写,es分析日志,kibana查询es的数据做展示。 这是一种最简单的架构。这种架构虽然是官网介绍里的方式,但是往往在生产中很少使用。因为这样要在每台机器上都部署logstash,资源消耗比较大。 2 Elasticsearch + Logstash + filebeat + Kibana 每台机器(客户端)上部署filebeat收集数据,filebeat往1台logstash里面写,logstash往es里面写,es分析日志,kibana查询es的数据做展示。 与上一种架构相比,这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理,优势是消耗非常少的资源(较logstash), 所以生产中,往往会采取这种架构方式,但是这种架构有一个缺点,当logstash出现故障, 会造成日志的丢失。 3 Elasticsearch + Logstash + filebeat + redis(也可以是其他中间件,比如RabbitMQ、kafka) + Kibana 每台机器(客户端)上部署filebeat收集数据,filebeat往消息中间件集群写,1台logstash消费消息中间件集群然后往es里面写,es分析日志,kibana查询es的数据做展示。 这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当Logstash出现故障,日志还是存在中间件中,当Logstash再次启动,则会读取中间件中积压的日志。 二、部署本文以es+logstash+filebeat+kafka+kibana为例? 机器部署计划 node1: es、filebeat、kafka、zk node2: es、filebeat、kafka、zk、logstash node3: es、filebeat、kafka、zk、kibana 1.首先安装JDK1.8 注意es的版本要和JDK的版本匹配 2.安装kafka+zk集群zk集群安装:https://blog.csdn.net/jy02268879/article/details/80615189 kafka集群安装:https://blog.csdn.net/jy02268879/article/details/80616889? 注意这里在启动kafka前还需要修改一下配置 vi?/app/kafka/kafka_2.12-2.0.0/config/server.properties listeners=PLAINTEXT://172.20.10.8:9092 这里的IP是本机的IP,默认为localhost,不补齐会导致filebeat启动时连接kafka会有问题: 3.安装eshttps://www.elastic.co/cn/downloads/past-releases#elasticsearch 每台机器下载7.4.0并且解压 每台机器创建数据目录 mkdir -p /app/es/data 每台机器修改配置 cd?/app/es/elasticsearch-7.4.0/config vi?elasticsearch.yml
启动? ./bin/elasticsearch -d (输入-d表示后台运行) Linux下elasticsearch不允许root用户运行,需要切换到其他用户执行该命令 在浏览器上输入http://172.20.10.10:9200 如果显示以下页面则说明安装成功 还要在浏览器输入http://172.20.10.8:9200/_cat/nodes?pretty ?启动报错
?解决方法 修改配置文件,即可解决[4]的报错 vi?/app/es/elasticsearch-7.4.0/config/elasticsearch.yml cluster.initial_master_nodes: ["node-1", "node-2","node-3"] 切换到root用户,编辑limits.conf 添加类似如下内容,即可解决[1][2]的报错 vi /etc/security/limits.conf? 添加如下内容: * soft nofile 65536 * hard nofile 131072 * soft nproc 2048 * hard nproc 4096 切换到root用户,即可解决[3]的报错 执行命令: sysctl -w vm.max_map_count=262144 查看结果: sysctl -a|grep vm.max_map_count 显示: vm.max_map_count = 262144 上述方法修改之后,如果重启虚拟机将失效 在?? /etc/sysctl.conf文件最后添加一行,即可解决[3]的报错 vm.max_map_count=262144 4.Logstash安装下载https://www.elastic.co/cn/downloads/logstash? 7.4.0版本 在node2安装 在config文件中定义一个kafka.conf文件,定义input以及output cd?/app/logstash/logstash-7.4.0/config vi kafka.conf
注意这里的type的值为app_log,在kibana才启动后喊创建索引,能看到: 其实这个type,比如说哈,我有5套环境,每套环境有7个组件。那这里可以分开,写35个input。 每个的type叫环境名-组件名。且每个走不同的topic 启动服务 ./bin/logstash -f config/kafka.conf 后台启动 nohup ./bin/logstash -f config/kafka.conf & 报错
解决方法 我是在虚拟机上运行的,虚拟机的内存只有1G,改成了2G 报错
5.Kibana安装在node3安装 下载:https://www.elastic.co/cn/downloads/past-releases#kibana 下载7.4.0版本并且解压到/app/kibana 修改config/kibana.yml文件 config/kibana.yml文件加入配置使之变成中文界面 i18n.locale: "zh-CN"? 启动 nohup ./bin/kibana & 同样也是不能以root启动 在浏览器输入http://172.20.10.10:5601 启动报错
?解决方法 参考:https://blog.csdn.net/qq_40907977/article/details/104499178 https://www.oschina.net/question/2312022_2314950 6.filebeat安装下载:https://www.elastic.co/cn/downloads/past-releases#filebeat 下载7.4.0.版本并且解压 cd?/app/filebeat/filebeat-7.4.0-linux-x86_64 vi?filebeat.yml 加入
其中paths表示从采集什么日志文件 type:log表示输入内容Log方式 启动? nohup ./filebeat -e -c filebeat.yml & 三、kibana简单使用、及验证kibana启动起来后创建索引 ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:34:26- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |