elk日志分析系统:

elk日志分析系统:

elk是一套完整的日志集中处理方案,由三个开源的软件简称组成;

E:Easticsearch 简称ES是一个开源的,分布式的存储检索引擎,(索引型的非关系数据库)存储日志

由java代码开发的,基于Lucene结构开发的一套全文检索引擎,他也拥有一个web接口

用户可以通过浏览器的形式和ES组件进行通信

作用;存储,允许全文搜索,也可以结构化搜索(也可以根据索引点来进行搜索),索引点可以支持大容量的日志数据,也可以搜索不同类型的文档。

k:kiabana图形化界面,可以更好的分析存储在ES上的日志数据,提供了一个图形化的界面,来浏览ES上的日志数据。汇总分析,搜索。

l:Logstash 数据收集引擎。可以支持动态的(实时)从各种服务应用收集日志资源,还可以对收集到日志数据进行过滤,分析,丰富收集的到日志数据,统一格式。然后把数据同步到es存储引擎。

RUBY语言编写的,运行在java虚拟机上的一个强大的数据处理工具,数据传输,格式化输出,格式化处理,主要用来处理日志

数据收集工具:

filebeat:轻量级的开源的,日志收集工具,收集的速度比较快,但是没有数据分析和过滤的能力,一般是结合logstash一块使用

kafka

RabbitMQ 中间件消息队列

\

总结:elk作用当我们管理一个大集群式,需要分析和定位的日志就会很多,每一台服务器分别去分析,将会耗时耗力

所以我们应运而生了一个集中的统一的日志管理和分析系统,极大的挺高了定位问题的效率

1、收集,可以收集基本上市面上常用的软件日志

2、传输:收集到的日志需要发送到es上

3、存储:es负责存储数据、

4、ui:图形化界面(kiabana)

需要3台服务器

需要两台

es1:

es2 :

logstash,kiabana(4核,8g)

vim /etc/security/limits.conf

*soft nofile 65536

*hard nofile 65536

*soft nproc 32000

*hard nproc 32000

*soft memlock unlimited

*hard memlock unlimited

vim /etc/systemd/system.conf

DefaultLimitNOFILE=65536

一个用户会话的默认最大文件描述符的限制量

文件描述符:用于标识打开文件或者i/o资源限制的整数。

DefaultLimitNPROC=32000

一个用户可以打开的最大进程数量的限制32000,一个用户终端可以运行多少个进程

DefaultLimitMEMLOCK=infinity

一个用户的终端默认锁定内存的限制,不限制

内核优化

ES是基于lucene架构,实现的一款索引型数据库,lucene可以利用操作系统的内存来缓存ES的索引数据。

提供个更快的查询速度,在工作中我们会把系统的一半内存留给lucene

机器内存小于64G,50%给es,50%给操作系统,供lucene使用

机器内存大于64G,ES分配4-32G即可,其他的都给操作系统,供lucene

vm.max_map_count=262144

一个进程可以拥有的最大内存映射区的参数。

内存映射:将文件或者其他设备映射进程地址空间的方法。允许进程直接读取或写入文件,无需 常规的I/O方式。

映射空间越大,ES和lucene的速度越快

2g/262144

4g/4194304

8g/8388608

systemctl enable

netstat -antp | grep 9200

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

查询健康状态

yum install gcc gcc-c++ make -y

tar zxvf node-v8.2.1.tar.gz

cd node-v8.2.1

./configure

make -j 2 && make install

http.cors.enabled: true

开启隽语访问支持

http.cors.allow-origin: "*"

开启跨域访问之后,允许访问的域名的地址*:所有

npm run start &

9100是可视化工具的访问端口 9200还是es数据库的访问端口

logstash的命令常用选项

-f 指定配置文件,根据配置文件识别输入和输出流

-e;一般用于测试,从命令行当中获取输入,然后传送到,经过logstash加工之后形成一个标准输出

-t:检测配置文件是否正确,然后退出。

所有的键盘输出命令行输出,转化成标准输出(rubydebug的模式),6.0之后,logstash的默认输出格式就啊是rubydebug格式的标准输出

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

logstash -e 'input' { stdin{} } output { elasticsearch { hosts=>["20.0.0.77:9200","20.0.0.121:9200"]}} --path.data /opt/test1

vim /etc/kibana/kibana.yml

touch /var/log/kibana.log

chowm kibana:kibana /var/log/kibana.log

systemctl restart kibana

cd /etc.logstash/conf.d

mkdir /opt/log

vim system.conf

input {

file{

path=>" /var/log/messages"

type =>"system"

start_position =>"beginning"

}

}

output {

elasticsearch{

hosts => ["20.0.0.77:9200","20.0.0.121"]

index =>"system-%{+YYYY.MM.dd}"

}

}

logstash -f system.conf --path.data /opt/test1

http的

vim /httpd.conf

