Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >elk的搭建和使用_搭建云服务器教程

elk的搭建和使用_搭建云服务器教程

作者头像
全栈程序员站长
发布于 2022-11-01 03:13:32
发布于 2022-11-01 03:13:32
2.4K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

文章目录

一、什么是ELK

ELK是Elasticsearch + Logstash + Kibana 这种架构的简写。这是一种日志分平台析的架构。从前我们用shell三剑客(grep, sed, awk)来分析日志, 虽然也能对付大多数场景,但当日志量大,分析频繁,并且使用者可能不会shell三剑客的情况下, 配置方便,使用简单,并且分析结果更加直观的工具(平台)就诞生了,它就是ELK。 ELK是开源的,并且社区活跃,用户众多。当然国内也有一些收费的,比较好用的日志分析平台,比如日志易(日志易的同事赶紧给我打钱,毕竟这广告打的好)。

二、ELK常见的几种架构

1 Elasticsearch + Logstash + Kibana 这是一种最简单的架构。这种架构,通过logstash收集日志,Elasticsearch分析日志,然后在Kibana(web界面)中展示。这种架构虽然是官网介绍里的方式,但是往往在生产中很少使用。

2 Elasticsearch + Logstash + filebeat + Kibana 与上一种架构相比,这种架构增加了一个filebeat模块。filebeat是一个轻量的日志收集代理,用来部署在客户端,优势是消耗非常少的资源(较logstash), 所以生产中,往往会采取这种架构方式,但是这种架构有一个缺点,当logstash出现故障, 会造成日志的丢失。

3 Elasticsearch + Logstash + filebeat + redis(也可以是其他中间件,比如kafka) + Kibana 这种架构是上面那个架构的完善版,通过增加中间件,来避免数据的丢失。当Logstash出现故障,日志还是存在中间件中,当Logstash再次启动,则会读取中间件中积压的日志。目前我司使用的就是这种架构,我个人也比较推荐这种方式。

架构图:

说明: logstash节点和elasticsearch节点可以根据日志量伸缩数量, filebeat部署在每台需要收集日志的服务器上。

首先准备安装包

传输到linux下找个目录存放

第一部分安装node和elasticsearch-head

作为web展示 所以首先安装nodejs 主要是利用npm

1安装wget yum install -y wget 2.镜像淘宝下载node-v11 wget https://npm.taobao.org/mirrors/node/v11.0.0/node-v11.0.0.tar.gz 3.解压 tar -zxvf node-v11.0.0.tar.gz 4.进入node-v11 cd node-v11.0.0 5.安装编译环境 yum install -y gcc gcc-c++ 6.启用配置 ./configure 7.编译(会很慢,此处开启第二个会话窗口进行第二部分安装) make 8.安装 make install 9.查看版本(看到此图说明成功) node –v

切换到安装软件的目录

10安装elasticsearch-head监控elasticsearch集群环境 没有unzip用yum下载安装一个 unzip –zxvf elasticsearch-head-master 进入到解压后的目录中 npm install npm run start 在浏览器url输入 http://ip:9100/

第二部分安装elasticsearch

1.安装jdk,elasticsearch是依赖javajdk的 2.解压tar -zxvf elasticsearch6.2.2 3.config/elasticsearch.yml 配置环境

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cluster.name: es-app #集群名称,可以自行修改
node.name: es-1 #节点名称,自行修改
network.host: 192.168.235.133 #主机地址,这里写本机IP
http.port: 9200 #端口
(手动输入)
http.cors.enabled: true #设置跨域
http.cors.allow-origin: "*" #设置访问

4.vi /etc/security/limits.conf 扩大系统最大文件数 在文件末尾添加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* soft nofile 65536
* hard nofile 131072
* soft nproc 4096
* hard nproc 4096

5.解决虚拟内存太低,增加最大字节处理长度 修改vi /etc/sysctl.conf文件末尾追加

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vm.max_map_count=655360

查看激活

6.自建用户并授权 useradd passwd

修改root用户对sudoers文件的可写权限 chmod u+w /etc/sudoers

编辑: vi /etc/sudoers

7进入到elasticsearch的bin目录 赋权 chown 用户名 -R 安装目录

切换到非root用户后 ./elasticsearch 启动

8之后在浏览器url输入 http://ip:9200/ 出现此图证明成功

之后返回等待编译第一部分

第三部分kibana

1.解压缩安装kibana tar -zxvf kibana-6.2.2-linux-x86_64.tar.gz

2.修改配置文件 在config下的kibana.yml

保存退出后 3.开启 cd 到bin目录下 ./kibana 在浏览器url输入 http://192.168.56.227:5601

第四部分logstash

1解压缩 tar -zxvf logstash-6.2.2.tar.gz 2在logstash目录下 bin/logstash -e ‘input { stdin { } } output { stdout {} }’

