安装部署elk7.10.0详细教程

  • 一、安装jdk 11环境
  • 二、安装elasticsearch 7.10.0
  • 三、安装kibana 7.10.0
  • 四、安装logstash 7.10.0
  • 五、安装ik7.10.0分词
  • 六、开启安全功能
    • 1. 开启用户名密码登录
    • 2. 开启es安全加密通信
    • 3. 开启Kibana安全功能
  • 七、注意事项和常见错误
  • 八、其它操作及命令

【背景】

  1. 整个elk安装是基于ubuntu 22.04和jdk 11环境。
  2. elk均在一台测试机器上安装,单节点服务。
  3. elk均采用 *.deb方式安装,需要服务器能联网。
  4. elk每个版本都要对应一致,避免冲突或者其它未知异常。

一、安装jdk 11环境

如果需要卸载其它版本jdk,命令如下

sudo apt-get purge openjdk-17-jdk*
sudo apt-get purge openjdk-17-jre*
# 最后检查下是否卸载完成
java -version
javac -version

开始安装jdk 11 环境,命令如下

#1. 更新apt 软件包仓库缓存
sudo apt update
#2. 安装 openjdk-11-jdk
sudo apt install -y openjdk-11-jdk
#3. 测试是否安装成功
java -version
javac -version

二、安装elasticsearch 7.10.0

  1. 安装elasticsearch
# 1. 下载安装包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-amd64.deb 
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.0-amd64.deb.sha512# 2.安装
shasum -a 512 -c elasticsearch-7.10.0-amd64.deb.sha512
# 输出应显示 elasticsearch-7.10.0-amd64.deb: OK 表示验证成功
sudo dpkg -i elasticsearch-7.10.0-amd64.deb# 3. 查看安装文件的权限,确保所有者都是elasticsearch,如果不是可以授权
sudo chown -R elasticsearch:elasticsearch /usr/share/elasticsearch
sudo chown -R elasticsearch:elasticsearch /var/lib/elasticsearch
sudo chown -R elasticsearch:elasticsearch /var/log/elasticsearch
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch
  1. 备份elasticsearch.yml配置文件
# 1.备份文件后修改elasticsearch.yml配置文件
sudo cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
sudo vim /etc/elasticsearch/elasticsearch.yml
  1. 修改elasticsearch.yml配置文件
# 设置集群名称
cluster.name: myes
# 设置节点名称
node.name: node-1
# 设置绑定地址(如果需要远程访问)
network.host: 0.0.0.0  # 注意:生产环境建议使用具体IP而非0.0.0.0
# 设置HTTP端口
http.port: 9200
# 发现设置(单节点配置)
discovery.type: single-node
  1. 启动并测试验证
    es启动需要用非root用户启动。
sudo systemctl daemon-reload #重新加载服务配置文件
sudo systemctl enable elasticsearch.service  #开启自启动
sudo systemctl start elasticsearch.service    #启动
sudo systemctl stop elasticsearch.service 	 #停止
sudo systemctl restart elasticsearch.service  #重启
sudo systemctl status elasticsearch.service  #查看服务状态

如下图表示已经正常启动服务了
在这里插入图片描述
6. 访问验证
如若需要可安装curl命令:sudo apt install curl
服务器访问:sudo curl http://localhost:9200
【注意】如果远程访问链接需要防火墙开发端口9200/9300,详见命令如下:防火墙操作命令
在这里插入图片描述
以上基本安装完成,后续可根据需要设置安全访问配置。因es需要较高的系统资源如下配置6、7可根据需求修改。

  1. 修改配置文件 limits.conf、sysctl.conf,可根据需求修改
# 1. 编辑文件 limits.conf
sudo vim /etc/security/limits.conf
# 添加以下内容(设置 nofile 和 nproc 限制):
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft nproc 4096
elasticsearch hard nproc 4096# 2. 编辑 sysctl.conf
sudo vim /etc/sysctl.conf
# 添加以下内容(调整虚拟内存和最大映射数):
vm.max_map_count=262144# 3. 使配置生效
sudo sysctl -p
  1. 修改jvm.options 文件,可根据需求修改
sudo vim /etc/elasticsearch/jvm.options
# 修改以下内容,7.10.0版本中默认1G,8.x版本默认更大
-Xms1g # 初始堆大小 
-Xmx1g # 最大堆大小
  1. 修改完成后重启验证