input {

file{

path => " /etc/httpd/logs/access_log"

type =>"access"

start_postion =>"beginning"

file{

path => " /etc/httpd/logs/error_log"

type =>"error"

start_postion =>"beginning"

}

}

output {

if [type] == "access" {

elasticsearch{

hosts => ["20.0.0.77:9200","20.0.0.121:9200"]

index => "http_access-%{+YYYY.MM.dd}"

}

}

if [type] == "error" {

elasticsearch{

hosts => ["20.0.0.77:9200","20.0.0.121:9200"]

index => "http_error]-%{+YYYY.MM.dd}"

}

}

}

elk

es存储数据,索引型的数据库

logstatsh:收集日志,然后按照标准化格式发送给ES (RUBYDEBUG的格式)

k:可视化工具,更人性化的显示用户信息,方便用户检索查询

http的日志收集写一个nginx的logstash的配置文件。

要使用json格式

logstash -f nginx.conf --path.data /opt/test2 &

-f指定配置文件

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

麒麟V10桌面搭建FTP服务

1.1介绍 FTP:File transfer protocol (文件传输协议)是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FT…

知识变现的未来:解析知识付费系统的核心

随着数字时代的发展,知识付费系统作为一种新兴的学习和知识分享模式,正逐渐引领着知识变现的未来。本文将深入解析知识付费系统的核心技术,揭示其在知识经济时代的重要性和潜力。 1. 知识付费系统的基本架构 知识付费系统的核心在于其灵活…

CorelDRAW Graphics Suite2023破解版含2024最新注册机下载

CorelDRAW Graphics Suite2023是Corel公司的平面设计软件;该软件是Corel出品的矢量图形制作工具软件,这个图形工具给设计师提供了矢量动画、页面设计、网站制作、位图编辑和网页动画等多种功能。在日常科研绘图中,若较为轻量,通常…

【Linux进阶之路】进程间通信

文章目录 一、原理二、方式1.管道1.1匿名管道1.1.1通信原理1.1.2接口使用 1.2命名管道 2.共享内存2.1原理2.2接口使用 3.消息队列原理 4.信号量引入原理 总结 一、原理 进程间的通信是什么?解释: 简单理解就是,不同进程之间进行数据的输入输出…

使用Tensorboard可视化 遇到无法访问此网站

问题: 使用Tensorboard可视化 遇到无法访问此网站 解决方法:后面加上服务器ip[参考] tensorboard --logdir目标目录 --hostxxx.xxx.xxx.xx

[学习记录]Node event loop 总结流程图

文章目录 文章来源根据内容输出的流程图待处理遗留的问题参考 文章来源 详解JavaScript中的Event Loop(事件循环)机制 根据内容输出的流程图 待处理 这里从polling阶段开始 好像有些问题 遗留的问题 为什么“在I/O事件的回调中,setImmediate…

Docker | 自定义Docker镜像

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: My…

AB|如何正确从罗克韦尔官网下载资料?

哈喽呀,大家好,我是雷工! 作为工控行业的从业者,可能要和各个厂家的中控系统、PLC、触摸屏、变频器、等软硬件产品打交道。 虽然从业十余年,但也不可能接触使用过所有的工控产品。还有海量的产品是没有接触过的。 但很…

sql注入靶场

第一关: 输入:http://127.0.0.1/sqli-labs-master/Less-1/?id1 http://127.0.0.1/sqli-labs-master/Less-1/?id1%27 http://127.0.0.1/sqli-labs-master/Less-1/?id1%27-- 使用--来闭合单引号,证明此处存在字符型的SQL注入。 使用order …

5.27每日一题(判断函数在那个区间上有界:充分条件不是必要条件)

若f(x)在(a , b)上连续,且f(a0),f(b-0)存在(及函数的左右极限存在)>f(x)在(a,b)上有界

springboot中4级配置文件优先级

springboot中4级配置文件优先级

【AICFD案例教程】PCB多变量AI预测分析

AICFD是由天洑软件自主研发的通用智能热流体仿真软件,用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程,帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…

【视觉SLAM十四讲学习笔记】第三讲——四元数

专栏系列文章如下: 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵 【视觉SLAM十四讲学习笔记】第三讲——Eigen库 【视觉SLAM十四讲学习笔记】第三讲——旋转向量和欧…

【小白进阶】Linux 调试大法——gdb

初衷 gdb调试是每一个后端开发工程师所必备的技能,我们工作总是会用gdb协助我们去分析和调试问题。但是大部分同学的技能仅停留在最基础的查看问题。即gdb program -->r --> 问题复现 --> bt 查看源码中的哪一行出现了错误。再稍微熟练点的,可能…

Node.js 事件循环:定时任务、延迟任务和 I/O 事件的艺术

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

python多线程和多进程

1.多线程 线程是程序执行的最小单位,一个进程至少有一个线程。 提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来执行同一程序的不同部分。 进程之间不能共享内存,但线程之间共享内存非常容易。 Python 常用的多线程库有threading 和…

微信小程序Vue+nodejs教室自习室座位预约系统68u2m

本文从管理员、用户的功能要求出发,教室预约系统小程序中的功能模块主要是实现管理端;首页、个人中心、教室信息管理、教室设备管理、用户管理、教室预约管理、管理员管理、系统管理,微信端;首页、教室信息、教室设备、教室预约、…

【吞噬星空】弧刀盘价值180亿,购买1016名强者,保卫地球

Hello,小伙伴们,我是拾荒君。 国漫《吞噬星空》的第95集更新了,一更新,我和我的小伙伴们就迫不及待地去观看了。在这个集剧中,罗峰在一个奴隶拍卖场中深切地感受到了宇宙中弱肉强食的残酷现实。他看到,在宇宙中&#…

goweb入门教程

本文是作者自己学习goweb时写的笔记,分享给大家,希望能有些帮助 前言: 关于web:本质 ​ ​ web中最重要的就是浏览器和服务器的request(请求)和response(响应); ​ 一个请求对应一个响应。 一个请求对应一个响应&…