elk搭建

elk搭建一 部署准备 1 准备三台服务器 OS Centos7 9 规格为 4C8G100Gdisk 为 10 20 3 94 10 20 3 95 10 20 3 96 账号 elk 密码 Sti 服务器 ip 节点名软件列表 10 20 3 94node 1ElasticSear Kibana Logstash10 20 3 95node 2ElasticSear Logstash10 20 3 96node 3ElasticSe

在这里插入图片描述

一、部署准备

1、准备三台服务器
  1. OS:Centos7.9
  2. 规格为:4C 8G 100G disk
  3. IP为:10.20.3.94 ,10.20.3.95 ,10.20.3.96
  4. 账号 elk 密码 Sti…
服务器ip 节点名 软件列表
10.20.3.94 node-1 ElasticSearch、Kibana、Logstash
10.20.3.95 node-2 ElasticSearch、Logstash
10.20.3.96 node-3 ElasticSearch、Logstash

注:

  • 节点名自定义
  • Kibana此处为单机部署
2、创建文件夹和上传安装包

(1) 三台服务器都执行一遍该命令

mkdir -p /elk cd /elk mkdir -p /usr/local/es/ mkdir -p /var/data/es/{ 
   节点名}/ mkdir -p /var/log/es/{ 
   节点名}/ # 创建数据文件夹 mkdir -p /var/data/es/{ 
   节点名}/ 

注:

  • {节点名}为上图,每台服务器自定义的节点名

(2)开放文件夹权限(没有操作权限启动es会报错)

chmod u+x /elk/elasticsearch-7.16.1/bin chown -R elk /usr/local/es/ # 将ES数据存储文件夹权限授权给elk用户 chown -R elk /var/data/es/{ 
   节点名}/ chown -R elk /var/log/es/{ 
   节点名}/ chown -R elk /var/data/es/{ 
   节点名}/ 

(3) 上传文件

使用ftp或sftp工具将elasticsearch、logstash分别上传到三台服务的/elk目录下

将kibana上传到10.20.3.94服务器/elk目录下

二、安装ES

1、解压安装包

三台服务器都执行

# 进入文件夹 cd /elk # 解压es tar -zxvf elasticsearch-7.16.1-linux-x86_64.tar.gz; 

2、es配置JDK

(1)三台服务器分别执行以下命令

#进入es目录 cd /elk/elasticsearch-7.16.1/bin #编辑配置文件 vim elasticsearch 

(2)添加以下内容

#配置为elasticsearch自带jdk export JAVA_HOME=/elk/elasticsearch-7.16.1/jdk export PATH=$JAVA_HOME/bin:$PATH #添加jdk判断 if [ -x "$JAVA_HOME/bin/java" ]; then JAVA="/elk/elasticsearch-7.16.1/jdk/bin/java" else JAVA=`which java` fi 

3、生成证书

# 进入es安装目录 cd /elk/elasticsearch-7.16.1 # 调用程序 ./bin/elasticsearch-certutil ca ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12 cd /elk/elasticsearch-7.16.1/config 
# 复制文件到新创建的文件夹 cp /elk/elasticsearch-7.16.1/elastic-certificates.p12 /elk/elasticsearch-7.16.1/config/certs 

注: 将生成的证书存到三台服务同样的路径下

三台服务器都执行一遍

# 创建文件夹 mkdir certs 
# 修改目录权限给当前用户 sudo chown -R elk /elk/* 

4、修改es配置文件

(1) 打开配置文件

#进入elasticsearch的config配置目录 cd /elk/elasticsearch-7.16.1/config/; #修改配置文件 vim elasticsearch.yml; 

(2) 修改配置文件为以下内容

三台服务器的es除了节点名不同之外,其他信息都相同

