【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

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

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

相关文章

C++(Chapter 3)

C(三) 1.引用 1.引用的概念 引用的概念:引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 引用的语法:类型& 引用变量名(对象名) 引用实体 ; 例如: #i…

MySQL---表的增查改删(CRUD基础)

文章目录 什么是CRUD?新增(Create)单行数据 全列插入多行数据 指定列插入 查询(Retrieve)全列查询指定列查询查询字段为表达式起别名查询去重查询排序查询条件查询分页查询 修改(Update)删除&…

【QT】其他常用控件1

新建项目 scrollArea 滚动 toolBox 插入 tabWidget stackedWidget 切换 索引是0 运行后,没有切换按钮,结合pushbutton,加两个Button 代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent)…

Centos8: 安装python2, 并设置默认版本

文章目录 原本centos上已经有python3.6了,因为要运行旧代码,需要安装python2版本。 #在CentOS 8上安装Python 2 sudo dnf install python2#设置默认Python版本 python2 sudo alternatives --set python /usr/bin/python2#设置默认Python版本 python3 sud…

DevOps持续集成-Jenkins(4)

❤️作者简介:2022新星计划第三季云原生与云计算赛道Top5🏅、华为云享专家🏅、云原生领域潜力新星🏅 💛博客首页:C站个人主页🌞 💗作者目的:如有错误请指正,将…

【刷题-PTA】堆栈模拟队列(代码+动态图解)

【刷题-PTA】堆栈模拟队列(代码动态图解) 文章目录 【刷题-PTA】堆栈模拟队列(代码动态图解)题目输入格式:输出格式:输入样例:输出样例: 分析题目区分两栈解题思路伪代码动图演示代码测试 题目 题目描述 : 设已知有两个堆栈S1和S2,请用这两个堆栈模拟出一个队列Q。 …

css-渐变色矩形

效果图&#xff1a; 代码&#xff1a; html: <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"viewport" content"initial-scale1.0, user-scalableno" /><title></title><link …

ES6初步了解生成器

生成器函数是ES6提供的一种异步编程解决方案&#xff0c;语法行为与传统函数完全不同 语法&#xff1a; function * fun(){ } function * gen(){console.log("hello generator");}let iterator gen()console.log(iterator)打印&#xff1a; 我们发现没有打印”hello…

Leetcode-Easy题解1-回文数字

目录 解法1解法2 解法1 自己的想法,直接转成字符串首尾俩下标同时遍历比较 class Solution {public boolean isPalindrome(int x) {if(x<0){return false;}String strString.valueOf(x);int i0;for (;i<str.length()>>1;i){if(str.charAt(i)!str.charAt(str.leng…

DAY33 1005. K次取反后最大化的数组和 + 134. 加油站 + 135. 分发糖果

1005. K次取反后最大化的数组和 题目要求&#xff1a;给定一个整数数组 A&#xff0c;我们只能用以下方法修改该数组&#xff1a;我们选择某个索引 i 并将 A[i] 替换为 -A[i]&#xff0c;然后总共重复这个过程 K 次。&#xff08;我们可以多次选择同一个索引 i。&#xff09; …

Godot 官方2D C#重构(3):TileMap使用

文章目录 前言Godot Tilemap使用Tilemap使用TileSet和TilemapTilemap 图片资源添加TileSet&#xff0c;开始切图导入图片切图 简单添加TileMap如何使用 Auto Tilemap使用Auto Tilemap 前言 Godot 官方 教程 Godot 2d 官方案例C#重构 专栏 Godot 2d 重构 github地址 Godot Tilem…

互联网Java工程师面试题·Spring篇·第三弹

目录 ​编辑 4、注解 4.1、什么是基于注解的容器配置 4.2、如何在 spring 中启动注解装配&#xff1f; 4.3、Component, Controller, Repository,Service 有何区别&#xff1f; 4.4、Required 注解有什么用&#xff1f; 4.5、Autowired 注解有什么用&#xff1f; 4.6、…

当前JavaEE初阶的阶段知识总结

当前JavaEE初阶的阶段知识总结 多线程 文件IO 文件系统操作 ~~ File类. 文件内容操作 ~~ 读文件,写文件. IO 流对象. 流(Stream),形象的比喻,读取文件,就像水流一样,读写文件的时候,和水流类似,读100字节,可以一次读1个字节,100次完成;也可以一次读10个字节,10次完成…… 在…

Pillow(PIL)库的主要方法介绍

Pillow&#xff08;Python Imaging Library&#xff09;是Python中一个强大的图像处理库&#xff0c;它允许你进行图像的创建、打开、编辑、保存和显示等操作。Pillow 是 PIL&#xff08;Python Imaging Library&#xff09;的分支&#xff0c;支持多种图像格式&#xff0c;并提…

LVS+keepalived高可用负载均衡集群

keepalived介绍 keepalived为LVS应运而生的高可用服务。LVS的调度器无法做高可用&#xff0c;于是keepalived这个软件。实现的是调度器的高可用。 但是keepalived不是专门为LVS集群服务的&#xff0c;也可以做其他代理服务器的高可用。 LVS高可用集群的组成 主调度器备调度器&…

Java IDEA controller导出CSV,excel

Java IDEA controller导出CSV&#xff0c;excel 导出excel/csv&#xff0c;亲测可共用一个方法&#xff0c;代码逻辑里判断设置不同的表头及contentType&#xff1b;导出excel导出csv 优化&#xff1a;有数据时才可以导出参考 导出excel/csv&#xff0c;亲测可共用一个方法&…

javaEE -6(10000详解文件操作)

一&#xff1a;认识文件 我们先来认识狭义上的文件(file)。针对硬盘这种持久化存储的I/O设备&#xff0c;当我们想要进行数据保存时&#xff0c;往往不是保存成一个整体&#xff0c;而是独立成一个个的单位进行保存&#xff0c;这个独立的单位就被抽象成文件的概念&#xff0c…

四个内存函数

文章目录 memcpy函数(拷贝)模拟实现memcpy函数memcpy的升级memmove 之前的拷贝或赋值等都是对字符串操作的&#xff0c;而对内存中其它数据如结构体&#xff0c;数组中的数据的拷贝&#xff0c;都是要用内存函数来完成的。 memcpy函数(拷贝) 第一个参数为目标地址&#xff0c;第…

DJYROS产品:基于DJYOS的国产自主割草机器人解决方案

基于都江堰泛计算操作系统的国产自主机器人操作系统即将发布…… 1、都江堰机器人操作系统命名&#xff1a;DJYROS 2、机器人算法&#xff1a;联合行业自主机器人厂家&#xff0c;构建机器人算法库。 3、机器人芯片&#xff1a;联合行业机器人AI芯片公司&#xff0c;构建专用…

《红蓝攻防对抗实战》八.利用OpenSSL对反弹shell流量进行加密

前文推荐&#xff1a; 《红蓝攻防对抗实战》一. 隧道穿透技术详解《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网《红蓝攻防对抗实战》四.内网探测协议出网之ICMP协议探测出网《红蓝攻防对抗…