ELK日志系统

(一)ELK

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

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

(1)Java代码开发的,基于lucene结构开发的一套全文索引引擎,拥有一个web接口,用户可以通过浏览器的形式和ES组件进行通信
(2)作用:存储允许全文搜索,结构化搜索(索引点),索引点可支持大容量的日志数据,也可以搜索所有不同类型的文档

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

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

5、工具

(1)RUBY语言编写的,运行在Java虚拟机上的一个强大的数据处理工具,数据传输,格式化处理,格式化输出,主要用来处理日志
(2)数据收集工具:
①filebeat:轻量级的开源的,日志收集统计、收集的速度比较快、但是没有数据分析和过滤的能力,但是一般结合logstash一块使用
②kafka:中间件消息列队
③RabbitMQ:中间件消息列队

(二)ELK的数据流向

(三)ELK的作用

1、当我们管理一个大集群时,需要分析和定位的日志就会很多,每一台服务器分别去分析,将会耗时耗力,所以应运而生了一个集中的日志管理和分析系统,极大的提高了定位问题的效率

(四)日志系统的特征

1、收集,可以收集基本市面上常用的软件日志
2、传输,收集到的日志需要发送到ES上
3、存储,ES负责存储数据
4、UI:图形化界面(kiabana)

(五)实验架构

1、三台主机:三台组件,最少2/4G
es1:20.0.0.10(2/4G)
es2:20.0.0.20(2/4G)
logstash kiabana:20.0.0.30(4/8G)

主机名

服务器

IP地址

组件

硬件

(最少)

test2

es1

20.0.0.20

ES+node+phantomjs+elasticsearch-head-master组件

2核4G

test3

es2

20.0.0.30

ES+node+phantomjs+elasticsearch-head-master组件

2核4G

test1

logstash+kibana

20.0.0.10

logstash+kibana

4核8G

(六)部署ELK集群

1、修改配置文件

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

2、es的性能调整

(1)修改打开的最大文件数:vim /etc/security/limits.conf(重启生效)

(2)优化内核文件:vim /etc/systemd/system.conf (重启生效)

DefaultLimitNOFILE=65536

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

文件描述符:用于标记打开文件或者I/O资源限制的整数

DefaultLimitNPROC=32000

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

DefaultLimitMEMLOCK=infinity

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

(3)内核优化:vim /etc/sysctl.conf
①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/2621444g/41943048g/8388608

(七)部署node环境

yum install gcc gcc-c++ make -y
tar zxvf node-v8.2.1.tar.gz
./configure
make && make install     make -j2 && make install

1、安装phantomjs组件

【WebKit插件。PhantomJS是一种没有图形用户界面的网络浏览器】
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd /opt/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin

2、安装 Elasticsearch-head 数据可视化工具

unzip elasticsearch-head-master.zip
cd elasticsearch-head-master/
npm install安装依赖

(1)修改Elasticsearch主配置文件:vim /etc/elasticsearch/elasticsearch.yml

(2)启动elasticsearch-head服务
cd /opt/elasticsearch-head-master
后台打开可视化界面服务npm run start &

3、通过Elasticsearch-head查看Elasticsearch 信息

9100

可视化工具的访问端口

9200

ES数据库对外访问的端口

9300

ES数据库内部访问的端口

查询集群ES:http://20.0.0.20:9100

4、插入索引:通过命令插入一个测试索引,索引为 index-demo,类型为 test。
curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"hyde","mesg":"hello world"}'

(七)另一台服务器上部署Logstash组件:(用于收集服务器的日志信息并发送到ES)

1、logstash:一般部署在需要监控其日志的服务器上。

2、安装Java环境

yum -y install java
java -version

3、安装logstash

rpm -ivh logstash-6.7.2.rpm                          
systemctl start logstash.service                      
systemctl enable logstash.service
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

4、Logstash的命名常用选项

-f

通过这个选项可以指定 Logstash 的配置文件,根据配置文件配置 Logstash 的输入和输出流。

-e

测试,从命令行中获取,输入、输出后面跟着字符串,该字符串可以被当作 Logstash 的配置(如果是空,则默认使用 stdin 作为输入,stdout 作为输出)。

-t

测试配置文件是否正确,然后退出。

5、测试logsstash

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

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

所有的键盘命令输出,转成标准输出

input从哪里来

stdin从键盘来

output到哪里去

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

6、使用 Logstash 将信息写入Elasticsearch中

logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["20.0.0.20:9200","20.0.0.30:9200"] } }' --path.data /opt/test
/opt/test:指定工作时数据运行的文件

7、安装kibana组件(图形化界面)

rpm -ivh kibana-6.7.2-x86_64.rpm

(2)创建日志文件,启动 Kibana 服务
touch /var/log/kibana.log
赋权:chown kibana:kibana /var/log/kibana.log
systemctl start kibana.service

(3)测试Kibana:浏览器访问 http://20.0.0.10:5601

7、测试发送数据到ES服务器上

(1)将message收集的日志文件发送到system.conf中

创建vim system.conf

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

重启elasticsearch.service,测试test1是否收到test2的日志数据

8、ELK收集nginx的json格式日志

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

访问nginx,收集日志

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

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

相关文章

【开源】基于JAVA的城市桥梁道路管理系统

项目编号: S 025 ,文末获取源码。 \color{red}{项目编号:S025,文末获取源码。} 项目编号:S025,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥…

大模型训练为什么用A100不用4090

这是一个好问题。先说结论,大模型的训练用 4090 是不行的,但推理(inference/serving)用 4090 不仅可行,在性价比上还能比 H100 稍高。4090 如果极致优化,性价比甚至可以达到 H100 的 2 倍。 事实上&#x…

