1. 首页 > 软件安装教程 > 正文

elk安装-elk 7.17.10 for RHEL 9安装配置及升级迁移详细过程

1. 硬件环境检查

在安装elk之前,必须对服务器的硬件环境进行全面检查,确保满足elk 7.17.10的最低要求。更多学习教程www.fgedu.net.cn

# 检查内存大小
# free -h
total used free shared buff/cache available
Mem: 32G 2.1G 28G 8.5M 1.8G 29G
Swap: 16G 0B 16G

# 检查磁盘空间
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 16G 0 16G 0% /dev
tmpfs 16G 0 16G 0% /dev/shm
tmpfs 16G 8.5M 16G 1% /run
tmpfs 16G 0 16G 0% /sys/fs/cgroup
/dev/sda1 50G 15G 36G 30% /
/dev/sdb1 500G 20G 480G 4% /data

# 检查CPU核心数
# nproc
8

# 检查系统架构
# uname -m
x86_64

生产环境建议:ELK Stack建议内存32GB以上,CPU 8核心以上,磁盘空间500GB以上。数据目录建议使用SSD,以提高性能。

2. 操作系统检查

elk 7.17.10支持RHEL 7.3+、RHEL 8.0+、RHEL 9.0+等操作系统。本文以RHEL 9为例。学习交流加群风哥微信: itpux-com

# 检查操作系统版本
# cat /etc/redhat-release
Red Hat Enterprise Linux release 9.0 (Plow)

# 检查内核版本
# uname -r
5.14.0-70.22.1.el9_0.x86_64

# 检查SELinux状态
# getenforce
Disabled

# 关闭SELinux(如未关闭)
# vi /etc/selinux/config
SELINUX=disabled

# 检查防火墙状态
# systemctl status firewalld

# 开放elk相关端口
# firewall-cmd –permanent –add-port=9200/tcp
# firewall-cmd –permanent –add-port=9300/tcp
# firewall-cmd –permanent –add-port=5601/tcp
# firewall-cmd –reload

3. 安装准备

在安装elk之前,需要进行一系列准备工作,包括安装Java、配置系统参数等。

# 安装Java
# dnf install -y java-11-openjdk-devel

# 检查Java版本
# java -version
openjdk version “11.0.16”
OpenJDK Runtime Environment (build 11.0.16+8)
OpenJDK 64-Bit Server VM (build 11.0.16+8, mixed mode)

# 安装必要的依赖
# dnf install -y wget tar

# 调整系统参数
# 修改系统限制
# vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 4096
* hard nproc 4096

# 修改内核参数
# vi /etc/sysctl.conf
vm.max_map_count=262144

# 使内核参数生效
# sysctl -p

风哥提示:ELK Stack安装需要Java环境,建议使用Java 11。同时需要调整系统参数以满足ELK组件的运行要求。

4. elk软件安装

现在开始安装elk 7.17.10软件,按照以下步骤进行。

4.1 安装Elasticsearch

# 下载Elasticsearch
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.10-linux-x86_64.tar.gz

# 解压安装包
# tar -xzvf elasticsearch-7.17.10-linux-x86_64.tar.gz
# mv elasticsearch-7.17.10 /opt/elasticsearch

# 创建用户
# useradd elasticsearch
# chown -R elasticsearch:elasticsearch /opt/elasticsearch

# 创建数据和日志目录
# mkdir -p /var/lib/elasticsearch /var/log/elasticsearch
# chown -R elasticsearch:elasticsearch /var/lib/elasticsearch /var/log/elasticsearch

4.2 安装Logstash

# 下载Logstash
# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.10-linux-x86_64.tar.gz

# 解压安装包
# tar -xzvf logstash-7.17.10-linux-x86_64.tar.gz
# mv logstash-7.17.10 /opt/logstash

# 创建数据和日志目录
# mkdir -p /var/lib/logstash /var/log/logstash
# chown -R elasticsearch:elasticsearch /var/lib/logstash /var/log/logstash

4.3 安装Kibana

# 下载Kibana
# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.10-linux-x86_64.tar.gz

# 解压安装包
# tar -xzvf kibana-7.17.10-linux-x86_64.tar.gz
# mv kibana-7.17.10-linux-x86_64 /opt/kibana

# 设置权限
# chown -R elasticsearch:elasticsearch /opt/kibana

5. 数据库配置

配置ELK Stack的核心配置文件。

