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

ubuntu 22.04 安装部署elk(elasticsearch/logstash/kibana) 7.10.0详细教程

安装部署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
# 重置防火墙

相关文章:

  • 【JVM】- 内存模式
  • 如何在Windows上使用qemu安装ubuntu24.04服务器?
  • 【Elasticsearch】文档(二):更新
  • 变幻莫测:CoreData 中 Transformable 类型面面俱到(四)
  • Matlab数字信号处理——基于GUI的ECG信号处理平台设计与实现
  • 解决docker下的Linux系统调用GPU失败
  • STM32 HAL库学习 RNG篇
  • 国产操作系统-银河麒麟本地化部署Ollama国产开源的AI大模型Qwen3
  • 华为云Flexus+DeepSeek征文 | 基于华为云ModelArts Studio平台与Cherry Studio搭建知识库问答助手
  • 【运维系列】【ubuntu22.04】安装Docker
  • Matlab | matlab中100个常用函数全面解析
  • Spring事务简介
  • wordpress外贸独立站搭建步骤
  • 构建多智能体(AI Agent)的高效协作平台——CrewAI探索
  • 从代码学习深度学习 - 词的相似性和类比任务 PyTorch版
  • 电池预测 | 第32讲 Matlab基于CNN-BiLSTM-Attention的锂电池剩余寿命预测,附锂电池最新文章汇集
  • 【系统设计【3】】系统设计面试框架:从理论到实践的完整指南
  • Tomcat 配置双击启动
  • java 设计模式_行为型_19命令模式
  • Django 5.2.3 构建的图书管理系统
  • 商城网站制作教程/小红书seo排名规则
  • 好网站开发策划要求/seo专员简历
  • 男科医院网站建设策略/关键词优化资讯
  • 网站制作需要多长时间/小程序开发制作
  • 新乡建设公司网站/网站制作企业
  • 那些论坛网站做的比较好/seo专员工作内容