ELK安装(Elasticsearch+Logstash+Kibana+Filebeat)

一、简介

1.1、软件简介

ELK其实是Elasticsearch,Logstash 和 Kibana三个产品的首字母缩写,这三款都是开源产品。

1.1.1、Elasticsearch简介

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

1.1.2、Logstash简介

Logstash是基于过滤器/管道模式的工具,用于收集,处理和生成日志或事件。它有助于集中和实时分析来自不同来源的日志和事件。

Logstash是用在JVM上运行的JRuby编程语言编写的,因此您可以在不同的平台上运行Logstash。它几乎从每种类型的源中收集不同类型的数据,例如日志,数据包,事件,事务,时间戳数据等。数据源可以是社交数据,电子商务,新闻文章,CRM,游戏数据,Web趋势,金融数据,物联网,移动设备等。

1.1.3、Kibana简介

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图表、表格、地图等kibana能够很轻易地展示高级数据分析与可视化。

Kibana让我们理解大量数据变得很容易。它简单、基于浏览器的接口使你能快速创建和分享实时展现Elasticsearch查询变化的动态仪表盘。安装Kibana非常快,你可以在几分钟之内安装和开始探索你的Elasticsearch索引数据,不需要写任何代码,没有其他基础软件依赖。

1.1.4、Filebeat简介

Filebeat是一个轻量级的托运器,用于转发和集中日志数据。Filebeat作为代理安装在您的服务器上,监视您指定的日志文件或位置,收集日志事件,并将其转发到Elasticsearch或Logstash进行索引

1.2、架构简介

大概就是Filebeat收集应用服务器的日志转给Logstash收集、解析之后将数据发送给Elasticsearch,然后Kibana将之展示出来。
至于为什么用了一个Filebeat了,就是因为其比较轻量,但收集日志又完全OK!所以将Logstash分离出来,Logstash安装插件的时候就比较简单了,不需要每台都安装,节省了资源提高了效率
在这里插入图片描述

二、环境准备

2.1、软件下载

去这个网站找啊!

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.14.3-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.3-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.14.3-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.14.3-linux-x86_64.tar.gz

2.2、java环境安装

下载安装jdk

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm
yum -y install ./jdk-17_linux-x64_bin.rpm

修改环境变量

vim /etc/profile
export JAVA_HOME=/usr/java/jdk-17
export PATH=$JAVA_HOME/bin:$PATH

刷新环境变量,使之生效

source /etc/profile

查看Java环境

java -version

在这里插入图片描述

三、Elasticsearch

安装配置参考官方链接

3.1、安装

cd /home/local
tar -xvzf elasticsearch-8.14.3-linux-x86_64.tar.gz

3.2、修改配置文件

vim elasticsearch-8.14.3/config/elasticsearch.yml
cluster.name: elk-application
node.name: node-1
path.data: /home/local/elasticsearch-8.14.3/data
path.logs: /home/local/elasticsearch-8.14.3/logs
network.host: 10.10.30.34
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:enabled: falsekeystore.path: certs/http.p12
xpack.security.transport.ssl:enabled: trueverification_mode: certificatekeystore.path: certs/transport.p12truststore.path: certs/transport.p12
/home/local]# cat elasticsearch-8.14.3/config/elasticsearch.yml |grep -v ^# | grep -v ^$

在这里插入图片描述

3.3、修改jvm

vim elasticsearch-8.14.3/config/jvm.options
-Xms4g
-Xmx4g
-XX:+UseG1GC
-Djava.io.tmpdir=${ES_TMPDIR}
20-:--add-modules=jdk.incubator.vector
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
-XX:HeapDumpPath=data
-XX:ErrorFile=logs/hs_err_pid%p.log
-Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,level,pid,tags:filecount=32,filesize=64m
cat elasticsearch-8.14.3/config/jvm.options |grep -v ^# | grep -v ^$

在这里插入图片描述

3.4、修改环境参数

修改连接数和文件数
临时生效ulimit -n 65535
永久生效

vim /etc/security/limits.conf
elastic  -  nofile  65535
elastic  -  noproc  65535

修改虚拟内存
临时生效:sysctl -w vm.max_map_count=262144
永久生效

vim /etc/sysctl.conf
vm.max_map_count=262144

3.5、启动

Elasticsearch不能使用root用户启动

