当前位置: 首页 > news >正文

openEuler 22.03 LTS 部署 ELK(Elasticsearch+Logstash+Kibana)完整教程

一、环境准备(必做基础配置)

1. 系统要求
  • 服务器配置:建议 2 核 4G 以上(最低 1 核 2G,生产环境需更高配置)
  • 系统版本:openEuler 22.03 LTS(已测试兼容)
  • 权限:使用root用户操作(后续会创建专用用户)
2. 安装依赖(JDK 11)

ELK 7.x 及以上版本必须依赖 JDK 11,欧拉系统可通过dnf安装:

# 检查是否已安装JDK
java -version# 若未安装,执行以下命令
dnf install -y java-11-openjdk java-11-openjdk-devel# 配置JAVA_HOME环境变量
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk" >> /etc/profile
source /etc/profile  # 生效配置# 验证JDK安装成功(显示版本信息)
java -version
3. 系统优化(解决 ELK 启动限制)
(1)关闭 SELinux(ELK 对 SELinux 兼容性较差)
# 临时关闭(立即生效)
setenforce 0# 永久关闭(重启后生效)
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
(2)开放必要端口

ELK 需要以下端口通信:

  • Elasticsearch:9200(HTTP)、9300(节点间通信)
  • Kibana:5601(Web 界面)
  • Logstash:5044(接收日志,如 Filebeat 数据)
# 启动防火墙(若未启动)
systemctl start firewalld
systemctl enable firewalld# 开放端口并永久生效
firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --zone=public --add-port=5044/tcp --permanent# 重新加载防火墙规则
firewall-cmd --reload
(3)优化内核参数(Elasticsearch 必需)
# 编辑内核配置文件
vim /etc/sysctl.conf# 添加以下内容(按i进入编辑模式,编辑后按Esc+:wq保存)
vm.max_map_count=262144  # Elasticsearch需要的虚拟内存映射数(必须设置)
fs.file-max=655360        # 系统最大文件描述符数量# 使配置生效
sysctl -p
(4)调整用户资源限制(避免文件句柄不足)
# 编辑限制配置文件
vim /etc/security/limits.conf# 添加以下内容(允许所有用户打开更多文件和进程)
* soft nofile 65536  # 软限制:最多打开65536个文件
* hard nofile 65536  # 硬限制:最多打开65536个文件
* soft nproc  4096   # 软限制:最多4096个进程
* hard nproc  4096   # 硬限制:最多4096个进程
(5)创建数据和日志目录
# 统一存储ELK数据和日志
mkdir -p /data/elk/{es_data,es_logs,ls_data,ls_logs,kb_logs}
mkdir -p /var/log/elk# 赋予读写权限(后续会指定给专用用户)
chmod -R 775 /data/elk /var/log/elk

二、安装 Elasticsearch(日志存储核心)

Elasticsearch 是分布式搜索引擎,负责存储和索引日志数据。

1. 下载并解压安装包
# 版本选择7.17.0(稳定版,与欧拉兼容)
ELK_VERSION="7.17.0"
ES_URL="https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-${ELK_VERSION}-linux-x86_64.tar.gz"# 下载到/tmp目录
wget -P /tmp $ES_URL# 解压到/usr/local目录
tar -zxvf /tmp/elasticsearch-${ELK_VERSION}-linux-x86_64.tar.gz -C /usr/local/# 重命名为elasticsearch(简化路径)
mv /usr/local/elasticsearch-${ELK_VERSION} /usr/local/elasticsearch
2. 创建专用用户(禁止 root 启动 ES)

Elasticsearch 默认禁止使用root用户启动,需创建专用用户:

# 创建es用户
useradd es# 赋予ES目录和数据目录权限给es用户
chown -R es:es /usr/local/elasticsearch /data/elk /var/log/elk
3. 配置 Elasticsearch

编辑主配置文件elasticsearch.yml

# 进入配置目录
cd /usr/local/elasticsearch/config# 编辑配置文件
vim elasticsearch.yml

添加以下核心配置(覆盖默认值,按实际需求调整):

