本文是基于elasticsearch-7.9.2,logstash-7.9.2,kibana-7.9.2和filebeat-7.9.2搭建ELK的。
目录
1.Elasticsearch安装配置
去官网下载elasticsearch的压缩包
# 新建es用户,elasticsearch不能用root用户启动
useradd es
# 修改es用户密码
passwd es
# 解压该文件
tar -zxf elasticsearch压缩包地址
# 在elasticsearch目录下创建path/data目录,用于elasticsearch数据的存放
mkdir path/data
# 修改该目录的拥有者为es
chown -R es:es path/data
# 在elasticsearch目录下创建path/log目录,用于elasticsearch日志的存放
mkdir path/log
# 修改该目录的拥有者为es
chown -R es:es path/log
# 修改配置文件elasticsearch.yml
vim /elasticsearch目录/config/elasticsearch.yml
修改内容如下
# 集群初始主节点
cluster.initial_master_nodes: ["node-1"]
# 节点名称
node.name: node-1
# 设置data存放的路径为
path.data: /elasticsearch目录/path/data
# 设置logs日志的路径
path.logs: /elasticsearch目录/path/log
# 设置允许所有ip可以连接该elasticsearch
network.host: 0.0.0.0
# 开启监听的端口为9200
http.port: 9200
# 增加新的参数,为了让elasticsearch-head插件可以访问es
http.cors.enabled: true
http.cors.allow-origin: "*"
# 启用密码
xpack.security.enabled: true
# 使用默认密码
xpack.security.authc.accept_default_password: true
xpack.security.transport.ssl.enabled: true
切换账号
su es
为内置账号添加密码
# interactive:给用户一一设置密码。
# auto:自动生成密码。
/elasticsearch目录/bin/elasticsearch-setup-passwords interactive
启动es
# 执行启动,并后台运行
cd /elasticsearch 安装目录/bin
./elasticsearch -d
测试是否启动成功,有返回值则表示成功
curl -XGET -u elastic 'localhost:9200/_xpack/security/user?pretty'
2.kibana安装配置
去官网下载kibana压缩包
# 解压该文件
tar -zxf kibana压缩包地址
# 修改修改kibana.yml
vim /kibana目录/config/kibana.yml
修改内容如下
# kibana端口
server.port: 5601
# 允许所有ip访问
server.host: "0.0.0.0"
# elasticsearch所在的ip及监听的地址
elasticsearch.hosts: ["http://localhost:9200"]
# kibana默认创建的索引
kibana.index: ".kibana"
# 字符编码
i18n.locale: "zh-CN"
# elasticsearch加密所需配置
xpack.reporting.encryptionKey: "a_random_string"
xpack.security.encryptionKey: "something_at_least_32_characters"
kibana密文配置es认证
/kibana目录/bin/kibana-keystore --allow-root create
/kibana目录/bin/kibana-keystore --allow-root add elasticsearch.username
/kibana目录/bin/kibana-keystore --allow-root add elasticsearch.password
启动kibana
cd /kibana目录/bin
./kibana --allow-root
3.Logstash安装配置
去官网下载logstash压缩包
# 解压该文件
tar -zxf logstash压缩包地址
# 在logstash目录下创建path/data目录,用于logstash数据的存放
mkdir path/data
# 修改该目录的拥有者为es
chown -R es:es path/data
# 在logstash目录下创建path/log目录,用于logstash日志的存放
mkdir path/log
# 修改该目录的拥有者为es
chown -R es:es path/log
# 在logstash目录下创建conf.d目录,用于logstash管道配置文件的存放
mkdir conf.d
# 修改该目录的拥有者为es
chown -R es:es conf.d
# 修改logstash.yml配置文件
vim /logstash目录/config/logstash.yml
修改内容如下
# 设置数据的存储路径为/path/data
path.data: /logstash目录/path/data
# 设置管道配置文件路径为/conf.d
path.config: /logstash目录/conf.d
# 设置日志文件的存储路径为/path/log
path.logs: /logstash目录/path/log
创建配置文件,日志内容输出到elasticsearch中,如下
vim /logstash目录/conf.d/logstash.conf
配置文件内容如下:
# 数据输入监听端口
input {
beats {
port => 5044
codec => plain {
charset => "UTF-8"
}
}
}
# 过滤器,把没用的信息过滤掉
filter{
mutate{
remove_field => ["host"]
remove_field => ["agent"]
remove_field => ["ecs"]
remove_field => ["tags"]
remove_field => ["@version"]
remove_field => ["input"]
}
}
# 输出到elasticsearch
output {
stdout { codec => rubydebug }
elasticsearch {
# elasticsearch地址
hosts => ["localhost:9200"]
# elasticsearch用户名
user => "****"
# elasticsearch密码
password => "****"
# elasticsearch生成的索引,这里使用filebeat的[fields][type]参数值加年月日生成索引名
index => "%{[fields][type]}-%{+YYYY.MM.dd}"
}
}
注意:这边的elasticsearch的user和password需要在kibana里新建用户,不能用默认的用户,不然会连接不上elasticsearch
启动logstash
cd /logstash目录/bin
nohup ./logstash -f /logstash目录/conf.d/logstash.conf > /logstash目录/path/log/logstash.log 2>&1 &
4.Filebeat安装配置
去官网下载filebeat压缩包,并上传到需要收集日志的服务器上
# 解压该文件
tar -zxf filebeat压缩包地址
# 修改修改filebeat.yml
vim /filebeat目录/filebeat.yml
修改内容如下
filebeat.inputs:
# 日志传输列表
- type: log
enabled: true
paths:
- 需要传输的日志文件全路径
fields:
type: elasticsearch索引名
multiline:
pattern: '^\s*\['
negate: true
match: after
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: false
setup.template.settings:
index.number_of_shards: 1
output.logstash:
hosts: ["logstash的ip:logstash的端口"]
logging.level: info
logging.to_files: true
logging.files:
path: /filebeat目录/log
name: filebeat
keepfiles: 7
permissions: 0644
启动
cd /filebeat目录
nohup ./filebeat -e -c filebeat.yml > /filebeat目录/log/filebeat1.log 2>&1 &
注意:nohup命令启动filebeat进程运行一段时间后会出现filebeat进程宕掉的现象,解决办法如下:1、使用yum安装或RPM包安装。2、在当shell中执行nohup成功后,还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入exit来退出终端。参考网站