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

安装elk

1.下载安装包

# 创建安装目录
mkdir -p /home/elk
cd /home/elk# 下载各组件(选择自带JDK的版本)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.0-linux-x86_64.tar.gz
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.17.0-linux-x86_64.tar.gz# 解压
tar -zxvf elasticsearch-7.17.0-linux-x86_64.tar.gz
tar -zxvf kibana-7.17.0-linux-x86_64.tar.gz
tar -zxvf logstash-7.17.0-linux-x86_64.tar.gz
tar -zxvf filebeat-7.17.0-linux-x86_64.tar.gz

2.Elasticsearch 配置

# 创建elasticsearch用户
useradd elasticsearch
passwd elasticsearch# 更改目录所有者
chown -R elasticsearch:elasticsearch /home/elk/elasticsearch-7.17.0
# 打开目录
cd /home/elk/elasticsearch-7.17.0
# 修改文件
vim config/elasticsearch.yml# 网络配置
network.host: 0.0.0.0
http.port: 9200
# 节点配置
cluster.name: my-elk-cluster
node.name: node-1
node.roles: [ master, data ]
# 内存锁定
bootstrap.memory_lock: true
# 发现配置
discovery.type: single-node
# 安全配置(生产环境建议开启)
xpack.security.enabled: false# 按上面信息修改完后输入:wq!保存退出
# 编辑系统限制
vi /etc/security/limits.conf# 添加以下内容
elasticsearch soft nofile 65536
elasticsearch hard nofile 65536
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited# 编辑sysctl配置
vi /etc/sysctl.conf# 添加
vm.max_map_count=262144# 生效配置
sysctl -p
su - elasticsearch
cd /home/elk/elasticsearch-7.17.0# 使用自带的JDK启动
./bin/elasticsearch -d

3.logstash配置

mkdir -p /home/elk/logstash-7.17.0/conf.d

vim /home/elk/logstash-7.17.0/conf.d/filebeat-to-es.conf
input {beats {port => 5044host => "0.0.0.0"}
}filter {# 如果有Grok解析需求,可以在这里添加grok {match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}" }}# 日期解析date {match => [ "timestamp", "ISO8601" ]}
}output {elasticsearch {hosts => ["localhost:9200"]index => "logs-%{+YYYY.MM.dd}"}# 可选:同时输出到控制台用于调试stdout {codec => rubydebug}
}
cd /home/elk/logstash-7.17.0# 使用自带JDK启动
./bin/logstash -f conf.d/filebeat-to-es.conf --config.reload.automatic &

4.Filebeat 配置