# 编辑elasticsearch.yml配置文件
# vi /opt/elasticsearch/config/elasticsearch.yml

cluster.name: elk-cluster
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node

# 配置JVM参数
# vi /opt/elasticsearch/config/jvm.options
-Xms16g
-Xmx16g

# 编辑logstash.yml配置文件
# vi /opt/logstash/config/logstash.yml

path.data: /var/lib/logstash
path.logs: /var/log/logstash

# 配置JVM参数
# vi /opt/logstash/config/jvm.options
-Xms4g
-Xmx4g

# 编辑kibana.yml配置文件
# vi /opt/kibana/config/kibana.yml

server.port: 5601
server.host: “0.0.0.0”
elasticsearch.hosts: [“http://localhost:9200”]

# 启动Elasticsearch服务
# su – elasticsearch -c “/opt/elasticsearch/bin/elasticsearch -d”

# 启动Logstash服务
# su – elasticsearch -c “/opt/logstash/bin/logstash -d”

# 启动Kibana服务
# su – elasticsearch -c “/opt/kibana/bin/kibana –daemon”

# 设置开机自启
# vi /etc/systemd/system/elasticsearch.service
[Unit]
Description=Elasticsearch
After=network.target

[Service]
Type=simple
User=elasticsearch
ExecStart=/opt/elasticsearch/bin/elasticsearch
Restart=on-failure

[Install]
WantedBy=multi-user.target

# vi /etc/systemd/system/logstash.service
[Unit]
Description=Logstash
After=elasticsearch.service

[Service]
Type=simple
User=elasticsearch
ExecStart=/opt/logstash/bin/logstash
Restart=on-failure

[Install]
WantedBy=multi-user.target

# vi /etc/systemd/system/kibana.service
[Unit]
Description=Kibana
After=elasticsearch.service

[Service]
Type=simple
User=elasticsearch
ExecStart=/opt/kibana/bin/kibana
Restart=on-failure

[Install]
WantedBy=multi-user.target

# 启用服务
# systemctl daemon-reload
# systemctl enable elasticsearch logstash kibana
# systemctl start elasticsearch logstash kibana

6. 测试验证

启动ELK Stack并验证功能正常。学习交流加群风哥QQ113257174

# 检查Elasticsearch状态
# curl http://localhost:9200
{
“name” : “node-1”,
“cluster_name” : “elk-cluster”,
“cluster_uuid” : “abcdef123456”,
“version” : {
“number” : “7.17.10”,
“build_flavor” : “default”,
“build_type” : “tar”,
“build_hash” : “1234567”,
“build_date” : “2023-02-08T15:21:16.449963995Z”,
“build_snapshot” : false,
“lucene_version” : “8.11.1”,
“minimum_wire_compatibility_version” : “6.8.0”,
“minimum_index_compatibility_version” : “6.0.0-beta1”
},
“tagline” : “You Know, for Search”
}

# 检查Kibana状态
# curl http://localhost:5601

# 检查Logstash状态
# ps aux | grep logstash

# 测试ELK集成
# 创建Logstash配置文件
# vi /opt/logstash/config/test.conf

input {
stdin {}
}
output {
elasticsearch {
hosts => [“localhost:9200”]
index => “test-%{+YYYY.MM.dd}”
}
stdout { codec => rubydebug }
}

# 运行Logstash测试
# /opt/logstash/bin/logstash -f /opt/logstash/config/test.conf
# 输入测试数据,然后按Ctrl+D

7. 备份配置

配置ELK Stack备份策略,确保数据安全。

# 创建备份目录
# mkdir -p /backup/elk
# chown -R elasticsearch:elasticsearch /backup/elk

# 备份Elasticsearch数据
# curl -X PUT “localhost:9200/_snapshot/my_backup” -H “Content-Type: application/json” -d ‘{
“type”: “fs”,
“settings”: {
“location”: “/backup/elk”
}
}’

# 创建快照
# curl -X PUT “localhost:9200/_snapshot/my_backup/snapshot_1”

# 备份配置文件
# cp -r /opt/elasticsearch/config /backup/elk/
# cp -r /opt/logstash/config /backup/elk/
# cp -r /opt/kibana/config /backup/elk/

# 配置自动备份
# 创建备份脚本
# vi /root/backup_elk.sh

#!/bin/bash

DATE=$(date +%Y%m%d)

# 创建Elasticsearch快照
curl -X PUT “localhost:9200/_snapshot/my_backup/snapshot_$DATE”

