系统环境:Amazon Linux 2023
sudo yum install java-17
---
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
---
sudo cat <<EOF | sudo tee /etc/yum.repos.d/elastic.repo
[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
---
sudo dnf install elasticsearch logstash kibana -y
---
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.11.1-linux-x86_64.tar.gz
---
tar -xzf filebeat-8.11.1-linux-x86_64.tar.gz -C /opt/
---
/etc/systemd/system/filebeat.service
---
[Unit]
Description=Filebeat sends log files to Logstash or Elasticsearch.
Documentation=https://www.elastic.co/products/beats/filebeat
After=network.target
[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/filebeat/filebeat -c /opt/filebeat/filebeat.yml
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target
/etc/elasticsearch/elasticsearch.yml
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
xpack.security.http.ssl:
enabled: false
keystore.path: certs/http.p12
xpack.security.transport.ssl:
enabled: false
verification_mode: certificate
keystore.path: certs/transport.p12
truststore.path: certs/transport.p12
cluster.initial_master_nodes: ["ip-172-32-1-152.us-west-2.compute.internal"]
http.host: 0.0.0.0
/etc/kibana/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://127.0.0.1:9200"]
logging:
appenders:
file:
type: file
fileName: /var/log/kibana/kibana.log
layout:
type: json
root:
appenders:
- default
- file
pid.file: /run/kibana/kibana.pid
i18n.locale: "zh-CN"
/etc/logstash/conf.d/game-pipeline.conf
说明:收集weapon_mgr,user_task_mgr,user_stage_mgr开头的日志
# pipeline.conf
input {
beats {
port => 5044 # 监听 5044 端口,与 Filebeat 的输出配置对应
codec => "plain"
}
}
filter {
date {
match => ["timestamp", "yyyy-MM-dd'T'HH:mm:ss.SSSZ"]
}
}
output {
if [log_type] == "weapon_mgr" {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "weapon_mgr-%{+YYYY.MM.dd}"
}
} else if [log_type] == "user_task_mgr" {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "user_task_mgr-%{+YYYY.MM.dd}"
}
} else if [log_type] == "joy" {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "joy-%{+YYYY.MM.dd}"
}
} else if [log_type] == "user_stage_mgr" {
elasticsearch {
hosts => ["http://127.0.0.1:9200"]
index => "user_stage_mgr-%{+YYYY.MM.dd}" # 创建一个调试索引
}
}
stdout {
codec => rubydebug
}
}
filebeat.yml
filebeat.inputs:
- type: filestream
enabled: true
paths:
- /opt/filebeat/current_logs/weapon_mgr_*.log
fields:
log_type: "weapon_mgr" # 添加自定义字段
fields_under_root: true # 将 fields 下的字段提升到根级别,Logstash 处理更方便
- type: filestream
enabled: true
paths:
- /opt/filebeat/current_logs/user_task_mgr_*.log
fields:
log_type: "user_task_mgr" # 添加自定义字段
fields_under_root: true # 将 fields 下的字段提升到根级别
- type: filestream
enabled: true
paths:
- /opt/filebeat/current_logs/user_stage_mgr_*.log
fields:
log_type: "user_stage_mgr" # 添加自定义字段
fields_under_root: true # 将 fields 下的字段提升到根级别
- type: filestream
enabled: true
paths:
- /opt/filebeat/20250828/joy-*.log
fields:
log_type: "joy" # 添加自定义字段
fields_under_root: true # 将 fields 下的字段提升到根级别
# 启用并配置 Logstash output
output.logstash:
hosts: ["172.32.1.152:5044"] # 替换为你的 Logstash 服务器 IP 或主机名
#===================== Monitoring & Setup =======================
# 禁用内置的 Kibana 仪表板设置(如果你不需要的话)
#setup.kibana:
# host: "your_kibana_host:5601" # 如果需要自动加载仪表板,请取消注释并配置