当前位置: 首页 > news >正文

【ELK】日志系统部署

一、ELK日志分析系统

1、ELK的组成

  • ElasticSearch
  • LogStash
  • Kibana

ELK基于这三个开源日志的收集、存储、检索和可视化的解决方案;可帮助用户快速定位和分析应用程序的故障,监控应用程序性能和安全,以及提供丰富的数据分析和展示功能。

2、完整日志系统特征

ELK是一个完整的处理分析日志的系统

收集:能够采集多种来源的日志数据
传输:能够稳定的把日志数据解析过滤并传输到存储系统
存储:存储日志数据
分析:支持 UI 分析
警告:能够提供错误报告,监控机制

3、ELK的优点

日志主要包括系统日志、应用程序日志和安全日志;运维人员经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

单台机器的日志我们使用grep、awk等工具能实现简单分析,但当日志被分散的储存不同的设备上这样就很繁琐、效率低下,所以会将所有服务器上的日志集中化管理;但日志的统计和检索又成为一件比较麻烦的事情,所以构建一套集中式日志系统,可以提高定位问题的效率。

4、ELK工作原理

  • 在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash
  • Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中
  • Elasticsearch 对格式化后的数据进行索引和存储
  • Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示

input 数据采集、output 数据输出、filter 数据过滤

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

二、Elasticsearch概述

提供一个分布式多用户功能的全文搜索引擎,对各类数据实时的索引和查询、高可用性和水平扩展性;存放各类日志,搜索各类大型文档。

Elasticserach特性

  • 接近实时

搜索速度非常的快,轻微的延迟。

  • 集群(cluster)

将一个或多个节点组织在一起,组成一个cluster集群。
集群有一个唯一标志的名字,默认Elasticasearch,每个节点基于集群名字加入到集群中,且在集群中使用自己的名字来身份标识。

  • 节点(node)

每一个节点就是一台单台服务器。

  • 索引(index)

一个索引由一个名字来标识(必须全部是小写字母),并且当我们要多对应这个索引中的文档进行索引、更新、删除的时候,都要使用到这个名字。

  • 类型(type)

在一个索引中,你可以定义一个或多种类型。
比如:当我们存储一个购物平台的数据时,可以定义一个用户数据类型,产品数据类型等。

  • 文档(document)

一个文档是一个可被索引的基础信息单元

三、Logstash概述

数据处理工具,可以有多个来源采集数据,对数据进行过滤和转换增强,将数据发给Elasticsearch或其它目的地。

Logstash组件

  • Shipper

日志的收集者,并对其格式化

  • Indexer

日志的存储者

  • Broker

日志hub,hub——做链接作用

  • Search and Storage

搜索和存储

  • Web Interface

基于Web的展示界面

四、Kibana概述

针对ElasticSearch的数据可视化平台,可通过各种图表、仪表盘和地图来展示和搜索ElasticSearch的其中数据。

它可以整合数据分析、接口灵活、可视化多数据源

五、ELK系统部署

1、部署环境

主机名ip地址主要软件系统
node1192.168.154.70ElasticSearh、KibanaCentos7.5
node2192.168.154.60ElasticSearhCentos7.5
Apache192.168.154.50Logstash、ApacheCentos7.5

2、部署ElasticSearh(node1、2)

关闭防火墙、修改主机名(所有主机)

systemctl stop firewalld
setenforce 0 hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname logstash

安装JDK,加载系统服务

默认的是open jdk,不建议使用(ES是java开发的)

java -version					#如果没有安装,yum -y install javaopenjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

修改elasticsearch主配置文件

--17--取消注释,指定集群名字
cluster.name: my-elk-cluster
--23--取消注释,指定节点名字:Node1节点为node1,Node2节点为node2
node.name: node1
--33--取消注释,指定数据存放路径
path.data: /data/elk_data
--37--取消注释,指定日志存放路径
path.logs: /var/log/elasticsearch/
--43--取消注释,改为在启动的时候不锁定内存
bootstrap.memory_lock: false
--55--取消注释,设置监听地址,0.0.0.0代表所有地址
network.host: 0.0.0.0
--59--取消注释,ES 服务的默认监听端口为9200
http.port: 9200
--68--取消注释,集群发现通过单播实现,指定要发现的节点 node1、node2
discovery.zen.ping.unicast.hosts: ["node1", "node2"]

创建数据存放路径并授权、开启ES服务

查看节点信息

使用上述方式查看群集的状态对用户并不友好,可以通过安装 Elasticsearch-head 插件,可以更方便地管理群集。

2.1、安装 Elasticsearch-head 插件

编译安装 node

安装 Elasticsarch-head 需要提前安装好依赖软件 node 和 phantomjs

