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

news2024/12/23 9:06:26

一、简介

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: false
  keystore.path: certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: certs/transport.p12
  truststore.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: filestream
  id: filestream-2-3
  enabled: true
  paths:
    - /var/lib/docker/containers/67eafd4ef65765ea5c6cec77dccbb357764a984de9cc1c21c7131688d3cc3bf3/*.log
    - /var/log/*.log
  tags: ["mes3-log"]
  exclude_lines: ['^$']
  multiline:
    type: pattern
    pattern: '^[0-9]{4}-[0-9]{4}-[0-9]{2}'
    negate: true
    match: after
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.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: allow
    names:
    - 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.coloradmin.cn/o/1951784.html

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

相关文章

magento2 安装win环境和linux环境

win10 安装 安装前提,php,mysql,apach 或nginx 提前安装好 并且要php配置文件里,php.ini 把错误打开 display_errorsOn开始安装 检查环境 填写数据库信息 和ssl信息,如果ssl信息没有,则可以忽略 填写域名和后台地址&#xff0…

花几千上万学习Java,真没必要!(二十九)

1、基本数据类型包装类: 测试代码1: package apitest.com; //使用Integer类的不同方法处理整数。 //将字符串转换为整数(parseInt)和Integer对象(valueOf), //将整数转换回字符串(…

Linux下使用gdb进行调试入门级

个人名片: 🎓作者简介:嵌入式领域优质创作者🌐个人主页:妄北y 📞个人QQ:2061314755 💌个人邮箱:[mailto:2061314755qq.com] 📱个人微信:Vir2025WB…

网络通信---UDP

前两天做了个mplayer项目,今日继续学习 网络内容十分重要!!! 1.OSI七层模型 应用层:要传输的数据信息,如文件传输,电子邮件等(最接近用户,看传输的内容类型到底是什么) …

Linux使用mjpg-streamer进行图像传输

图像传输是一项在Linux操作系统中比较常见的一个操作,在视频图传时,一般是采用MJPG-streamer来进行图像传输,本文就以树莓派为例子,来示范一个图像传输。 1.树莓派的摄像头激活 首先更新树莓派 sudo apt-get update sudo apt-ge…

【Java基础语法】字符修改,以及equals的用法

前言: 小编这里将上一期String类型进行了补充,添加了字符串的修改,以及equals的用法内容,和hashcode的使用;上一期:http://t.csdnimg.cn/ijiM6 1.字符串的修改 在上一期中我们说到字符串是不能被修改的&am…

详细分析 Bladex中的swagger-resources资源未授权访问的解决方法

目录 1. 问题所示2. 原理分析2.1 RouterFunctionConfiguration 类2.2 SwaggerResourceHandler 类3. 解决方法3.1 网关过滤3.2 去除配置3.3 代码修改4. 彩蛋1. 问题所示 从而也导致资源接口文件泄露 https://xxx/swagger-resources 或者 ip:端口号/swagger-resources 2. 原理分…

matlab笔记 - 最小二乘法拟合直线的原理与实现

最小二乘法拟合直线原理与实现 一、引言二、原理概述1. 建模思路2.误差函数3.求解最优参数 三、matlab实现最小二乘法拟合直线1.直接代码实现2.MATLAB内置函数实现 四、扩展统计学与回归分析经济学工程学图像处理机器学习 一、引言 最小二乘法(Least Squares Metho…

ElasticSearch搜索

ES搜索 elastic search 一套搜索引擎技术,主要技术栈包括 Elasticsearch:用于数据存储、计算和搜索 Kibana:用于数据可视化 在数据库模糊查询中,因为不走索引,所以效率很低,而在搜索引擎中,不仅效率高,而且即使出现个别错字,或者用拼音搜索,甚至用同…

自定义Observal返回数据

在写Angular项目的时候,很多都是用的Observal,但是有时候我们在接口还没好 ,或者处理有些接口我们想要通过方法在observal返回特定的数据,这个时候要我们可以如下处理: 方法一、通过of返回 方法二:通过Observable的cr…

【Rust】所有权OwnerShip

什么是所有权 rust使用由编译器检查的一些规则构成的所有权系统来管理内存。且这不会影响程序的运行效率。 所有权规则 rust中每一个每一个值都有一个owner。在同一时刻,只能有一个owner。当这个owner超过范围,则该值会被丢弃。 String类型 为什么需…

Unity UGUI 之 自动布局组件

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本,请注意分别 1.什么是自动布局组件…

vue3 使用Mock

官网: http://mockjs.com/ 安装 npm install mockjs -Dsteps1: main.js 文件引入 import /api/mock.jssteps2: src/api/mock.js import Mock from mockjs import homeApi from ./mockData/home /*** 1.拦截的路径:mock拦截了正常NetWork/网络请求,数据正常响应* 2.方法* …

22 Python常用内置函数——枚举

enumerate() 函数用来枚举可迭代对象中的元素,返回可迭代的 enumerate 对象,其中每个元素都是包含索引和值的元组。 print(enumerate(abcd)) print(list(enumerate(abcd))) # 枚举字符串中的元素 print(list(enumerate([hello, world]))) # 枚举列表中…

Mongodb文档和数组的通配符索引

学习mongodb,体会mongodb的每一个使用细节,欢迎阅读威赞的文章。这是威赞发布的第97篇mongodb技术文章,欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题,欢迎在文章下面点个赞,或者关…

前端canvas——赛贝尔曲线

曲线之美,不在于曲线本身,而在于用的人。 所以就有了这期赛贝尔曲线。 新规矩,先上个GIT。 效果图 开局一张图,代码全靠编。 代码 画骨 先想着怎么画一个心形吧,等你想好了,就知道怎么画了。 首先就还…

SearchGPT vs Google SearchGPT vs Perplexity 2024年AI搜索引擎评价测评

medium: https://medium.com/p/f7c9481efa50 SearchGPT User ReviewsSearchGPT VS GoogleSearchGPT VS Perplexity AI搜索引擎领域越来越多玩家参与,比如Google的Gemini OpenAI发布的SearchGPT以及Perplexity AI。OpenAI刚刚发布和SearchGPT,希望通过搜…

Internet Download Manager2024功能特点优势分析及使用建议及注意事项

1. Internet Download Manager简介 2. 功能特点 3. 优势分析 4. 专家评价 5. 使用建议及注意事项 6. 常见问题解答 7. 用户反馈及案例分享 8. IDM下载器的未来发展趋势 文章: 在互联网快速发展的今日,人们对于网络资源的获取和利用越来越频繁。无论…

智能合约在能源行业中的应用:促进可再生能源的发展与利用

随着全球能源需求的增长和环境保护意识的提升,可再生能源作为替代传统能源的重要选择,正逐步成为能源供应的主流。本文将探讨智能合约在能源行业中的应用,特别是如何通过智能合约促进可再生能源的发展与利用。 可再生能源的重要性与挑战 可再…

亚信安慧AntDB数据库与用友Yon BIP商业创新平台完成兼容性互认证

近日,湖南亚信安慧科技有限公司(简称:亚信安慧)自主研发的AntDB数据库产品,与用友网络科技股份有限公司(简称:用友网络)的Yon BIP用友商业创新平台完成了兼容性互认证。经过双方技术…