检查java环境 ELK8.x不支持java8
若无环境可执行 sudo apt install openjdk-17-jre-headless
准备安装包
官网下载地址: ELK
products 搜Elasticsearch、Kibana、Logstash、Filebeat
versions需一致,这里使用8.17.0
Elasticsearch
Kibana
Logstash
Filebeat
elasticsarch安装
javascript
# 建一个文件夹
cd /usr/local/
mkdir elk
# 我这里用的shell 使用rz上传文件 上传安装包
cd elk
rz
# 解压
tar -zxvf elasticsearch-x.x.x.xxxx
cd elasticsearch-xxx
mkdir data
# 修改配置文件
vim ./config/elasticsearch.yml
javascript
cluster.name: es-application
node.name: node-1
# 这个地址是新建的data文件
path.data: /usr/local/elk/elasticsearch-8.17.0/data/
path.logs: /usr/local/elk/elasticsearch-8.17.0/logs/
# 允许外网访问
network.host: 0.0.0.0
http.port: 9200
# 关闭ssl
xpack.security.enabled: false
xpack.security.http.ssl:
enabled: false
keystore.path: certs/http.p12
如果没有安全证书需要申请:Elastic stack安全配置
elk不能root启动,可用安装系统时创建的用户启动,若无可创一个
javascript
#创建新用户及授权
groupadd elk
useradd elk -g elk -p elkelk
chown -R elk:elk /usr/local/elk
javascript
#切用户启动
su elk
# 后台启动
./bin/elasticsearch -d
# 查看是否启动成功
ps -ef|grep elasticsearch
# 调用这个出现You Know, for Search就算成功
curl http://ip:9200
Kibana安装
切回root上传安装包后解压
修改配置:vim ./config/kibana.yml
javascript
# 端口号
server.port: 5601
# 汉化
i18n.locale: "zh-CN"
# ip地址
server.host: "192.168.xx.xx"
# es连接
elasticsearch.url: "http://192.168.xx.xx:9200"
javascript
#切用户
su elk
#非后台启动,关闭shell窗口即退出
./bin/kibana
#后台启动 (推荐使用后台启动)
nohup ./bin/kibana > kibana_start.log 2>&1 &
# 检查是否启动成功
ps -ef|grep kibana
Logstash安装
切回root上传安装包后解压
cp ./config/logstash-sample.conf ./filebeat.conf
修改配置:vim ./config/filebeat.yml
javascript
# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.
input {
beats {
host => '0.0.0.0'
port => 5044
}
#file{
# path => ['/mnt/coding/blog/storage/logs/*.log']
# type => 'user_log'
# start_position => "beginning"
#}
}
output {
if [app] == "xxx" {
if [type] == "xxx-log" {
elasticsearch {
hosts => ["http://192.168.xxx.xxx:9200"]
index => "filebeat_blog_log-%{+YYYY.MM.dd}"
user => "elastic"
password => "changeme"
}
}
}
#elasticsearch {
#hosts => ["http://192.168.xxx.xxx:9200"]
# index => "filebeat_log-%{+YYYY.MM.dd}"
#index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#user => "elastic"
#password => "changeme"
#}
}
javascript
#切用户
su elk
#启动
nohup ./bin/logstash -f ./config/filebeat.conf > logstash_start.log 2>&1 &
# 检查是否启动成功
ps -ef|grep logstash
Filebeat安装
切回root上传安装包后解压
修改配置:vim ./filebeat.yml
filebeat.inputs:
- type: log
# 应用名
id: xxx-java
enabled: true
paths:
# 应用输出日志地址
- /usr/local/java/xxx/*.log
fields:
level: debug
review: 1
# 应用名
app: XXX
# 应用类型
type: XXX-log
fields_under_root: true
setup.kibana:
host: "192.168.XXX.XXX:5601"
output.logstash:
hosts: ["192.168.XXX.XXX:5044"]
其他高级配置:Filebeat的高级配置详解
javascript
#切用户
su elk
#启动
nohup ./filebeat > filebeat_start.log 2>&1 &
# 检查是否启动成功
ps -ef|grep filebeat
生成模型
登录kibana:192.168.XXX.XXX:5601
选择菜单:Stack Management
继续选择菜单:索引管理/Index Management 出现索引文件就是日志上传成功了
若成功选择菜单:数据视图/index pattern
创建视图后即可选择菜单Discover选择相应视图进行搜索