yum -y install gcc gcc-c++ make cd /opttar xzvf node-v8.2.1.tar.gzcd node-v8.2.1/
./configure 
make -j4 &&make install
#安装会稍微久一点

安装 phantomjs(前端的框架)

#上传安装包上传到/opt目录下cd /opt
tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin
cp phantomjs /usr/local/bin

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

#将包上传到/opt目录下tar -zxvf elasticsearch-head.tar.gz -C /usr/local/src/
cd /usr/local/src/elasticsearch-head
npm install

修改 Elasticsearch 主配置文件

--末尾添加以下内容--
http.cors.enabled: true				#开启跨域访问支持,默认为 false
http.cors.allow-origin: "*"			#指定跨域访问允许的域名地址为所有systemctl restart elasticsearch

启动 elasticsearch-head 服务

通过 Elasticsearch-head 查看 Elasticsearch 信息

插入索引

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

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

3、部署Logstash

安装Apahce服务、Java环境

yum -y install httpd
systemctl start httpdyum -y install java
java -version

安装Logstash

cd /opt
rpm -ivh logstash-5.5.1.rpm                           
systemctl start logstash.service                      
systemctl enable logstash.serviceln -s /usr/share/logstash/bin/logstash /usr/local/bin/

测试 Logstash

修改 Logstash 配置文件

让其收集系统日志/var/log/messages,并将其输出到 elasticsearch 中

4、Kibana

安装 Kiabana

#上传软件包 kibana-5.5.1-x86_64.rpm 到/opt目录cd /opt
rpm -ivh kibana-5.5.1-x86_64.rpm

设置 Kibana 的主配置文件、并启动

vim /etc/kibana/kibana.yml--2--取消注释,Kiabana 服务的默认监听端口为5601
server.port: 5601
--7--取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"
--21--取消注释,设置和 Elasticsearch 建立连接的地址和端口
elasticsearch.url: "http://192.168.10.13:9200" 
--30--取消注释,设置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"

验证 Kibana

将 Apache 服务器的日志 添加到 Elasticsearch 并通过 Kibana 显示

在Logstash服务器操作

vim /etc/logstash/conf.d/apache_log.conf

相关文章:

【ELK】日志系统部署

一、ELK日志分析系统 1、ELK的组成 ElasticSearchLogStashKibana ELK基于这三个开源日志的收集、存储、检索和可视化的解决方案;可帮助用户快速定位和分析应用程序的故障,监控应用程序性能和安全,以及提供丰富的数据分析和展示功能。 2、完…...

【算法挨揍日记】day08——30. 串联所有单词的子串、76. 最小覆盖子串