蓝桥杯day02——移动机器人

1.题目 有一些机器人分布在一条无限长的数轴上,他们初始坐标用一个下标从 0 开始的整数数组 nums 表示。当你给机器人下达命令时,它们以每秒钟一单位的速度开始移动。 给你一个字符串 s ,每个字符按顺序分别表示每个机器人移动的方向。L 表…

leetcode LCR24反转单链表

反转单链表 题目描述 题目分析 先来说迭代的思想: 上面next cur->next应该放在cur->next pre前面执行,这里笔误 再来说递归的思想: 题目代码 这个代码里面我加了我自己写的测试数据,自己可以去找对应的部分&#xff0c…

springboot整合redis+自定义注解+反射+aop实现分布式锁

1.定义注解 import java.lang.annotation.*; import java.util.concurrent.TimeUnit;/** Author: best_liu* Description:* Date: 16:13 2023/9/4* Param * return **/ Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Documented public interface RedisLo…

OpenCV | 傅里叶变换——低通滤波器与高通滤波器

import cv2 #opencv 读取的格式是BGR import numpy as np import matplotlib.pyplot as plt #Matplotlib是RGB %matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows() 傅里叶变换 傅里叶变换的作用 高频:变化剧烈…

Java抽象类:类的幕后黑手,提供继承和扩展的框架。

👑专栏内容:Java⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录 一、抽象类的概念二、注意事项三、抽象类的作用 一、抽象类的概念 在面向对象的概念中,所有的对象都是通过类来描绘…

Facebook的这份开源协议使React四面楚歌

如果你觉得一些科技公司看起来很美好,每天都在“改变世界”……你应该看看他们的用户条款和法律文书,藏污纳垢之严重令人震惊。 最近,百度和阿里巴巴内部的软件工程团队不约而同做了一件事——弃用 React。 解释下: React 是一个…

Web框架与Django路由层

Web框架 一 web框架 Web框架(Web framework)是一种开发框架,用来支持动态网站、网络应用和网络服务的开发。这大多数的web框架提供了一套开发和部署网站的方式,也为web行为提供了一套通用的方法。web框架已经实现了很多功能&…

MicroPython STM32F4 RTC功能使用介绍

MicroPython STM32F4 RTC功能使用介绍 🔖STM32和ESP32 RTC功能差不多,相关篇《MicroPython ESP32 RTC功能使用介绍》📌固件刷可参考前面一篇《STM32刷Micropython固件参考指南》🌿 相关篇《Micropython STM32F4入门点灯》&#x1…

java设计模式 开闭原则

开闭原则(Open-Closed Principle,OCP)是面向对象设计中的一个重要原则,它指导着我们如何设计和组织代码,以便使系统在扩展性和可维护性方面更加优秀。 开闭原则的定义是:软件实体(类、模块、函数…

纵行科技获评“汽车物流行业优秀技术装备供应商”

近日,由中国物流与采购联合会主办,中物联汽车物流分会承办的“2023年全国汽车物流行业年会”在湖北十堰盛大召开。本次年会集合了汽车整车、零部件、售后备件、进出口物流企业和物流装备技术企业、科研机构及院校等,分享汽车物流行业现状、相…

java文件上传以及使用阿里云OSS

JavaWeb 文件上传本地存储阿里云OSS配置文件 yml配置文件 文件上传 前端页面三要素: 表单项type“file” 表单提交方式post 表单的enctype属性multipart/form-data 本地存储 保证上传的文件不重复 //获取原始文件名String originalFilename image.getOriginalFi…

0-1背包的初始化问题

题目链接 这道题的状态转移方程比较易于确定。dp[i][j]表示能放前i个物品的情况下,容量为j时能放物品的数量(这道题歌曲数量对应物品数量,容量对应时间)。 技巧(收获) 二维dp数组可以视情况优化为一维dp数组…

Spring Boot 3 + Spring Security 6 最新版本修改 Json 登录后 RememberMe 功能问题失效的解决方案

当 Spring Boot 版本更新到 3 之后,最低要求的 JDK 版本变为 17,相应的 最新版本的 Spring Security 的配置也发生了变化,一下主要讲解一些新的 Spring Security 的配置方法 1. 配置由继承WebSeucrityConfigurerAdapter变成只需添加一个Secur…

人工智能-优化算法之梯度下降

梯度下降 尽管梯度下降(gradient descent)很少直接用于深度学习, 但了解它是理解下一节随机梯度下降算法的关键。 例如,由于学习率过大,优化问题可能会发散,这种现象早已在梯度下降中出现。 同样地&#x…

一款多功能露营专用氛围灯

一、主要功能 使用COB灯丝3D打印构建精妙的螺旋线条露营灯 选用IP5328P作为电源主控,支持双向PD快充,支持PPS档位输出 电池仓结构设计兼容26650(不可更换)或21700/18650(可更换)电池 使用WS2812灯组成顶…

内置函数【MySQL】

文章目录 MySQL 内置函数日期和时间函数字符串函数数学函数信息函数参考资料 MySQL 内置函数 MySQL 的内置函数主要分为以下几种: 字符串函数:用于对字符串进行操作,如连接、截取、替换、反转、格式化等。数值函数:用于对数值进…

【vue】v-model在表单元素上的应用

表单元素&#xff1a; https://blog.csdn.net/m0_67930426/article/details/134655644 使用模板 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head><body>&l…

小程序静默授权获取unionid

文章目录 导文文章重点 导文 小程序静默授权获取unionid 文章重点 用wx.login(Object object)放到app.js里面 wx.login({success (res) {console.log(123);if (res.code) {//发起网络请求// wx.request({// url: https://example.com/onLogin,// data: {// code: res.…
最新文章