elk搭建

在这里插入图片描述

一、部署准备

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.94node-1ElasticSearch、Kibana、Logstash
10.20.3.95node-2ElasticSearch、Logstash
10.20.3.96node-3ElasticSearch、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*\[(?<threadName>([\s\S]*))\]\s*%{LOGLEVEL:level}\s*%{JAVAFILE:class}\s*\:\s*%{NUMBER:lineNumber}\s*\-\s*(?<info>([\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@123456"
      }
     }else{
     elasticsearch {
         hosts => ["10.20.3.94:9200","10.20.3.95:9200","10.20.3.96:9200"]
         user => elastic
         password => "Sti@123456"
        }
}
  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

常见问题

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值