#配置文件  集群名称 cluster.name: my-application  集群节点名称 node.name: { 
   节点名}  ES默认 只允许本地 127.0.0.1 和[::1] 访问  也可以设置成0.0.0.0 允许所有IP主机访问  如果不配置就默认认为是开发者模式,如果配置不正确会写入警告但是能正确运行  如果配置了就会认为进入了生产环境, 如果配置不正确就会升级为异常,ES无法正确启动。 network.host: 0.0.0.0  默认ES节点端口9200,如果是伪集群(在一台服务器上搭建集群),需要修改。 http.port: 9200  设置数据存放路径,建议修改这个路径到ES的安装文件夹外面,避免ES升级误删掉这个文件夹 path.data: /var/data/es/{ 
   节点名}/  设置日志存放路径,建议修改这个路径到ES的安装文件夹外面,避免ES升级误删掉这个文件夹 path.logs: /var/log/es/{ 
   节点名}/  发现其他节点主机配置 这里配置的是ES所在服务器的公网IP地址 discovery.seed_hosts: ["10.20.3.94:9300","10.20.3.95:9300","10.20.3.96:9300"]  哪些节点可以被选举为主节点配置 cluster.initial_master_nodes: ["node-1", "node-2","node-3"] http.cors.enabled: true http.cors.allow-origin: "*" http.cors.allow-headers: Authorization,X-Requested-With,Contet-Length,Content-Type xpack.security.enabled: true xpack.security.authc.api_key.enabled: true xpack.license.self_generated.type: basic xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: /elk/elasticsearch-7.16.1/config/certs/elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: /elk/elasticsearch-7.16.1/config/certs/elastic-certificates.p12 

注:

  • {节点名}为上图,每台服务器自定义的节点名

5、开放服务器端口

(1)、三台服务器依次执行开放端口命令

firewall-cmd --zone=public --add-port=9200/tcp --permanent; firewall-cmd --zone=public --add-port=9300/tcp --permanent; firewall-cmd --reload; 

(2)、查看端口开放情况(可跳过)

firewall-cmd --list-all; 

6、测试启动

(1) 启动观察

cd /elk/elasticsearch-7.16.1 
./bin/elasticsearch 

(2) 设置访问密码(需三台es都运行中)

任一服务器执行一次,根据控制台提示依次输入密码

./bin/elasticsearch-setup-passwords interactive 

如果启动正常则改为后台运行启动

8、后台运行

nohup ./bin/elasticsearch > /elk/elasticsearch-7.16.1/elasticsearch.log 2>&1 & 

如果要查看运行日志执行以下命令

tail -f /elk/elasticsearch-7.16.1/elasticsearch.log 

三、安装Kibana

1、解压安装包

在服务器10.20.3.94执行

# 进入文件夹 cd /elk # 可视化界面可单机部署 tar -zxvf kibana-7.16.1-linux-x86_64.tar.gz; 

2、打开Kibana配置文件

#进入配置文件目录 cd /elk/kibana-7.16.1-linux-x86_64/config; #编辑配置文件 vim kibana.yml; 

3、修改配置文件

将配置文件修改为一下内容

i18n.locale: "zh-CN" # Kibana 默认监听端口5601,如果需要改变就修改这个配置 server.port: 5601 # # Kibana 部署服务器IP,如果是单网卡配置0.0.0.0即可,如果是多网卡需要配置IP server.host: 10.20.3.94 # # 配置服务器的名称,可自定义 server.name: rs-kibana # # 配置ES的集群节点地址 elasticsearch.hosts: ["http://10.20.3.94:9200","http://10.20.3.95:9200","http://10.20.3.96:9200"] # # 创建一个kibana索引 kibana.index: ".kibana" elasticsearch.username: "elastic" # 在上文自己配置的密码 elasticsearch.password: "Sti..." xpack.encryptedSavedObjects: encryptionKey: "min-32-byte-long-strong-encryption-key" 

4、开启10.20.3.94服务器端口

firewall-cmd --zone=public --add-port=5601/tcp --permanent; firewall-cmd --reload; 

5、查看端口开放情况(可跳过)

firewall-cmd --list-all; 

6、测试启动

# 进入kibana文件夹 cd /elk/kibana-7.16.1-linux-x86_64/ # 执行程序 ./bin/kibana 