重启服务:sudo systemctl restart elasticsearch.service
查看状态: sudo systemctl status elasticsearch.service

在这里插入图片描述
访问链接:sudo curl http://localhost:9200
在这里插入图片描述

三、安装kibana 7.10.0

  1. 下载并安装文件
# 1. 下载安装文件
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-amd64.deb 
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-amd64.deb.sha512# 2. 安装
shasum -a 512 -c kibana-7.10.0-amd64.deb.sha512 
# 输出应显示 kibana-7.10.0-amd64.deb: OK
sudo dpkg -i kibana-7.10.0-amd64.deb
  1. 先备份后在修改kibana.yml文件
sudo cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bak
sudo vim /etc/kibana/kibana.yml # 如下就是kibana.yml要修改的参数
# 设置服务器端口和地址
server.port: 5601
server.host: "0.0.0.0"  # 允许远程访问,生产环境建议使用具体IP
# 设置 Elasticsearch 连接地址
elasticsearch.hosts: ["http://localhost:9200"]  # 指向你的 ES 地址
# 中文汉化
i18n.locale: "zh-CN"# 可选:设置 Elasticsearch 用户名和密码(如果 ES 启用了安全认证)
# elasticsearch.username: "kibana_system"
# elasticsearch.password: "your_password"
  1. 其它配置
# kibana默认1G内存,可根据实际情况修改
sudo vim /etc/default/kibana
NODE_OPTIONS="--max-old-space-size=512"  # 调整为512MB
  1. 启动服务验证
sudo systemctl daemon-reload
sudo systemctl enable kibana.service
sudo systemctl start kibana.service
sudo systemctl resrart kibana.service
sudo systemctl status kibana.service

在这里插入图片描述
在这里插入图片描述
【注意】远程访问需要防火墙开放端口5601
以上基本安装完成,根据需要设置安全认证和用户名密码。目前尚未开启,所以配置文件也注释了。

四、安装logstash 7.10.0

因logstash文件篇幅较长单独编写【ubuntu 22.04 安装部署logstash 7.10.0教程】

五、安装ik7.10.0分词

  1. 安装ik分词
# 安装命令
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/7.10.0
  1. 检测es插件文件权限
    安装完成后重新授权es的文件夹,如果elasticsearch的文件权限出现变动则重新授权,否则es启动可能会失败。
    授权命令:sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch/
    在这里插入图片描述
  2. 重启启动es验证es和ik分词
 sudo systemctl restart elasticsearch.service sudo systemctl status elasticsearch.service 

如下是验证ik分词示意图
ik分词前
ik分词后
如果有其它分词需求,可以手动分词处理

六、开启安全功能

1. 开启用户名密码登录

  1. 首先在es中配置文件中添加如下配置,然后重启服务
# 编辑配置文件
sudo vim /etc/elasticsearch/elasticsearch.yml
# 添加配置参数,开启登录
xpack.security.enabled: true
# 重启服务
sudo systemctl restart elasticsearch
  1. 设置内置用户密码
# 系统内置用户列举如下
# apm_system, beats_system ,elastic ,kibana_system, logstash_system, remote_monitoring_user
# 设置用户密码命令
# 交互式设置-手动设置
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
# 系统生成-自动设置(推荐生产环境)
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
  1. 验证测试es用户名密码
    验证命令:sudo curl -u elastic:密码 http://localhost:9200

  2. 配置kibana 使用内置用户连接es服务

# 修改kibana配置
sudo vim /etc/kibana/kibana.yml
# 设置用户名密码
elasticsearch.username: "kibana_system"
elasticsearch.password: "your_password"
# 重启kibana服务
sudo systemctl restart kibana.service
  1. 验证访问kibana页面
    访问:http://ip:5601
    用户名密码:elastic/密码

  2. 隐藏式用户名密码登录
    大致理解为,如果不想将用户名和密码放入文件中,就将它们存储在密钥库中,实际类似将用户名密码加密存储到密钥中,
    在配置文件采用参数占位符的样式。