cd /home/elk/filebeat-7.17.0-linux-x86_64
vi filebeat.yml
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/*.log- /var/log/messages- /var/log/secure# 添加你的应用日志路径- /path/to/your/app/*.log# 输出到Logstash
output.logstash:hosts: ["localhost:5044"]# 设置Filebeat自身日志
logging.level: info
logging.to_files: true
logging.files:path: /var/log/filebeatname: filebeatkeepfiles: 7permissions: 0644
cd /home/elk/filebeat-7.17.0-linux-x86_64# 测试配置
./filebeat test config# 启动Filebeat
./filebeat &

5.kibana配置

cd /home/elk/kibana-7.17.0-linux-x86_64
vi config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]# 可选:中文化
i18n.locale: "zh-CN"
# 创建kibana用户
useradd kibana
passwd kibana# 更改目录所有者
chown -R kibana:kibana /home/elk/kibana-7.17.0-linux-x86_64
cd /home/elk/kibana-7.17.0-linux-x86_64# 使用自带JDK启动
./bin/kibana &

6.创建脚本

1.启动脚本

# 创建日志目录
sudo mkdir -p /var/log/kibana
# 赋予 kibana 用户读写权限
sudo chown -R kibana:kibana /var/log/kibana
vim /home/elk/start_elk.sh
#!/bin/bashecho "Starting ELK Stack..."# 启动Elasticsearch(-d 后台启动,日志默认在 logs/ 目录)
su - elasticsearch -c "cd /home/elk/elasticsearch-7.17.0 && ./bin/elasticsearch -d"
sleep 30  # 等待ES初始化(视服务器性能可调整时间)# 启动Logstash(日志重定向到 logstash.log)
cd /home/elk/logstash-7.17.0
nohup ./bin/logstash -f conf.d/filebeat-to-es.conf --config.reload.automatic > logstash.log 2>&1 &
sleep 10# 启动Filebeat(日志重定向到 filebeat.log)
cd /home/elk/filebeat-7.17.0-linux-x86_64
nohup ./filebeat > filebeat.log 2>&1 &
sleep 10# 启动Kibana(修正参数,日志重定向到 kibana.log)
su - kibana -c "cd /home/elk/kibana-7.17.0-linux-x86_64 && nohup ./bin/kibana > /var/log/kibana/kibana.log 2>&1 &"echo "ELK Stack started successfully! Check component logs for details."

2.停止脚本

vim /home/elk/stop_elk.sh
#!/bin/bashecho "Stopping ELK Stack..."# 函数:安全停止进程(先尝试正常终止,失败再强制)
stop_process() {local name=$1local pid=$(ps aux | grep -E "$name" | grep -v grep | awk '{print $2}')if [ -n "$pid" ]; thenecho "Stopping $name (PID: $pid)..."# 先发送 SIGTERM(15)正常终止kill $pid >/dev/null 2>&1# 等待5秒,检查是否终止sleep 5# 若仍存在,发送 SIGKILL(9)强制终止if ps -p $pid >/dev/null; thenecho "$name did not stop gracefully, forcing termination..."kill -9 $pid >/dev/null 2>&1fi# 最终检查if ps -p $pid >/dev/null; thenecho "Failed to stop $name"return 1elseecho "$name stopped"fielseecho "$name is not running"fi
}# 按顺序停止组件(数据流入 → 展示 → 存储)
stop_process "filebeat"
stop_process "logstash"
stop_process "kibana"
stop_process "elasticsearch"echo "ELK Stack stop process completed!"

3.设置脚本权限

chmod +x /home/elk/start_elk.sh
chmod +x /home/elk/stop_elk.sh

4.开放端口

开放9022,5601,5044端口

7.验证部署

# 检查Elasticsearch
curl http://localhost:9200# 检查索引
curl http://localhost:9200/_cat/indices?v# 检查进程
ps aux | grep -e elasticsearch -e logstash -e kibana -e filebeat# 访问页面
http://your_ip:5601
http://www.dtcms.com/a/465468.html

相关文章:

  • RNN-seq2seq 英译法案例
  • 房地产 网站 案例电商网站建设与运营方向
  • 2025年企微SCRM工具核心功能深度测评:微盛AI·企微管家领跑赛道
  • Deepwiki AI技术揭秘 - 系统架构分析篇
  • 做斗图的网站html5 手机网站 教程
  • Flink面试题及详细答案100道(61-80)- 时间与窗口
  • Git 报错:fatal: update_ref failed for ref ‘ORIG_HEAD‘ 解决记录
  • 关于域名和主机论坛的网站北京实创装修公司官网
  • Apache Spark 上手指南(基于 Spark 3.5.0 稳定版)
  • COA学习,Chain of Agents
  • winform本地上位机-ModbusRTC1.上位机控制台与数据监控(数据监控架构思维与图表系列)
  • 如何建立“长期主义+短期收益”并存的商业闭环?
  • 敏捷管理之看板方法:可视化管理的流程设计与优化技巧
  • Linux学习笔记--查询_唤醒方式读取输入数据
  • 信道编码定理和信道编码逆定理
  • 订餐网站开发流程wordpress显示运行时间
  • ubuntu 24.04 FFmpeg编译 带Nvidia 加速记录
  • 关于springboot定时任务和websocket的思考
  • 做文字logo的网站我国网络营销现状分析
  • STM32F103RCT6+STM32CubeMX+keil5(MDK-ARM)+Flymcu实现简单的通信协议
  • 昂瑞微:踏浪前行,铸就射频芯片领域新辉煌
  • Roo Code系统提示覆写功能详解
  • 时钟周期约束(三)
  • 基于Hadoop的京东电商平台手机推荐系统的设计与实现
  • 没有logo可以做网站的设计吗卡密网站怎么做
  • 做侵权视频网站网站规划问题
  • 鸿蒙:用Toggle组件实现选择框、开关样式
  • html css js网页制作成品——YSL口红红色 html+css (6 页)(老版)附源码
  • CSS中的选择器有哪些?相对定位和绝对定位是相对于谁的?
  • 发布企业信息的网站大连推广