测试访问http://10.20.3.94:5601,查看是否正常访问

7、后台运行

如果启动正常修改为后台运行,10.20.3.94服务器执行以下命令

# 进入kibana文件夹 cd /elk/kibana-7.16.1-linux-x86_64/ nohup ./bin/kibana > /elk/kibana-7.16.1-linux-x86_64/kibana.log 2>&1 & 

四、安装Logstash

三台服务器依次执行以下步骤

1、解压安装包

# 进入文件夹 cd /elk # 解压logstash tar -zxvf logstash-7.16.2-linux-x86_64.tar.gz; 

2、打开配置文件

#进入logstash安装目录 cd /elk/logstash-7.16.2/config #新建一个配置文件 logstash-simple.conf vim logstash-simple.conf 

3、将配置文件修改为以下内容

input { 
    beats { 
    port => 5044 } } filter { 
    # 自定义序列化内容  grok { 
    match => { 
    "message" => "\s*%{TIMESTAMP_ISO8601:time}\s*\[(? 
   
     ([\s\S]*))\]\s*%{LOGLEVEL:level}\s*%{JAVAFILE:class}\s*\:\s*%{NUMBER:lineNumber}\s*\-\s*(? 
    
      ([\s\S]*))" 
     
    } } date { 
    match => [ "timestamp" , "yyyy-MM-dd HH:mm:ss" ] } } output { 
    # log_type为下文FileBeat传递过来的自定义参数 if[fields][log_type]{ 
    elasticsearch { 
    hosts => ["10.20.3.94:9200","10.20.3.95:9200","10.20.3.96:9200"] index => "%{[fields][log_type]}-%{+YYYY.MM.dd}" user => elastic password => "Sti@" } }else{ 
    elasticsearch { 
    hosts => ["10.20.3.94:9200","10.20.3.95:9200","10.20.3.96:9200"] user => elastic password => "Sti@" } } stdout { 
    codec => rubydebug } } 

4、开放Logstash端口

firewall-cmd --zone=public --add-port=5044/tcp --permanent; firewall-cmd --reload; 

5、查看端口开放情况(可跳过)

firewall-cmd --list-all; 

6、测试启动

./elk/logstash-7.16.2/bin/logstash -f ./elk/logstash-7.16.2/config/logstash-simple.conf 

观察日志看是否正常运行

7、后台运行

如果正常运行,修改运行方式为后台运行

执行以下命令

cd / nohup ./elk/logstash-7.16.2/bin/logstash -f ./elk/logstash-7.16.2/config/logstash-simple.conf > /elk/logstash-7.16.2/logstash.log 2>&1 & 

8、查看实时运行日志(可跳过)

tail -f /elk/logstash-7.16.2/logstash.log 

Window安装FileBeat

注: 此处用本机电脑来模拟服务器项目日志采集

1、下载window版本filebeat-7.16.1

2、修改配置文件为以下内容

文件: filebeat.yml