3.5.1、命令启动
useradd elastic
passwd elastic
chown -R elastic:elastic /home/local/elasticsearch-8.14.3
su - elastic
/home/local/elasticsearch-8.14.3/bin/elasticsearch -d
3.5.2、服务启动
vim /lib/systemd/system/elasticsearch.service
[Unit]
Description=elasticsearch
Wants=network-online.target
After=network-online.target[Service]
User=elastic
ExecStart=/home/local/elasticsearch-8.14.3/bin/elasticsearch -d
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
#加载服务
systemctl daemon-reload
#开机自启
systemctl enable elasticsearch
#启动服务
systemctl start  elasticsearch
#关闭服务
systemctl stop  elasticsearch
#重启服务
systemctl restart  elasticsearch
#查看状态
systemctl status elasticsearch
#查看日志
journalctl  -f -u elasticsearch

3.6、验证

3.6.1、访问页面
curl -I http://10.10.30.34:9200/

在这里插入图片描述

3.6.2、查看进程
ps -ef | grep elasticsearch

在这里插入图片描述

3.6.3、服务状态
systemctl status elasticsearch

在这里插入图片描述

四、Logstash

4.1、安装

tar -xzvf logstash-8.14.3-linux-x86_64.tar.gz

4.2、配置

vim logstash-8.14.3/config/logstash-sample.conf
input {beats {port => 5044}
}
output {if "mes3-log" in [tags] {elasticsearch {hosts => ["http://10.10.30.34:9200"]index => "[mes3-log]-%{+YYYY.MM.dd}"}}
}
cat logstash-8.14.3/config/logstash-sample.conf | grep -v ^# | grep -v ^$

在这里插入图片描述

4.3、启动

4.3.1、命令启动
chown -R elastic:elastic /home/local/logstash-8.14.3
su - elastic
nohup /home/local/logstash-8.14.3/bin/logstash -f /home/local/logstash-8.14.3/config/logstash-sample.conf &
4.3.2、服务启动
vim /lib/systemd/system/logstash.service
[Unit]
Description=logstash
Wants=network-online.target
After=network-online.target[Service]
User=elastic
ExecStart=/home/local/logstash-8.14.3/bin/logstash -f /home/local/logstash-8.14.3/config/logstash-sample.conf
# 设置为掉线自动重启,进程强制杀掉后会自动重新启动
Restart=always[Install]
WantedBy=multi-user.target
#加载服务
systemctl daemon-reload
#开机自启
systemctl enable logstash
#启动服务
systemctl start  logstash
#关闭服务
systemctl stop  logstash
#重启服务
systemctl restart  logstash
#查看状态
systemctl status logstash
#查看日志
journalctl  -f -u logstash

4.4、验证

进程查看

ps -ef | grep logstash

在这里插入图片描述
服务状态

systemctl status logstash

在这里插入图片描述

五、Kibana

5.1、安装

tar xvzf kibana-8.14.3-linux-x86_64.tar.gz

5.2、配置

vim kibana-8.14.3/config/kibana.yml
server.port: 5601
server.host: "10.10.30.34"
server.name: "myshell"
elasticsearch.hosts: ["http://10.10.30.34:9200"]
cat kibana-8.14.3/config/kibana.yml | grep -v ^# | grep -v ^$

在这里插入图片描述

5.3、启动

5.3.1、命令启动
chown -R  elastic:elastic kibana-8.14.3
su - elastic
nohup /home/local/kibana-8.14.3/bin/kibana &
5.3.2、服务启动
vim /lib/systemd/system/kibana.service
[Unit]
Description=kibana
Wants=network-online.target
After=network-online.target[Service]
User=elastic
ExecStart=/home/local/kibana-8.14.3/bin/kibana
# 设置为掉线自动重启,进程强制杀掉后会自动重新启动
Restart=always[Install]
WantedBy=multi-user.target
#加载服务
systemctl daemon-reload
#开机自启
systemctl enable kibana
#启动服务
systemctl start  kibana
#关闭服务
systemctl stop  kibana
#重启服务
systemctl restart  kibana
#查看状态
systemctl status kibana
#查看日志
journalctl  -f -u kibana

5.4、验证

5.4.1、网页验证
curl -I http://10.10.30.34:5601

在这里插入图片描述

5.4.2、进程查看
ps -ef | grep kibana

在这里插入图片描述
5.4.3、服务状态

systemctl status kibana

在这里插入图片描述

六、Filebeat

6.1、安装

