
一、部署准备
1、准备三台服务器
- OS:Centos7.9
- 规格为:4C 8G 100G disk
- IP为:10.20.3.94 ,10.20.3.95 ,10.20.3.96
- 账号 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