# 备份配置文件
cp -r /opt/elasticsearch/config /backup/elk/config_$DATE/
cp -r /opt/logstash/config /backup/elk/config_$DATE/
cp -r /opt/kibana/config /backup/elk/config_$DATE/

# 清理30天前的备份
find /backup/elk -name “snapshot_*” -mtime +30 -delete
find /backup/elk -name “config_*” -mtime +30 -delete

# 给脚本添加执行权限
# chmod +x /root/backup_elk.sh

# 添加到crontab
# crontab -e

# 添加以下内容(每天凌晨2点执行备份)
0 2 * * * /root/backup_elk.sh

生产环境建议:备份策略应包括每日全量备份,备份文件应存储在不同的物理位置,定期测试备份恢复以确保备份有效性。

8. 升级迁移

ELK Stack的升级和迁移过程。

# 升级ELK Stack版本
# 1. 备份配置和数据
# /root/backup_elk.sh

# 2. 停止服务
# systemctl stop elasticsearch logstash kibana

# 3. 升级Elasticsearch
# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.10-linux-x86_64.tar.gz
# tar -xzvf elasticsearch-7.17.10-linux-x86_64.tar.gz
# mv /opt/elasticsearch /opt/elasticsearch-old
# mv elasticsearch-7.17.10 /opt/elasticsearch
# cp -r /opt/elasticsearch-old/config/* /opt/elasticsearch/config/
# chown -R elasticsearch:elasticsearch /opt/elasticsearch

# 4. 升级Logstash
# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.10-linux-x86_64.tar.gz
# tar -xzvf logstash-7.17.10-linux-x86_64.tar.gz
# mv /opt/logstash /opt/logstash-old
# mv logstash-7.17.10 /opt/logstash
# cp -r /opt/logstash-old/config/* /opt/logstash/config/
# chown -R elasticsearch:elasticsearch /opt/logstash

# 5. 升级Kibana
# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.10-linux-x86_64.tar.gz
# tar -xzvf kibana-7.17.10-linux-x86_64.tar.gz
# mv /opt/kibana /opt/kibana-old
# mv kibana-7.17.10-linux-x86_64 /opt/kibana
# cp -r /opt/kibana-old/config/* /opt/kibana/config/
# chown -R elasticsearch:elasticsearch /opt/kibana

# 6. 启动服务
# systemctl start elasticsearch logstash kibana

# 7. 验证升级结果
# curl http://localhost:9200
# curl http://localhost:5601

# 数据库迁移
# 从旧版本ELK Stack迁移到ELK Stack 7.17.10

# 1. 在旧系统上创建快照
# curl -X PUT “old-server:9200/_snapshot/my_backup/snapshot_migration”

# 2. 将备份文件复制到新系统
# scp -r /backup/elk/* new-server:/backup/elk/

# 3. 在新系统上注册快照仓库
# curl -X PUT “localhost:9200/_snapshot/my_backup” -H “Content-Type: application/json” -d ‘{
“type”: “fs”,
“settings”: {
“location”: “/backup/elk”
}
}’

# 4. 恢复快照
# curl -X POST “localhost:9200/_snapshot/my_backup/snapshot_migration/_restore”

# 5. 复制配置文件
# scp user@old-server:/opt/elasticsearch/config/elasticsearch.yml /opt/elasticsearch/config/
# scp user@old-server:/opt/logstash/config/logstash.yml /opt/logstash/config/
# scp user@old-server:/opt/kibana/config/kibana.yml /opt/kibana/config/

# 6. 启动服务
# systemctl start elasticsearch logstash kibana

# 7. 验证迁移结果
# curl http://localhost:9200
# curl http://localhost:5601

风哥提示:ELK Stack升级和迁移前,建议先在测试环境进行演练,确保升级过程顺利。同时,备份所有重要数据,以防万一。

9. 总结

本文详细介绍了elk 7.17.10 for RHEL 9的安装、配置、升级和迁移过程。通过按照本文的步骤操作,可以成功部署ELK Stack服务并确保其稳定运行。from:www.itpux.com

生产环境建议:
– 定期备份ELK Stack数据和配置,建议每天执行一次全备份
– 监控ELK Stack性能,定期检查服务状态和日志
– 定期更新ELK Stack版本,确保系统安全性和性能
– 合理规划ELK Stack存储,避免空间不足
– 配置合适的参数,优化ELK Stack性能
– 对于生产环境,建议部署多节点集群,提高可用性和可靠性

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息