输入hello可以看到stdout输出的结果:hello

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179551.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
ES6中提升效率的新方法,多学一点是一点。
ES6,ECMAScript6是目前js的新标准,又说是现在的es6是2015年发出来的,所以又称它为ECMAScript2015,所以说es6就是es2015,好绕... 不管了,看看它的一些新东西,也挺有意思的。 //////// new Set(),用来去重数组。 let arr = [1, 2, 2, 3]; let set = new Set(arr); let newArr = Array.from(set); console.log(newArr); // [1, 2, 3] 我试了一下,确
web前端教室
2018/02/06
7280
JavaScript 深拷贝和浅拷贝
在 JavaScript 引用数据类型中,变量保存的是一个指向堆内存的指针,当需要访问引用类型(如对象,数组等)的值时,首先从栈中获得该对象的地址指针,然后再从堆内存中取得所需的数据。
李振
2021/11/26
3150
JavaScript学习笔记009-Json对象0解构赋值0扩展运算符
Author:Mr.柳上原 付出不亚于任何的努力 愿我们所有的努力,都不会被生活辜负 不忘初心,方得始终 后端学院的老师来我们前端学院推广Python 为期一个星期的Python基础课 有些刚学html的学弟学妹们跑来问 老师,没学js的也能学Python吗 老师说,没关系,我们后端学院也教js 速度过来报名 老师,您在前端学院的讲师房里说这样的话 真的不怕他们群殴您吗 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 <!DOCTYPE html> <!-- 文档类型:标准html文档 --> <html lang
Mr. 柳上原
2018/09/05
7080
面试官想要的 JS 基本类型
面试的时候我们经常会被问答js的数据类型。大部分情况我们会这样回答包括: 基本类型(值类型或者原始类型): Number、Boolean、String、NULL、Undefined以及ES6的Symb
grain先森
2019/04/17
5860
面试官想要的 JS 基本类型
前端面试(8)拷贝
js 的基本数据类型的赋值,就是值传递。引用类型对象的赋值是将对象地址的引用赋值。这时候修改对象中的属性或者值,会导致所有引用这个对象的值改变。如果想要真的复制一个新的对象,而不是复制对象的引用,就要用到对象的深拷贝。
leader755
2022/03/09
3280
前端面试(8)拷贝
JS的数据类型/判断方法/栈与堆/深浅拷贝
用来检测:undefined、string、number、boolean、symbol、object、function 无法检测引用类型里的Array
杨肆月
2019/08/20
1.5K0
JS的数据类型/判断方法/栈与堆/深浅拷贝
JS 深拷贝与浅拷贝
其实在工作写代码和面试中,会经常碰到这两个概念:深拷贝,浅拷贝。但今天的重点是深拷贝。
Umbrella1024
2021/02/18
2.2K0
收藏好了,JS开发须知道的41个小技巧
链接:https://juejin.im/post/6854573212890562573
coder_koala
2020/11/10
5690
收藏好了,JS开发须知道的41个小技巧
前端学习(39)~js学习(十六):数组
数组的存储性能比普通对象要好。在实际开发中我们经常使用数组来存储一些数据,使用频率非常高。
Vincent-yuan
2020/03/19
8220
JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝
栈内存与堆内存 、浅拷贝与深拷贝,可以说是前端程序员的内功,要知其然,知其所以然。
夜尽天明
2019/07/10
6740
JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝
js和object的常见操作,持续更新中...
PS: ⚠️不是返回值,是提醒注意事项,除⚠️符号之外的均为返回值 将string类型的数组,进行格式化为object类型的数组 let str = "[{'env': '测试', 'problem': '允许', 'protocol': 'TCP', 'source_port': '修改的数据源数据', 'purpose': '修改的数据', 'source_ip': '修改的数据源数据', 'dest_port': '修改的数据源数据', 'partner': '修改的数据源数据', 'dest_ip
何处锦绣不灰堆
2020/08/28
1.5K0
js和object的常见操作,持续更新中...
浅拷贝与深拷贝
当我们msg的时候实际上是拷贝msg的地址,两个msg指向同一个地址,这样当某个对象对msg进行修改时,那么另一个对象的msg也会被修改
切图仔
2022/09/08
3170
浅拷贝与深拷贝
深浅拷贝
Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象
hss
2022/02/25
3070
数据结构转换,笔试题系列
题目是下面这样的:将原数据根据pid进行转换成一个tree结构,也就是将pid归类到id相等的分组中去,当前的pid与id不会相等
Maic
2022/12/21
3870
数据结构转换,笔试题系列
ES6展开运算符(...)
1.展开数组/字符串/对象 2.拷贝数组/对象(浅拷贝) 3.合并数组/对象 4.把伪数组转换成真数组 5.收集函数的剩余参数
倾盖
2022/08/16
5420
ES6展开运算符(...)
JavaScript深拷贝和浅拷贝
在JavaScript中操作数据的时候,基础数据类型还好,不管是我们怎么赋值修改都不会有什么问题,但是如果我们操作的是数组或者Object,那很容易出现修改了一个值就会把所有的都给变了,这就是浅拷贝。
wade
2020/04/24
5710
前端学习(40)~js学习(十七):数组的常见方法&数组的遍历
unshift():在数组最前面插入一个或多个元素,返回结果为该数组新的长度。插入元素后,其他元素的索引会依次调整。
Vincent-yuan
2020/03/19
1.9K0
javaScript中的浅拷贝 vs 深拷贝
在前端的数据处理当中,有时候往往需要对原有的数据进行克隆拷贝一份,然后在进行操作,但是又不能影响原来的数据
itclanCoder
2020/10/28
7050
javaScript中的浅拷贝 vs 深拷贝
js浅拷贝和深拷贝的区别_前端面试深拷贝和浅拷贝
基本数据类型:Boolean、String、Number、null、undefined 引用数据类型:Object、Array、Function、RegExp、Date等
全栈程序员站长
2022/11/15
1.1K0
js浅拷贝和深拷贝的区别_前端面试深拷贝和浅拷贝
盘盘项目中你常用到的数组API
数组在业务中是一个非常高频的API,在业务中基本都有用它,必不可少,本文是笔者一篇关于数组常用API的总结,希望看完在项目中有所帮助。
Maic
2022/12/21
5750
盘盘项目中你常用到的数组API
相关推荐
ES6中提升效率的新方法,多学一点是一点。
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验