30. 串联所有单词的子串 30. 串联所有单词的子串 题目描述: 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words ["…...

SpringCloud Gateway--网关服务基本介绍和基本原理

😀前言 本篇博文是关于SpringCloud Gateway的基本介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力…...

使用Vue-cli构建spa项目及结构解析

一,Vue-cli是什么? 是一个官方发布的Vue脚手架工具,用于快速搭建Vue项目结构,提供了现代前端开发所需要的一些基础功能,例如:Webpack打包、ESLint语法检查、单元测试、自动化部署等等。同时,Vu…...

自定义Unity组件——AudioManager(音频管理器)

需求描述 在游戏开发中,音频资源是不可或缺的,通常情况下音频资源随机分布,各个音频的操作和管理都是各自负责,同时对于音频的很多操作逻辑都是大同小异的,这就造成了许多冗余代码的堆叠,除此之外在获取各类…...

leetcode 558 设计内存文件系统

题目 Design an in-memory file system to simulate the following functions: ls: Given a path in string format. If it is a file path, return a list that only contains this files name. If it is a directory path, return the list of file and directory namesin th…...

Haproxy负载均衡群集

HAproxy搭建Web群集一、Web集群调度器1、常见的Web集群调度器2、常用集群调度器的优缺点(LVS ,Nginx,Haproxy)2.1 Nginx2.2 LVS2.3 Haproxy 3、LVS、Nginx、HAproxy的区别 二、Haproxy1、简介2、Haproxy应用分析3、HAProxy的主要特性4、Haproxy调度算法(…...

什么是面包屑导航?

面包屑导航(Breadcrumb Navigation)这个概念来自童话故事“汉赛尔和格莱特”,当汉赛尔和格莱特穿过森林时,不小心迷路了,但是他们发现沿途走过的地方都撒下了面包屑,让这些面包屑来帮助他们找到回家的路。 在网站应用中&#xff0…...

VS2019创建GIt仓库时剔除文件或目录

假设本地有解决方案“SomeSolution” 1、首先”团队资源管理器“-“创建Git存储库”,选择“仅限本地”、“创建” VS会在解决方案目录下自动生成.gitattributes、.gitignore 2、编辑gitignore,直接拖到VS里或者用记事本打开。添加要剔除的文件或文件夹…...

计算机等级考试—信息安全三级真题六

目录 一、单选题 二、填空题 三、综合题 一、单选题...

vue循环滚动字幕

在Vue.js中创建一个循环滚动字幕的效果通常需要使用一些CSS和JavaScript来实现。以下是一个简单的示例,展示如何使用Vue.js创建一个循环滚动字幕的效果: 首先,在HTML中创建一个Vue实例,并添加一个包含滚动字幕的容器元素&#xff…...

扩展pytest接口自动化框架-MS数据解析功能

【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】 开篇 MeterSphere的数据源通过html页面上传后,需要将请求方式进行拆分。 get接口的参数,常以params的方式进行传…...

docker容器安装MongoDB数据库

一:MongoDB数据库 1.1 简介 MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最 像关系型数据库(MySQL)的非关系型数据库。 它支持的数据结构…...

Python机器学习实战-特征重要性分析方法(3):迭代删除法:Leave-one-out(附源码和实现效果)

实现功能 迭代地每次删除一个特征并评估准确性 实现代码 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score impo…...

Go的error接口

从本书的开始,我们就已经创建和使用过神秘的预定义error类型,而且没有解释它究竟是什么。实际上它就是interface类型,这个类型有一个返回错误信息的单一方法: type error interface { Error() string } 创建一个error最简单的方…...

RabbitMQ 集群 - 普通集群、镜像集群、仲裁队列

目录 一、RabbitMQ 集群 1.1、前言 1.2、普通集群 1.3、镜像集群 1.4、仲裁队列 一、RabbitMQ 集群 1.1、前言 前面我们已经解决了消息可靠性问题,以及延迟消息问题 和 消息堆积问题. 这最后一章,我们就来解决以下 mq 的可用性 和 并发能力. 1.2、…...

高项新版教程(第四版)解读+学习指导

第四版主要内容 技术部分 信息化教程、软件工程、网络技术是原来的,学习原来的录播。 新基建、工业互联网、车联网、农业现代化、数字化转型、元宇宙等是新增,以直播讲。 管理部分 变化不是太大 。 整合管理、人力变为资源管理、风险管理新增内容。 …...

【Debian】Debian10.0.0安装选项问答

debian的LXQT是什么? LXQT是一套轻量级的桌面环境,主要基于Qt框架开发。 LXQT在debian中的具体特点包括: - 使用Openbox作为窗口管理器,提供平铺式窗口布局。 - 文件管理器为PCManFM-Qt。 - 设置中心集成 debconf 配置界面。 - 支持GTK和Qt应用程序。 - 资源消耗较低…...

【基于React-Native做位置信息获取,并展示出来】

基于React-Native做位置信息获取 在这个里面最重要的是两个部分&#xff0c;一个是位置定位的权限获取&#xff0c;一个是实时位置的监听&#xff0c;在安卓项目中&#xff0c;在 android/app/src/main/AndroidManifest.xml该文件下&#xff0c;在< manifest > 标签内写…...

ansible安装、点对点Ad-Hoc、模块、剧本Playbook

DevOps: 官网&#xff1a;https://docs.ansible.com 自动化运维工具对比 C/S 架构:客户端/服务端 Puppet:基于 Ruby 开发,采用 C/S 架构,扩展性强,基于 SSL,远程命令执行相对较弱 SaltStack:基于 Python 开发,采用 C/S 架构,YAML使得配置脚本更简单.需要配置客户端及服务器…...

Ceph入门到精通-ceph pool 删除导致 misplaced 的原因

misplaced 的原因 Ceph中的misplaced对象是指将对象&#xff08;或对象的副本&#xff09;存储在错误的位置上&#xff0c;这可能会导致性能下降或数据不一致的问题。在删除Ceph池时&#xff0c;可能会导致misplaced的原因有以下几个&#xff1a; 删除过程中的操作失误&#x…...

计算机组成原理课程设计

操作控制和顺序控制 操作控制就是由各种微命令来构成的顺序控制就是由P测试和后续微地址构成的 这就构成了整个微指令的三个部分 访存指令就是实现对主存中的数据进行访问或存储 一、 操作控制字段是由各种微命令来构成的&#xff0c;这些微命令怎么来设计&#xff1f; 一个萝卜…...

《从菜鸟到大师之路 MySQL 篇》

《从菜鸟到大师之路 MySQL 篇》 数据库是什么 数据库管理系统&#xff0c;简称为DBMS&#xff08;Database Management System&#xff09;&#xff0c;是用来存储数据的管理系统。 DBMS 的重要性 无法多人共享数据 无法提供操作大量数据所需的格式 实现读取自动化需要编程…...

使用qt完善对话框功能

1、 完善登录框 点击登录按钮后&#xff0c;判断账号&#xff08;admin&#xff09;和密码&#xff08;123456&#xff09;是否一致&#xff0c;如果匹配失败&#xff0c;则弹出错误对话框&#xff0c;文本内容“账号密码不匹配&#xff0c;是否重新登录”&#xff0c;给定两…...

Day 03 python学习笔记

位运算 基于二进制的运算&#xff08;计算机的底层基于位运算&#xff09; 计算机最小单位&#xff1a;bit (比特/位/二进制) 1byte&#xff08;字节&#xff09; 8bit &#xff08; 0000 0000&#xff09; &&#xff1a;与 &#xff08;全真为真&#xff0c;一假则…...

优化类问题概述

数学建模系列文章&#xff1a; 以下是个人在准备数模国赛时候的一些模型算法和代码整理&#xff0c;有空会不断更新内容&#xff1a; 评价模型&#xff08;一&#xff09;层次分析法&#xff08;AHP&#xff09;,熵权法&#xff0c;TOPSIS分析 及其对应 PYTHON 实现代码和例题…...

第一个 Go 程序“hello,world“ 与 main 函数

第一个 Go 程序"hello&#xff0c;world" 与 main 函数 文章目录 第一个 Go 程序"hello&#xff0c;world" 与 main 函数一.创建“hello&#xff0c;world”示例程序二. “hello&#xff0c;world” 程序结构拆解三、main 函数四、Go 语言中程序是怎么编译…...

MySQL缓冲池Buffer Pool

前言 ​ 在应用系统中&#xff0c;为加速数据访问&#xff0c;会把高频的数据放在「缓存」(Redis、MongoDB)里&#xff0c;减轻数据库的压力。在操作系统中&#xff0c;为了减少磁盘IO&#xff0c;同时为了快速响应&#xff0c;引入了「缓冲池」(buffer pool)机制。 ​ MySQL…...

springboot实现发送邮箱验证码

准备工作 在邮箱官网开放SMTP授权&#xff0c;获取相应密钥&#xff0c;才可以进行发送邮件 这里以网易163邮箱为例&#xff0c;登录邮箱后&#xff0c;依次点击“设置-POP3/SMTP/IMAP” &#xff0c;然后开启SMTP服务。这时候会提示一个授权码&#xff0c;例如&#xff1a;H…...

ESP8266使用记录(三)

通过udp把mpu6050数据发送到PC端 /********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : ESP8266WiFiUdp_12 团队/Team : 太极创客团队 / Taichi-Maker (w…...

wordpress做ftp/百度一下 官方网

文章目录 概论对比HashMap 的初始容量默认11 的初始容量任意指定非负的容量对比HashMap 的 对null 值的支持HashTable key value 都不支持null升级HashTable 使其支持null 做value对比 HashTable 的继承关系DictionaryHashtable线程安全contains方法debug 源码 put 方法总结你觉…...

wordpress缓存接口数据/直接打开百度

stitutestand constitute con 一起&#xff0c;共同&#xff0c;全部 stitutestand 站在一起 v. 组成&#xff0c;构成&#xff1b;成立&#xff0c;设立 A constitute B B is made up of A B is composed of A 注意这三组短语的异同 另外&#xff0c;它的两…...

网站权重6了该则么做优化方案/电视剧排行榜

本节书摘来自异步社区《Python 3程序开发指南&#xff08;第2版•修订版&#xff09;》一书中的第2章&#xff0c;第2.3节&#xff0c;作者[英]Mark Summerfield&#xff0c;王弘博&#xff0c;孙传庆 译&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.3…...

外贸怎么做公司网站/如何制作一个网页页面

管理MySQL的库与表 Mysql中的表对象是基于库维护的&#xff0c;配置好一套MySQL数据库服务后&#xff0c;系统会默认创建4个库&#xff1a;information_schemamysqlperformance_schematest show databases;命令查看&#xff08;当前链接的用户拥有访问权限的数据库&#xff09;…...

做我的世界背景图的网站/b2b平台排名

【转载】超简单IFRAME自适应网页&#xff01; 大 | 中 | 小 [2007/01/14 22:38 | 分类: 其他技术 WEB标准 | by feifengxlq ] 来之蓝色理想&#xff1a;http://bbs.blueidea.com/thread-2145145-1-1.html解决方法&#xff1a;1、建立一个bottom.js的文件&#xff0c;然后输入…...

app打包网站开发源码/模板网站建站公司

可靠性建模 编程By Rhea Moutafis瑞亚穆塔菲斯(Rhea Moutafis) Originally published on Aug. 25, 2020, on Hewlett Packard Enterprise’s Enterprise.nxt, publishing insights about the future of technology.最初于2020年8月25日在Hewlett Packard Enterprise的 Enterpr…...