# 操作命令,[--allow-root] 是因为直接执行出现警告报错,需要允许root才能执行。有兴趣的小伙伴可以去除该命令试试。
sudo /usr/share/kibana/bin/kibana-keystore create --allow-root
sudo /usr/share/kibana/bin/kibana-keystore add elasticsearch.username --allow-root
sudo /usr/share/kibana/bin/kibana-keystore add elasticsearch.password --allow-root# 查看存储的秘钥名称
./bin/kibana-keystore list# 重新授权,文件权限变动可以不操作
sudo chown -R kibana:kibana /etc/kibana/# 添加以下配置到kibana.yml中,告诉 Kibana 从密钥库读取凭证
elasticsearch.username: ${elasticsearch.username}
elasticsearch.password: ${elasticsearch.password}

2. 开启es安全加密通信

开启前访问链接是 http://localhost:9200,开启安全加密后是 https://localhost:9200。保证数据在传输过程中安全性。

#1. 生成证书
# 直接回车,不输入密码,证书生成后的位置:/usr/share/elasticsearch/
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil ca
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12#2. 将证书移位置并赋权
sudo mkdir /etc/elasticsearch/certs/
sudo mv /usr/share/elasticsearch/*.p12 /etc/elasticsearch/certs/
sudo chown -R elasticsearch:elasticsearch /etc/elasticsearch/certs/elastic*.p12#3. 配置证书路径到配置文件中,如下是elasticsearch.yml配置项
# 开启安全访问(用户名密码)
xpack.security.enabled: true
# 开启加密通信(集群节点之间)
xpack.security.transport.ssl.enabled: true 
xpack.security.transport.ssl.verification_mode: certificate 
# [certs/elastic-certificates.p12] 该路径采用相对路径,也可以使用绝对路径
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12# HTTP 安全设置(https,外部客户端与集群通信)
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.http.ssl.truststore.path: certs/elastic-certificates.p12#4. 验证测试
sudo curl -k -u elastic:密码 https://localhost:9200
# 或者页面访问:https://localhost:9200

3. 开启Kibana安全功能

TODO - 待完善

#1. 将es的证书复制到kibana目录然后授权
sudo mkdir /etc/kibana/certs
sudo cp /etc/elasticsearch/certs/elastic-* /etc/kibana/certs
sudo chown -R kibana:kibana /etc/kibana/certs#2. 修改kibana配置文件后重启
# 连接Elasticsearch的URL(使用HTTPS)
elasticsearch.hosts: ["https://localhost:9200"]
# 信任ES证书
elasticsearch.ssl.certificateAuthorities: ["/etc/kibana/certs/elastic-stack-ca.p12"]
elasticsearch.ssl.verificationMode: certificate #3. 验证测试
#页面访问:http://ip:5601

七、注意事项和常见错误

  1. es中 常见的是文件授权问题,对elasticsearch没有赋权,如下授权
  2. 查看日志地址: sudo tail -100f /var/log/logstash/logstash-plain.log
  3. 路径或文件授权: sudo chown -R elasticsearch:logstash /etc/elasticsearch/

八、其它操作及命令

  1. 用户登录操作命令
#== 将edy用户加入到elasticsearch组
sudo usermod -aG elasticsearch edy#== ubuntu修改root用户登录,将如下配置项修改为yes,再重启ssh
# 编辑
sudo vim /etc/ssh/sshd_config
# 修改配置项
PermitRootLogin yes
# 重启
systemctl restart ssh
  1. 卸载jdk其它版本
#== 卸载jdk其它版本
sudo apt-get purge openjdk-17-jdk*
sudo apt-get purge openjdk-17-jre*
#运行测试:java -version
  1. 查询日志排错命令
#== 查询日志方便排错
sudo journalctl -u elasticsearch -f
sudo journalctl -u kibana -f
sudo journalctl -u logstash -f
  1. 卸载logstash操作命令
#== 卸载 通过deb安装的logstash
#先停止: 
sudo systemctl stop logstash
#=apt安装卸载:sudo apt remove --purge logstash(忽略)
#=deb安装的卸载:
sudo dpkg -r logstash
sudo dpkg --purge logstash
#=手动删除文件保证卸载干净
sudo rm -rf /etc/logstash /var/lib/logstash /var/log/logstash  /usr/share/logstash  
#= 手动再次删除用户和组
sudo deluser logstash
sudo delgroup logstash
sudo apt autoremove
#=验证是否卸载完成
dpkg -l | grep logstash   
ls -l /etc/logstash
  1. 防火墙操作命令
# 查看状态
sudo ufw status
# 启用防火墙
sudo ufw enable
# 开发单个端口,如开启端口22
sudo ufw allow 22/tcp
# 或直接使用服务名称(如 ssh、http、https)
sudo ufw allow ssh
# 开放端口范围(如 6000-6007)
sudo ufw allow 6000:6007/tcp
# 允许特定ip访问
sudo ufw allow from 192.168.1.100 to any port 22
# 通过端口删除规则
sudo ufw delete allow 22
# 重置防火墙

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87503.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87503.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/87503.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术文章: 基板的吸水率

PCB基板或覆铜板的吸水率是一个重要的性能指标,它衡量了覆铜板在特定条件下(通常是浸水后)吸收水分的能力,通常用指定条件下吸水后与吸水前相比,质量增加的百分比来表示。当材料暴露扎起在潮湿空气中或浸没在水中时其抵…

九日集训第三天

目录 搜索旋转排序数组 搜索旋转排序数组|| 寻找旋转排序中的数组最小值 爬楼梯 斐波那契数 第N个泰波那契数 差的绝对值为K的数对数目 猜数字 拿硬币 山峰数组的峰顶索引 搜索旋转排序数组 class Solution { public:int search(vector<int>& nums, int t…

CppCon 2017 学习:folly::Function A Non-copyable Alternative to std::function

你说的内容是关于 C 中 可调用类型&#xff08;Callable Types&#xff09; 的基础知识&#xff0c;我帮你理清并补充理解。 Callable Types&#xff08;可调用类型&#xff09;简介 C 中任何可以用 () 括号操作符“调用”的对象&#xff0c;都叫做 可调用类型。典型包括&…

PyTorch 中Tensor常用数据结构(int, list, numpy array等)互相转换和实战示例

在 PyTorch 中&#xff0c;tensor 是一种强大且灵活的数据结构&#xff0c;可以与多种 Python 常用数据结构&#xff08;如 int, list, numpy array 等&#xff09;互相转换。下面是详细解释和代码示例&#xff1a; 1. Tensor ↔ int / float 转为 int / float&#xff08;前提…

计算机网络与数据通信基础

第一章 计算机网络概述 1. 计算机网络的核心概念 1.1 定义 将 地理分散 的、具有 独立处理能力 的计算机系统&#xff08;主机/Host&#xff09;&#xff0c;通过 传输介质 与 网络设备 互连&#xff0c;在 网络协议 和 软件 支持下实现 资源共享 与 数据通信 的系统。 关键术…

【统计术语】

文章目录 基础概念术语基期与现期增长量与增长率环比与同比 比重术语平均数术语特殊增长术语其他常用术语 基础概念术语 基期与现期 基期&#xff1a;作为基础参照的时期&#xff0c;一般指过去的时间 现期&#xff1a;与基期对比的时期&#xff0c;一般指现在的时间 示例&am…

XXE(XML外部实体注入)详解

目录 一、XXE漏洞简介 二、XML详解 (一) XML文档结构 1. 文档声明 2. XML文档类型定义&#xff08;DTD&#xff09; 3. XML文档元素 4. XML文档示例 三、XXE漏洞类型 四、XXE漏洞挖掘技巧 五、XXE漏洞危害 (一) 文件读取 (二) 内网探测 1. 端口探测 2. 主机存活探…

深入解析JVM字节码执行引擎

JVM 字节码执行引擎。它是 JVM 核心组件之一&#xff0c;负责实际执行加载到内存中的字节码指令。你可以将它想象成 JVM 的“CPU”。 核心职责&#xff1a; 加载待执行的字节码&#xff1a; 从方法区&#xff08;元空间&#xff09;获取已加载类的方法字节码。创建和管理栈帧…

华为OD机试-MELON的难题-DFS(JAVA 2025A卷)

题意是从N快雨花石中找出最少拿出雨花石的块数&#xff0c;使得雨花石可以均分&#xff0c;直接使用dfs解决此类组合问题 package com.example.demo.bean;import java.util.Arrays; import java.util.LinkedList; import java.util.Scanner;public class YuHuaStone {public s…

鸿蒙数据库操作

一、使用关系型数据库实现数据持久化&#xff0c;需要获取一个RdbStore&#xff0c;其中包括建库、建表、升降级等操作。 const STORE_CONFIG: relationalStore.StoreConfig {name: AnyOffice.db, // 数据库文件名securityLevel: relationalStore.SecurityLevel.S1, // 数据库…

基于ARM SoC的半导体测试

ARM SoC&#xff08;System on Chip&#xff09; 是一种集成了多个关键计算组件的单片系统芯片&#xff0c;广泛应用于移动设备、嵌入式系统、物联网&#xff08;IoT&#xff09;和半导体测试设备等领域。它的核心设计理念是“高度集成”&#xff0c;将处理器、内存、外设接口等…

JavaEE->多线程2

目录 一、线程安全&#xff08;重点&#xff09; 1.线程安全演示 2.线程不安全的原因 1.线程是抢占式执行的&#xff08;执行顺序是随机的&#xff09; 2.多个线程同时修改了同一个变量 3.原子性 4.内存可见性 5.指令重排序&#xff08;有序性&#xff09; 二、解决线…

Flutter TCP通信

启动TCP服务 Future<void> startServer() async {final server await ServerSocket.bind(InternetAddress.anyIPv4, 12345);print(Server listening on ${server.address}:${server.port});server.listen((Socket socket) {print(Client connected: ${socket.remoteAddr…

flask拆分计划

两个启动链接&#xff0c;看日志提示是因为2次启动&#xff0c;一次是database&#xff0c;一次是xmind2&#xff0c;去掉一次就可以&#xff0c;如何去掉一次&#xff1f; 这里启动也调用了一次&#xff0c;所以测试环境注释掉&#xff0c;如下图&#xff0c;也就调用了一次

【生活】ECMO原理、作用、费用及使用方法

博客目录 一、ECMO 是什么&#xff1f;二、ECMO 的作用1. 替代肺功能&#xff08;氧合与二氧化碳清除&#xff09;2. 替代心脏功能&#xff08;循环支持&#xff09;3. 为其他治疗争取时间4. 用于心肺复苏&#xff08;ECPR&#xff09; 三、ECMO 的费用1. 设备使用费2. 耗材费用…

Profinet转EtherCAT网关模块怎么用:案例分享

在某制造工厂西门子S7-1200 PLC中&#xff0c;存在一个技术难题&#xff0c;即伺服驱动器与可编程逻辑控制器&#xff08;PLC&#xff09;之间的通讯不兼容问题。具体而言&#xff0c;PLC采用的是PROFINET通讯协议&#xff0c;而伺服EtherCAT协议驱动器则需要EtherCAT协议进行数…

什么是 NLP-NLP基础知识体系的系统认知

NLP基础知识体系的系统认知 一、引言 今天的学习内容集中于自然语言处理&#xff08;NLP&#xff09;的基本概念、发展历程、核心任务及文本表示技术。通过这一学习过程&#xff0c;我对NLP这门学科有了更加系统和深入的认识&#xff0c;并且理解了NLP技术的广泛应用及其复杂…

数据结构 学习 链表 2025年6月14日08点01分

单向链表: 线性数据结构 由一系列节点组成 每个节点包含: 数据部分:存储实际数据 指针部分:储存指向下一个节点的引用 特点1,每个节点只有一个指向下一个节点的指针 特点2,只能从头到尾 单向遍历 特点3,不需要连续的内存空间 特点4,插入和删除效率高 特点5,随机访问 效率低 …

使用 Kubernetes 部署 PHP 留言板应用(含 Redis 架构)

使用 Kubernetes 部署 PHP 留言板应用&#xff08;含 Redis 架构&#xff09; 文章目录 使用 Kubernetes 部署 PHP 留言板应用&#xff08;含 Redis 架构&#xff09;教程概述技术架构特点 准备工作环境要求 Redis 数据库部署Redis 主从架构原理创建 Redis 领导者 Deployment部…

MATLAB提供的两种画误差矩阵的函数

MATLAB在统计学和机器学习工具包中提供了两种画误差矩阵&#xff08;Confusion matrix&#xff09;的函数。 figure; plotconfusion(YValidation,YPred)figure; cm confusionchart(YValidation,YPred) cm.Title Confusion Matrix for Validation Data; cm.RowSummary row-n…