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

devtools/2024/9/22 16:18:19/

一、简介

1.1、软件简介

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

1.1.1、Elasticsearch简介

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

Logstash_10">1.1.2、Logstash简介

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

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

Kibana_16">1.1.3、Kibana简介

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

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

Filebeat_22">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_248">四、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_344">五、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_440">六、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_556">七、Kibana网页配

7.1、Index Management

在这里插入图片描述

7.2、Data Views

在这里插入图片描述

7.3、Discover

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


http://www.ppmy.cn/devtools/86096.html

相关文章

妈吖,看过这个大厂的oracle主键自增,我的信心暴增!信创,国产数据库也能行。

创作不易 只因热爱!! 热衷分享,一起成长! “你的鼓励就是我努力付出的动力” 1.数据库oracle自增主键字段思维导图 在Oracle数据库中,可以通过创建序列(SEQUENCE)来实现自增功能。但也可以不在数据库中实现,而是通过程…

必应快速收录自动提交链接到IndexNow代码

近来发现bing的搜索量也越来越大了,为了更好的对必应进行seo优化,我们可以把最新的网站文章链接提交给必应IndexNow,以此来加快必应快速收录网站文章链接,那么我们我如何使用php代码来实现提交网站文章链接到必应IndexNow呢&#…

Python爬虫实战案例(爬取图片)

爬取图片的信息 爬取图片与爬取文本内容相似,只是需要加上图片的url,并且在查找图片位置的时候需要带上图片的属性。 这里选取了一个4K高清的壁纸网站(彼岸壁纸https://pic.netbian.com)进行爬取。 具体步骤如下: …

protoactor-go 框架一般用于构建什么程序?

protoactor-go 框架一般用于构建高并发、分布式和事件驱动的应用程序。这种框架特别适用于微服务架构、实时系统、游戏开发以及需要处理大量并发请求和复杂交互的场景。 以下是 protoactor-go 框架通常用于的一些场景: 1. **微服务架构**:在微服务架构中…

C++《类和对象》(中)

一、 类的默认成员函数介绍二、构造函数 构造函数名与类同名内置类型与自定义类型析构函数拷贝构造函数 C《类和对象》(中) 一、 类的默认成员函数介绍 默认成员函数就是⽤⼾没有显式实现,编译器会⾃动⽣成的成员函数称为默认成员函数。 那么我们主要学习的是1&…

Typescript学习笔记(2.0)

ts编译选项 tsc app.ts -w 参数-w,就是对app.ts进行监视,每次该文件改变时就会自动编译 **:任意目录 *:任意文件 接口 接口用来定义一个类结构,用来定义一个类中应该包含哪些属性和方法,同时接口也可以当做类型…

ros2--launch--xml定义

定义规范 官网 node的属性 type ros2没有这个type属性。

redis放在三层架构中的哪一层

文章目录 Redis放在controller还是service以下是一些常见的考虑因素:一、数据访问频率二、数据共享性三、数据更新频率四、数据的一致性要求 Redis放在controller还是service 在三层架构中,将 Redis 数据放置在 Controller 层还是 Service 层&#xff0c…