filebeat.inputs: - type: log enabled: true paths: #- /var/log/*.log - E:\rs_business\logs\* fields: # 自定义业务参数 log_type: dc_test filebeat.config.modules: path: ${ 
   path.config}/modules.d/*.yml reload.enabled: falsechanges setup.template.settings: index.number_of_shards: 1 setup.kibana: output.logstash: hosts: ["10.20.3.94:5044","10.20.3.95:5044","10.20.3.96:5044"] loadbalance: true processors: - add_host_metadata: when.not.contains.tags: forwarded - add_cloud_metadata: ~ - add_docker_metadata: ~ - add_kubernetes_metadata: ~ 

3、测试启动

filebeat -e -c filebeat.yml 

Linux安装FileBeat

1、上传安装包到服务器

2、解压安装包

tar -zxvf filebeat-7.16.1-linux-x86_64.tar.gz; 

3、打开配置文件

cd /elk/filebeat-7.16.1-linux-x86_64/ vim filebeat.yml 

4、将配置文件修改为以下内容

filebeat.inputs: - type: log enabled: true paths: # 要采集的日志目录 - /var/log/*.log fields: # 自定义业务参数 log_type: dc_test filebeat.config.modules: path: ${ 
   path.config}/modules.d/*.yml reload.enabled: falsechanges setup.template.settings: index.number_of_shards: 1 setup.kibana: output.logstash: hosts: ["10.20.3.94:5044","10.20.3.95:5044","10.20.3.96:5044"] loadbalance: true processors: - add_host_metadata: when.not.contains.tags: forwarded - add_cloud_metadata: ~ - add_docker_metadata: ~ - add_kubernetes_metadata: ~ 

5、测试启动

cd /elk/filebeat-7.16.1-linux-x86_64/ ./filebeat -e -c filebeat.yml 

查看日志是否运行正常,运行正常修改为后台运行

6、后台运行

cd / nohup ./elk/filebeat-7.16.1-linux-x86_64/filebeat -e -c /elk/filebeat-7.16.1-linux-x86_64/filebeat.yml /elk/filebeat-7.16.1-linux-x86_64/filebeat.log 2>&1 & 

7、查看实时运行日志(可跳过)

tail -f /elk/filebeat-7.16.1-linux-x86_64/filebeat.log 

常见问题

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177233.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午7:59
下一篇 2026年3月26日 下午8:00


相关推荐

  • mysql读写分离怎么实现(数据库读写分离实现)

    为什么要实现mysql读写分离大型网站为了解决大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器来处理如此多的数据库连接操作,数据库必然会崩溃,特别是数据丢失的话,后果更是不堪设想。这时候,我们会考虑如何减少数据库的连接,下面就进入我们今天的主题。​利用主从数据库来实现读写分离,从而分担主数据库的压力。在多个服…

    2022年4月17日
    185
  • js遍历map javaScript遍历map

    js遍历map javaScript遍历mapvarmap name 华仔 realname 刘德华 for varkey

    2026年3月26日
    2
  • 防止页面url缓存中 ajax中post 请求的处理方式

    一般我们在开发中经常会用到Ajax请求,异步发送请求,然后获取我们想要的数据,在Ajax中使用Get请求数据不会有页面缓存的问题,而使用POST请求可是有时候页面会缓存我们提交的信息,导致我们发送的异步请求不能正确的返回我们想要的数据。

    2022年2月24日
    45
  • 60mph和kmh换算_mph和kmh换算(mph换算器)

    60mph和kmh换算_mph和kmh换算(mph换算器)mph是英里每时的意思吗?如何换算成千米每时?mph是米/小时的意思mitersperhour也可写成m/hAkm/h=A*1000m/hmph是英里每时的意思吗?如何换算成千米每时?MILESPERHOUR英里每小时英里的计速单位,1MPH=1.609KM/H玩极品飞车12,上面的速度是mph,怎么换算啊1英里=5280英尺=63360英寸=1…

    2022年6月28日
    69
  • 电磁场与电磁波实验三 熟悉Mathematica软件在电磁场领域的应用

    电磁场与电磁波实验三 熟悉Mathematica软件在电磁场领域的应用假设一个铜环(或其他导电环)放在电磁铁的一极上。当电流接通时(如图中红色的电路颜色所示),环会飞离磁铁。随时间变化的磁场会在环内产生循环电流。这将不会发生,如果一个径向狭缝是通过环,从而防止任何电流循环。为了可视化,这个动作是用慢动作来显示的,圆盘在落回地面之前是停在半空中的。此demo展示了电偶极子或赫兹偶极子的电磁场、电场和磁场,相关的能量密度和坡印廷矢量分布。此demo可以改变直流或静态偶极场的偶极矩、频率和时间。该模型显示了极化正弦波的垂直电、磁分量。五、赫兹偶极子的电磁场。微信公众号创享日记。..

    2025年7月7日
    4
  • JS达到Web指定保存的和打印功能的内容

    JS达到Web指定保存的和打印功能的内容

    2022年1月12日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号