ELK 分离式日志(1)

目录

一.ELK组件

ElasticSearch:

Kiabana:

Logstash:

可以添加的其它组件:

ELK 的工作原理:

二.部署ELK

节点都设置Java环境:

每台都可以部署 Elasticsearch 软件:

修改elasticsearch主配置文件:

性能调优参数:

修改内核参数文件:

访问页面查看节点信息及状态:

每台安装 Elasticsearch-head 插件:

安装 phantomjs:

安装 Elasticsearch-head 数据可视化工具(安装一个节点):

安装依赖包:

修改 Elasticsearch 主配置文件(10,20,30节点):

启动 elasticsearch-head 服务:

访问页面:

插入索引:

通过命令插入一个测试索引,索引为 index-demo,类型为 test:

浏览器访问 http://192.168.80.10:9100/ 查看索引信息:

ELK Logstash 部署(在 web 节点上操作):

安装logstash:

测试 Logstash:

使用 Logstash 将信息写入 Elasticsearch 中:

修改 Logstash 配置文件,让其收集系统日志/var/log/messages,并将其输出到 elasticsearch 中:

创建目录:

切换到目录:

添加文件内容:

ELK Kiabana 部署(30节点上操作):

安装 Kiabana:

设置 Kibana 的主配置文件:

创建日志:

验证 Kibana:

创建索引:

将nginx服务器的日志(访问的、错误的)添加到 Elasticsearch 并通过 Kibana 显示:

到kibana目录下添加文件内容:

检查文件是否成功:

添加索引:


一.ELK组件

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。

ElasticSearch:

是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。

Kiabana:

Kibana 通常与 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 提供图形化的 web 界面来浏览 Elasticsearch 日志数据,可以用来汇总、分析和搜索重要数据。

Logstash:

作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给 Elasticsearch。

可以添加的其它组件:

Filebeat:轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。常应用于 EFLK 架构当中。

filebeat 结合 logstash 带来好处:
1)通过 Logstash 具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻 Elasticsearch 持续写入数据的压力
2)从其他数据源(例如数据库,S3对象存储或消息传递队列)中提取
3)将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件
4)使用条件数据流逻辑组成更复杂的处理管道

缓存/消息队列(redis、kafka、RabbitMQ等):可以对高并发日志数据进行流量削峰和缓冲,这样的缓冲可以一定程度的保护数据不丢失,还可以对整个架构进行应用解耦。

ELK 的工作原理:

Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。

Elasticsearch 对格式化后的数据进行索引和存储。

Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

总结:logstash作为日志搜集器,从数据源采集数据,并对数据进行过滤,格式化处理,然后交由Elasticsearch存储,kibana对日志进行可视化处理。
 

二.部署ELK

先准备三台服务器,192.168.233.(10..30),其中30为web网页服务器,

节点都设置Java环境:

如果没有安装则下载:yum -y install java。

每台都可以部署 Elasticsearch 软件:

修改elasticsearch主配置文件:

查看信息:


grep -v "^#" /etc/elasticsearch/elasticsearch.yml

其他节点:

性能调优参数:

 需重启生效:

修改内核参数文件:

启动elasticsearch是否成功开启:

访问页面查看节点信息及状态:

状态,查看群集的健康情况,可以看到 status 值为 green(绿色), 表示节点健康运行:

http://192.168.233.10:9200/_cluster/health?pretty

状态:

状态:


每台安装 Elasticsearch-head 插件:

上传软件包 node-v8.2.1.tar.gz 到/opt,并解压:

编译安装:

安装 phantomjs:

上传软件包 phantomjs-2.1.1-linux-x86_64.tar.bz2 到/opt,并解压:

将命令复制到环境变量下:

安装 Elasticsearch-head 数据可视化工具(安装一个节点):

上传软件包 elasticsearch-head-master.zip 到/opt:

unzip elasticsearch-head-master.zip

安装依赖包:

修改 Elasticsearch 主配置文件(10,20,30节点):

http.cors.enabled: true
http.cors.allow-origin: "*"

10节点:

20节点:

30节点:

重启:

启动 elasticsearch-head 服务:

必须在解压后的 elasticsearch-head 目录下启动服务,进程会读取该目录下的 gruntfile.js 文件,否则可能启动失败。

访问页面:

通过 Elasticsearch-head 查看 Elasticsearch 信息:看到群集健康值为 green 绿色,代表群集很健康。

插入索引:
通过命令插入一个测试索引,索引为 index-demo,类型为 test:

curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

浏览器访问 http://192.168.80.10:9100/ 查看索引信息:

可以看见索引默认被分片5个,并且有一个副本。点击“数据浏览”,会发现在node1上创建的索引为 index-demo,类型为 test 的相关信息:

