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


【背景】

  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
# 重置防火墙
<think>嗯,用户想在Ubuntu上实现DeepSeek 671b的分布式本地部署。首先,我需要回忆一下相关的部署步骤。根据之前提供的引用[^1],Deepseek-R1支持MySQL和PostgreSQL作为后端数据库,并且示例中提到了安装MySQL的步骤,比如使用`sudo apt-get install mysql-server -y`。这可能意味着在部署过程中,数据库的安装和配置是一个重要环节。 接下来,我应该考虑分布式部署需要哪些组件。通常分布式系统需要多台服务器、网络配置、负载均衡、数据库集群等。对于DeepSeek 671b,可能需要分步骤进行:环境准备、依赖安装、分布式配置、服务部署和验证。 用户的操作系统是Ubuntu,所以需要确保所有步骤都适用于Ubuntu系统。比如安装Docker、Kubernetes用于容器编排,或者使用Ansible进行自动化配置。同时,需要检查DeepSeek 671b的官方文档是否有特定的分布式部署要求,比如特定的端口、配置文件或服务发现机制。 另外,分布式部署可能涉及多个节点,用户可能需要设置主节点和工作节点,配置SSH免密登录,同步配置文件,确保网络通信畅通。数据库方面可能需要主从复制或者使用集群方案,如Galera Cluster for MySQL或者PostgreSQL的流复制。 安全性也是需要考虑的,比如防火墙设置、SSL证书配置、访问控制等。此外,监控和日志管理在分布式环境中尤为重要,可能需要集成Prometheus、Grafana或ELK Stack。 用户可能遇到的问题包括依赖项冲突、网络延迟、节点通信失败、数据库同步问题等,需要提供故障排除的方法或常见问题解答。例如,检查服务状态、查看日志文件、验证网络连接等步骤。 最后,生成相关问题时,需要围绕分布式部署的各个方面,比如性能调优、扩展方法、监控策略等,帮助用户进一步了解如何维护和优化他们的部署环境。</think>### DeepSeek 671b分布式本地部署指南 #### 一、基础环境准备 1. 服务器配置要求 - 建议使用Ubuntu 20.04/22.04 LTS系统 - 每节点至少32核CPU/128GB RAM/1TB SSD存储 - 节点间需保持低延迟网络连接(建议<1ms) 2. 初始化系统设置 ```bash # 所有节点执行 sudo apt update && sudo apt upgrade -y sudo timedatectl set-timezone Asia/Shanghai sudo systemctl disable firewalld ``` #### 二、依赖组件安装 1. 数据库部署(以MySQL集群为例) ```bash # 主节点执行 sudo apt-get install mysql-server -y sudo mysql_secure_installation # 配置集群参考[^1] CREATE USER 'deepseek'@'%' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON *.* TO 'deepseek'@'%'; ``` 2. 分布式存储配置 ```bash # 安装Ceph分布式存储 sudo apt-get install ceph-deploy -y ceph-deploy new node{1..3} ceph-deploy install node{1..3} ``` #### 三、核心服务部署 1. 下载部署包 ```bash wget https://deepseek.com/download/deepseek-671b-distributed.tar.gz tar -zxvf deepseek-671b-distributed.tar.gz ``` 2. 编辑集群配置文件 ```yaml # config/cluster.yaml nodes: - ip: 192.168.1.10 role: [master, worker] - ip: 192.168.1.11 role: [worker] ``` 3. 启动部署脚本 ```bash ./deploy.sh --init-cluster --config config/cluster.yaml ``` #### 四、验证部署 1. 检查服务状态 ```bash curl http://master-node:8080/healthcheck # 预期返回:{"status":"OK","version":"671b"} ``` 2. 压力测试 ```bash ab -n 10000 -c 100 http://cluster-vip:8080/api/v1/predict ``` #### 常见问题排查 1. 节点通信失败时检查: ```bash sudo netstat -tulnp | grep 2379 # 检查etcd端口 ping node2 # 测试节点连通性 ``` 2. 数据库连接问题: ```mysql SHOW GLOBAL STATUS LIKE 'Threads_connected'; SHOW PROCESSLIST; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值