tar xvzf filebeat-8.14.3-linux-x86_64.tar.gz

6.2、配置

vim /home/local/filebeat-8.14.3-linux-x86_64/filebeat.yml
filebeat.inputs:
- type: filestreamid: filestream-2-3enabled: truepaths:- /var/lib/docker/containers/67eafd4ef65765ea5c6cec77dccbb357764a984de9cc1c21c7131688d3cc3bf3/*.log- /var/log/*.logtags: ["mes3-log"]exclude_lines: ['^$']multiline:type: patternpattern: '^[0-9]{4}-[0-9]{4}-[0-9]{2}'negate: truematch: after
filebeat.config.modules:path: ${path.config}/modules.d/*.ymlreload.enabled: false
setup.template.settings:index.number_of_shards: 1
setup.kibana:
output.logstash:hosts: ["10.10.30.34:5044"]
processors:- add_host_metadata:when.not.contains.tags: forwarded- add_cloud_metadata: ~- add_docker_metadata: ~- add_kubernetes_metadata: ~
seccomp:default_action: allow syscalls:- action: allownames:- rseq
cat  /home/local/filebeat-8.14.3-linux-x86_64/filebeat.yml | grep -v ^# | grep -v ^$ | grep -v '#'

在这里插入图片描述

6.3、启动

直接使用命令启动

nohup /home/local/filebeat-8.14.3-linux-x86_64/filebeat -e -c /home/local/filebeat-8.14.3-linux-x86_64/filebeat.yml &

整成服务

vim /lib/systemd/system/filebeat.service
[Unit]
Description=filebeat
Wants=network-online.target
After=network-online.target[Service]
User=root
ExecStart=/home/local/filebeat-8.14.3-linux-x86_64/filebeat -e -c /home/local/filebeat-8.14.3-linux-x86_64/filebeat.yml
# 设置为掉线自动重启,进程强制杀掉后会自动重新启动
Restart=always[Install]
WantedBy=multi-user.target
#加载服务
systemctl daemon-reload
#开机自启
systemctl enable filebeat
#启动服务
systemctl start  filebeat
#关闭服务
systemctl stop  filebeat
#重启服务
systemctl restart  filebeat
#查看状态
systemctl status filebeat
#查看日志
journalctl  -f -u filebeat

6.4、验证

查看进程

ps -ef | grep filebeat

在这里插入图片描述
查看服务状态

systemctl status filebeat

在这里插入图片描述

七、Kibana网页配

7.1、Index Management

在这里插入图片描述

7.2、Data Views

在这里插入图片描述

7.3、Discover

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

springboot微信老人健康与饮食管理系统-计算机毕业设计源码82939

基于微信老人健康与饮食管理系统的小程序 摘 要 基于Spring Boot的微信老人健康与饮食管理系统的小程序致力于为老年人提供便捷的健康管理和饮食指导服务。该小程序整合了健康资讯浏览、食谱推荐、健康评估等功能模块,通过系统的设计与实现,旨在帮助老年…

古丝绸之路传闻二:十年败壳精灵显,一介穷神富贵来

古丝绸之路传闻二:十年败壳精灵显,一介穷神富贵来 (接上节:古丝绸之路传闻:分内功名匣里财,不关聪慧不关呆) 先别说闲话。且说众人带着经纪主人到船上发货,文若虚把之前的事情说了一…

AccessLog| 一款开源的日志分析系统

前言 ClkLog作为分析系列产品中的前端数据分析系统,通过采集前端应用数据进行用户行为分析。其社区版从23年9月发布至今已有近一年,商业版也上线快半年,感谢大家一直以来的关注和支持,ClkLog会继续做好产品升级与服务,…

Linux冯诺依曼体系、操作系统、进程概念、进程状态、进程切换

个人主页:仍有未知等待探索-CSDN博客 专题分栏:Linux 目录 一、冯诺依曼体系结构 二、操作系统 1、概念 2、为什么要有操作系统? 3、理解操作系统 1.管理的本质 2.管理的概念 3.操作系统结构图 4.为什么要有操作系统? 三…

ASP.NET Core Web深度探讨

ASP.NET Core作为现代Web开发的基石,以其跨平台、高性能和模块化设计的特点,成为许多开发者的首选框架。本文将深入探讨ASP.NET Core在Web开发中的应用,包括MVC、Razor Pages、Blazor等框架的使用,以及路由、中间件、身份认证、会…

golang websocket 手写研究机制

// 处理ws请求 func WsHandler(w http.ResponseWriter, r *http.Request, id string) {var conn *websocket.Connvar err errorpingTicker : time.NewTicker(time.Second * 10)conn, err wsupgrader.Upgrade(w, r, nil)if err ! nil {log.Printf("Failed to set websocke…

python-NLP:2词性标注与命名实体识别

文章目录 词性标注命名实体识别时间命名实体(规则方法)CRF 命名实体识别方法 词性标注 词性是词汇基本的语法属性,通常也称为词类。词性标注是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程。例如,表示…

Python机器学习实战:分类算法之逻辑回归-泰坦尼克号乘客生还预测

为了解决特定问题而进行的学习是提高效率的最佳途径。这种方法能够使我们专注于最相关的知识和技能,从而更快地掌握解决问题所需的能力。 目录 逻辑回归算法介绍 练习题 Python代码与分析 1、读入数据,观察数据情况 2、各属性与生还情况的关联 3、…

用Python做一个翻译软件,比上浏览器快100倍

简单的用Python来做一个翻译软件 开发环境 Python 3.10 Pycharm模块使用 requests -> pip install requests hashlib tkinter案例分为三部分: 1. 爬虫: 获取翻译接口, 请求获取翻译结果问题1: 接口抓包分析问题2: 请求需要写cookie问题3: 不同文本翻译, s加密参数2. 界面…

国科大作业考试资料-人工智能原理与算法-2024新编-第十二次作业整理

袋子里面有3个有偏差的硬币a、b和c,抛掷硬币正面朝上的概率分别是20%、60%和80%。从袋 子里随机取出一个硬币(3个硬币被取出的概率是相等的),并把取出的硬币抛掷3次,得到抛掷结 果依次是X1 , X2和 X3。 a. 画出对应的贝叶斯网络并定义必要的CPT表。 b. 如果抛掷结果是…

PDF解锁网站

https://smallpdf.com/cn/unlock-pdfhttps://smallpdf.com/cn/unlock-pdfhttps://www.freemypdf.comhttps://www.freemypdf.com

【python】python图书管理系统_普通用户+管理员菜单(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

vue vite开发环境https接口代理无法访问的问题

一、问题现象 本地请求是所有的接口前边只需要加一个前缀即可 —— /local/。比如登录接口就是 ‘/local/login’。于是去请求发现直接报错了,报错信息如下: 使用接口代理https接口请求,访问报错的问题,提示如下: http…

[代码审计]记一次简单的java代码审计

如果觉得该文章有帮助的,麻烦师傅们可以搜索下微信公众号:良月安全。点个关注,感谢师傅们的支持。 免责声明 本博客所发布的所有内容,包括但不限于信息、工具、项目以及文章,均旨在提供学习与研究之用。所有工具安全…

FastAPI(七十六)实战开发《在线课程学习系统》接口开发-- 课程详情

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 这个接口用户可以不登录,因为我们的课程随意浏览 那么我们梳理下这里的逻辑 1.根据课程id判断课程是否存在 2.课程需要返回课程的详情 3…

vue2 前端实现pdf在线预览(无插件版)

toFielDetail()是点击预览的方法,getOfficialFile是获取文件流的接口正常定义即可: export function getOfficialFile(query) {return request({url: /dataAsset/projectassess/getOfficialFile,method: get,params: query,}); } 调用接口的页面需要引用…

C# Task.WaitAll 的用法

目录 简介 1.WaitAll(Task[], Int32, CancellationToken) 2.WaitAll(Task[]) 3.WaitAll(Task[], Int32) 4.WaitAll(Task[], CancellationToken) 5.WaitAll(Task[], TimeSpan) 结束 简介 Task.WaitAll 是 C# 中用于并行编程的一个的方法,它属于 System.Threa…

DjangoRF-5-用户管理-users接口

1、创建模型,user模型之前创建过了,继承了原有的模型类 2、序列化器 在 users/serializers.py 模块中添加: class UserSerializer(serializers.ModelSerializer):class Meta:model Userfields [id, username, password, mobile, email, is…

【学习笔记】| 01 - 初识单片机

单片机(Single-Chip Microcomputer),又称单片微控制器,是一种集成电路芯片。它采用超大规模集成电路技术,将具有数据处理能力的中央处理器(CPU)、随机存储器(RAM)、只读存…

【简单讲解Perl语言】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…