ELK Logstash 部署(在 web 节点上操作):

Logstash 一般部署在需要监控其日志的服务器:

开启40节点安装nginx,并启动:

更改主机名:

hostnamectl set-hostname nginx

添加页面测试页面:

安装logstash:

上传软件包 logstash-6.7.2.rpm 到/opt目录下:

编译:

rpm -ivh logstash-6.7.2.rpm

让logstash能够补全:

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

设置自启:

测试 Logstash:

logstash -e 'input { stdin{} } output { stdout{} }'

键盘输入内容:

使用 Logstash 将信息写入 Elasticsearch 中:

logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.233.10:9200"] } }'

看下10节点的数据:

在40节点上输入内容:

再看下10节点 :

修改 Logstash 配置文件,让其收集系统日志/var/log/messages,并将其输出到 elasticsearch 中:

chmod +r /var/log/messages

cd /etc/logstash

创建目录:

创建日志文件:

touch log_progress

授用户权限:

chown logstash:logstash /etc/logstash/sincedb_path/log_progress

切换到目录:

cd /etc/logstash/conf.d/

关闭logstash服务:

添加文件内容:

vim system.conf

logstash -f system.conf

查看下esWeb页面:

ELK Kiabana 部署(30节点上操作):
安装 Kiabana:

上传软件包 kibana-6.7.2-x86_64.rpm 到/opt目录

rpm -ivh kibana-6.7.2-x86_64.rpm

设置 Kibana 的主配置文件:

vim /etc/kibana/kibana.yml

创建日志:

touch /var/log/kibana.log

授权:

chown kibana:kibana /var/log/kibana.log

开启服务:

验证 Kibana:

可以管理索引:

创建索引:

将nginx服务器的日志(访问的、错误的)添加到 Elasticsearch 并通过 Kibana 显示:

到kibana目录下添加文件内容:

input {file{path => "/usr/local/nginx/logs/access.log"type => "access"start_position => "beginning"}file{path => "/usr/local/nginx/logs/error.log"type => "error"start_position => "beginning"}
}output {if [type] == "access" {elasticsearch {hosts => ["192.168.233.10:9200","192.168.233.30:9200"]index => "nginx_access-%{+YYYY.MM.dd}"}}if [type] == "error" {elasticsearch {hosts => ["192.168.233.10:9200","192.168.233.30:9200"]index => "nginx_error-%{+YYYY.MM.dd}"}}
}

注意看看自己web应用的log文件路径

检查文件是否成功:

进行测试:

logstash -f system.conf

添加索引:

创建成功日志索引:

创建错误日志索引:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/639857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机视觉工程师就业前景如何?

计算机视觉作为一门快速发展的技术领域,其就业前景非常广阔。以下是对计算机视觉就业前景的分析: 市场规模:计算机视觉行业的市场规模正在持续扩大。根据行业分析报告,预计全球计算机视觉市场规模将在2025年达到530亿美元&#xf…

【Web实操10】定位实操_图片上面定位文字

参考实现的效果是这样的: 目前还没有学到渐变色,所以标签效果的渐变色没有实现,只是利用radius设置了圆角图形,辅之以背景色和设置其中文本文字的颜色和居中对齐。 在自己写的过程中,对于标签的定位写成了相对定位&a…

RabbitMQ的安装使用

RabbitMQ是什么? MQ全称为Message Queue,消息队列,在程序之间发送消息来通信,而不是通过彼此调用通信。 RabbitMQ 主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,…

Webpack5入门到原理22:提升打包构建速度

HotModuleReplacement 为什么 开发时我们修改了其中一个模块代码,Webpack 默认会将所有模块全部重新打包编译,速度很慢。 所以我们需要做到修改某个模块代码,就只有这个模块代码需要重新打包编译,其他模块不变,这样…

kafka入门(九):副本

副本 副本(Replica),指的是分布式系统对数据和服务提供的一种冗余方式。 Kafka通过多副本机制实现故障自动转移,在Kafka集群中某个broker节点失效的情况下仍然保证服务可用。 kafka 副本之间是 一主多从的关系。 其中 leader 副…

打开json文件,读取里边的每一行数据,每一行数据是一个字典,使用matplotlib画图

这段代码的目的是读取 JSON 文件,提取关键信息,然后使用 Matplotlib 绘制四个子图,分别显示不同的指标随着 iter 变化的情况。这种图形化分析有助于直观地了解模型的性能。 画图结果如下: json文件格式如下:下面只粘贴…

大模型镜像打包实战:CodeGeeX2为例