cluster.name: elk-cluster  # 集群名称(单节点也需配置)
node.name: node-1          # 节点名称(单节点直接用node-1)
path.data: /data/elk/es_data  # 数据存储路径(之前创建的目录)
path.logs: /data/elk/es_logs  # 日志存储路径
network.host: 0.0.0.0      # 允许所有IP访问(默认只允许本地)
http.port: 9200            # HTTP访问端口
discovery.seed_hosts: ["127.0.0.1"]  # 单节点配置(集群需填其他节点IP)
cluster.initial_master_nodes: ["node-1"]  # 初始主节点(单节点填当前节点名)
bootstrap.memory_lock: false  # 测试环境关闭(生产环境建议开启,需额外配置)
4. 启动 Elasticsearch
# 切换到es用户(必须非root)
su - es# 后台启动(-d表示后台运行)
/usr/local/elasticsearch/bin/elasticsearch -d# 退出es用户,回到root
exit
5. 验证 Elasticsearch 启动成功
# 等待30秒左右(首次启动较慢),执行以下命令检查状态
curl http://localhost:9200

若返回类似以下信息,说明启动成功:

json

{"name" : "node-1","cluster_name" : "elk-cluster","cluster_uuid" : "xxxxxxx","version" : {"number" : "7.17.0","build_flavor" : "default","build_type" : "tar","build_hash" : "xxxxxxx","build_date" : "2022-01-28T08:36:04.875279988Z","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"
}

三、安装 Logstash(日志采集与过滤)

Logstash 负责采集日志、清洗过滤(如提取关键字),再输出到 Elasticsearch。

1. 下载并解压安装包
ELK_VERSION="7.17.0"
LS_URL="https://artifacts.elastic.co/downloads/logstash/logstash-${ELK_VERSION}-linux-x86_64.tar.gz"# 下载到/tmp
wget -P /tmp $LS_URL# 解压到/usr/local
tar -zxvf /tmp/logstash-${ELK_VERSION}-linux-x86_64.tar.gz -C /usr/local/# 重命名
mv /usr/local/logstash-${ELK_VERSION} /usr/local/logstash
2. 配置 Logstash(采集系统日志示例)

Logstash 通过配置文件定义 “输入→过滤→输出” 流程,创建一个基础配置:

# 进入Logstash配置目录
cd /usr/local/logstash/config# 创建配置文件(如logstash.conf)
vim logstash.conf

添加以下内容(采集/var/log/messages系统日志,输出到 ES):

input {# 输入:从文件采集日志file {path => "/var/log/messages"  # 欧拉系统日志路径start_position => "beginning"  # 从文件开头开始读取sincedb_path => "/data/elk/ls_data/sincedb"  # 记录读取位置(避免重复采集)}
}filter {# 过滤:用grok提取日志中的时间、主机、消息内容grok {match => { "message" => "%{TIMESTAMP_ISO8601:log_time} %{HOSTNAME:host} %{GREEDYDATA:log_message}" }}
}output {# 输出:发送到Elasticsearchelasticsearch {hosts => ["localhost:9200"]  # 本地ES地址index => "system-logs-%{+YYYY.MM.dd}"  # 按日期创建索引(如system-logs-2023.10.01)}# 同时输出到控制台(调试用,生产可删除)stdout { codec => rubydebug }
}
3. 启动 Logstash
# 后台启动(指定配置文件)
nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/logstash.conf > /var/log/elk/logstash.log 2>&1 &
4. 验证 Logstash 启动成功
# 查看进程是否存在
ps aux | grep logstash | grep -v grep# 查看日志(无报错即为正常)
tail -f /var/log/elk/logstash.log

四、安装 Kibana(日志可视化界面)

Kibana 是 Web 界面工具,用于查询、分析和可视化 Elasticsearch 中的日志。

1. 下载并解压安装包
ELK_VERSION="7.17.0"
KB_URL="https://artifacts.elastic.co/downloads/kibana/kibana-${ELK_VERSION}-linux-x86_64.tar.gz"# 下载到/tmp
wget -P /tmp $KB_URL# 解压到/usr/local
tar -zxvf /tmp/kibana-${ELK_VERSION}-linux-x86_64.tar.gz -C /usr/local/# 重命名
mv /usr/local/kibana-${ELK_VERSION} /usr/local/kibana
2. 配置 Kibana(连接 Elasticsearch)
# 进入配置目录
cd /usr/local/kibana/config# 编辑配置文件
vim kibana.yml

添加以下核心配置:

server.host: "0.0.0.0"  # 允许外部访问(默认只允许本地)
server.port: 5601       # Web访问端口
elasticsearch.hosts: ["http://localhost:9200"]  # 连接的ES地址
kibana.index: ".kibana"  # Kibana自身数据存储的ES索引
logging.dest: "/data/elk/kb_logs/kibana.log"  # Kibana日志路径
3. 授权 Kibana 目录(非 root 用户启动)
# 赋予es用户权限(与ES同用户,避免权限问题)
chown -R es:es /usr/local/kibana
4. 启动 Kibana
# 切换到es用户
su - es# 后台启动
nohup /usr/local/kibana/bin/kibana > /var/log/elk/kibana.log 2>&1 &# 退出es用户
exit
5. 验证 Kibana 启动成功
# 等待30秒左右,访问Web界面(替换为服务器IP)
# 浏览器打开:http://服务器IP:5601

若显示 Kibana 登录界面(7.x 版本默认无需登录),说明启动成功。

五、验证 ELK 日志流转(关键测试)

1. 确认 ES 中已生成日志索引
# 查看ES中的索引(应包含system-logs-当前日期)
curl http://localhost:9200/_cat/indices?v
2. 在 Kibana 中查看日志
  1. 浏览器访问http://服务器IP:5601,进入 Kibana 界面。
  2. 左侧菜单进入 Management → Stack Management → Index Patterns
  3. 点击 Create index pattern,输入索引匹配规则(如system-logs-*),点击 Next step
  4. 选择时间字段(如@timestamp),点击 Create index pattern
  5. 左侧菜单进入 Discover,即可看到/var/log/messages中的系统日志。

六、常见问题排查

  1. Elasticsearch 启动失败

    • 查看日志:tail -f /data/elk/es_logs/elk-cluster.log
    • 常见原因:内存不足(编辑/usr/local/elasticsearch/config/jvm.options,调小-Xms-Xmx为 1G)、权限不足(确保es用户拥有目录权限)。
  2. Kibana 无法访问

    • 检查防火墙是否开放 5601 端口,服务器安全组是否放行。
    • 查看日志:tail -f /var/log/elk/kibana.log,确认是否连接 ES 成功。
  3. Logstash 无日志输出

    • 检查输入文件路径是否正确(/var/log/messages是否存在)。
    • 查看 Logstash 日志:tail -f /var/log/elk/logstash.log,排查过滤规则错误。

通过以上步骤,即可在欧拉 Linux 上完成 ELK 的部署。如需采集应用日志(如 Java 应用、Nginx),只需修改 Logstash 的input.path为应用日志路径即可.

http://www.dtcms.com/a/618007.html

相关文章:

  • 算法精要:高效解题思路与技巧
  • 百度站长平台链接贵阳有哪些可以制作网站的公司
  • ASP4644双PLL频率同步架构:多相降压系统的工程验证
  • 深度剖析Elasticsearch数据写入与读取:从分片同步到核心组件协同
  • 网站图片添加alt标签做下载类网站赚钱吗
  • WebStrom 打开Uniapp API 的语法提示
  • 使用ADO将excel表内容加载到mssql表中的长度问题
  • 5G技术:引领智能时代的通信革命
  • 5G技术与人工智能:重塑工业互联网的未来
  • 设计模式实战篇(六):装饰器模式 —— 让系统具备“可生长能力”的架构思想
  • 专业信息门户网站定制注册网站是哪个部门
  • 企业没有网站怎么对外做公示个人网站建设月租抵30元
  • Android应用中使用Kotlin集成OkHttp库:从基础使用到深层原理解析
  • Kafka客户端参数(一)
  • 用 Rust 从零开发一个隐写工具
  • 建设营销型网站的优势顺的品牌网站建设
  • 团雾、结冰、大风——高速公路的“隐形杀手”:智慧气象预警如何为您的路网安全保驾护航
  • PC 端常用 UI 组件库
  • 工业制品网站建设建程网是干嘛的
  • CS144 知识笔记二
  • 化妆品网站源码asp个人网站做淘宝客商城
  • 实战:使用 Python(Requests/Scrapy)接入京东商品详情 API 并解析数据结构
  • python学生成绩登记系统软件测试报告
  • GitHub Actions 和 GitLab CI/CD
  • 【Linux日新月异(七)】CentOS 7磁盘资源管理深度指南:从分区到性能调优
  • 企业网站pv是什么佛山推广优化公司
  • 机器学习常见问题之numpy维度问题
  • Redis 原理与实验
  • 网站开发职责与要求软件开发专业好吗
  • 【Linux驱动开发】Linux 设备驱动中的总线机制