资源地址 docker torch镜像地址 CodeGeeX2 github 构建思路 查看CodeGeeX2项目,官方已经提供好启动脚本,配置好各种依赖应该就可以运行。 python ./demo/run_demo.pyusage: run_demo.py [-h] [--model-path MODEL_PATH] [--example-path EXAMPLE_PAT…

计算机网络学习The next day

在计算机网络first day中,我们了解了计算机网络这个科目要学习什么,因特网的概述,三种信息交换方式等,在今天,我们就来一起学习一下计算机网络的定义和分类,以及计算机网络中常见的几个性能指标。 废话不多…

yarn集群datanode无法启动问题排查

一、问题场景 hdfs无法访问,通过jps命令查看进程,发现namenode启动成功,但是所有datanode都没有启动,重启集群(start-dfs.sh)后仍然一样 二、原因分析 先看下启动的日志有无报错。打开Hadoop的日志目录 …

C#,入门教程(24)——类索引器(this)的基础知识

上一篇: C#,入门教程(23)——数据类型转换的一点基础知识https://blog.csdn.net/beijinghorn/article/details/124187182 工业软件首先要求高可靠性、高可维护性。 作为工业软件的开发者,我们对语言重载的需求是:“不可或缺”。 …

创建数组(数组基本方法)

组相同类型数据的集合 java中数组特点: 1.数组在内存中是连续分配的 2.在创建数组时,要指明数组的长度 3.访问数组,通过索引,从0开始,到数组长度-1 功能: 1.插入:向索引位置插入一个元素&#…

Gitee Reward让开源作者不再为爱发电

一、什么是Gitee Reward? Gitee Reward是Gitee为改善开源开发生命周期提出的新策略。开源项目的支持者们可以更轻松地为其喜爱的项目提供资金,贡献者们也可以因为其不懈的开源贡献得到奖励。 二、Gitee Reward上允许哪些类型的项目? 允许任…

stable diffuison的安装和使用

stable diffuison的安装和使用 简单介绍 Stable Diffusion是一个深度学习文本到图像的生成模型,它可以根据文本描述生成详细的图像。这个模型主要应用于文本生成图像的场景中,通过给定的文本提示词,模型会输出一张与提示词相匹配的图片。 S…

Cadence——布局部分相关教程

本文章基于【凡亿】Cadence Allegro 17.4零基础入门66讲PCB Layout设计实战加个人理解写出 (一)中英文切换 注意:只是将选项卡部分切换中文 1,设置中文 a,打开PCB Editor 17.4以后,点击Help和About b,可以看到与下…

服务器或服务器主板中的BIOS更新详解

BIOS更新总共有三种方式:DOS、UEFI Shell以及BMC网页更新,而其中,DOS与Shell的更新方式类似,因此以下为统一描述。 一、UEFI Shell或DOS下更新 当我们下载了官网的BIOS更新包并解压后可以获得一些更新文件,在更新文件…

舞动微服务的安全舞伴:服务熔断与服务降级的精妙演绎

目录 引言 1、服务熔断:避免连锁反应的舞姿 1.1 什么是服务熔断? 1.2服务熔断的工作原理 场景:支付服务的重要性 1. 监控支付服务 2. 设定阈值 3. 熔断器状态 4. 触发熔断 5. 定时检测 6. 自动恢复 1.3解析 2、服务降级&#xf…

Python基础第七篇(Python的文件操作)

文章目录 一、文件编码二、文件的读取操作1.操作代码2.读出结果 三、文件的写出操作1.源代码2.读出结果 四、文件的追加操作1.源代码2.读出结果 这篇文章旨在深入浅出地介绍Python在文件操作上的能力,包括文件的编码、读取和写入等基本操作。内容丰富、易于理解&…

Homicide+Reports1980-2014连环凶案数据,CSV格式

这个数据集提供了关于谋杀案件的详细信息,包括涉及的机构、受害者和肇事者的信息,以及犯罪的其他细节。下面是每个字段的详细解释: Record ID: 记录的唯一标识符。Agency Code: 执行机构的代码。Agency Name: 执行机构的名称。Agency Type: …

公网环境调试本地配置的Java支付宝沙箱环境模拟支付场景

文章目录 前言1. 下载当面付demo2. 修改配置文件3. 打包成web服务4. 局域网测试5. 内网穿透6. 测试公网访问7. 配置二级子域名8. 测试使用固定二级子域名访问 前言 在沙箱环境调试支付SDK的时候,往往沙箱环境部署在本地,局限性大,在沙箱环境…

java SSM项目预算生成管理系统myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM项目预算生成管理系统是一套完善的web设计系统(系统采用SSM框架进行设计开发,springspringMVCmybatis),对理解JSP java编程开发语言有帮助,系统具有完整的 源代码和数据库,系统主…