ContOS部署elasticsearch实现日志收集
搭建elfk架构实现日志收集,日志量的话可搭配MQ一起使用
·
ELFK架构部署文档
一.概述
虚机系统:centos7.9
ELFK版本:8.2.2
(1)在服务器上部署 filebeat 采集日志并推送给logstash;
(2)logstash进行数据整理后写入ES;
(3)ES对格式化的数据进行索引和存储;
(4)Kibana 从ES中查询数据生成图表,并进行前端数据的展示。
二、部署
1、ES
(1)下载地址:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.2.2-linux-x86_64.tar.gz
(2)创建用户和工作目录
useradd elasticsearch
passwd elasticsearch
mkdir -p /data/elk/elasticsearch/{data,logs}
(3)上传安装包并解压
tar xf elasticsearch-8.2.2-linux-x86_64.tar.gz
cp -r elasticsearch-8.2.2/* /data/elk/elasticsearch/data/
chown -R elasticsearch:elasticsearch /data/elk/elasticsearch/*
(4)添加内核优化
vim /etc/sysctl.conf
vm.max_map_count = 262144
#执行生效
sysctl -p
(5)修改配置
#修改配置:不同的节点注意修改nodename
cluster.name: my-application
node.name: templete-cent7
node.attr.rack: r1
#数据目录
path.data: /data/elk/elasticsearch/data
#日志目录
path.logs: /data/elk/elasticsearch/logs
#监听地址
network.host: 0.0.0.0
#内部通信端口
transport.port: 9300
transport.compress: true
#访问端口
http.port: 9200
#节点IP
discovery.seed_hosts: ["172.17.212.101"]
#集群切换IP
cluster.initial_master_nodes: ["172.17.212.101"]
## 安全配置
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
##添加跨域配置
http.cors.enabled: true
http.cors.allow-origin: "*"
(6)elasticsearch用户启动集群
su - elasticsearch -c "/data/elk/elasticsearch/data/bin/elasticsearch -d"
(7)验证
curl localhost:9200
2.Kibana
(1)下载地址
https://artifacts.elastic.co/downloads/kibana/kibana-8.2.2-linux-x86_64.tar.gz
(2)上传并解压安装包
mkdir -p /data/elk/kibana/data
tar xf kibana-8.2.2-linux-x86_64.tar.gz && cp -r kibana-8.2.2/* /data/elk/kibana/data/
(3)修改配置
cat > kibana.yml <<EOF
#汉化
i18n.locale: "zh-CN"
#kibana监听端口
server.port: 5601
#默认内外网都可以访问
server.host: "0.0.0.0"
#es访问地址
elasticsearch.hosts: ["http://localhost:9200"]
kibana.index: ".kibana"
#加密设置
#Elasticsearch.username:””
#Elasticsearch.password:””
EOF
(4)启动并访问
./bin/kibana --allow-root &
浏览器访问IP:5601
3、Logstash
(1)下载地址
https://artifacts.elastic.co/downloads/logstash/logstash-8.2.2-linux-x86_64.tar.gz
(2)上传并解压
mkdir -p /data/elk/logstash/data
tar xf kibana-8.2.2-linux-x86_64.tar.gz && cp -r logstash-8.2.2/* /data/elk/logstash/data/
(3)修改配置
#重新编写配置
cat > logstash.conf <<EOF
#接收数据
input {
beats {
#监听地址
host => '0.0.0.0'
#端口
port => 5044
}
}
#处理数据
filter {
#按需添加过滤器规则来处理和转换数据
}
#推送数据到es
output {
elasticsearch {
hosts => ["http://http://172.17.212.101:9200"]
#索引名
index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
#用户认证
#user => "elastic"
#password => "changeme"
}
}
#推送数据到本地输出(测试使用)
#output {
# stdout {
# #ruby格式输出
# codec => rubydebug
# }
#}
EOF
(4)启动测试
- 手动测试,手动输入数据并回车:
./bin/logstash -e "input { stdin { type => stdin } } output { stdout { codec => rubydebug } }"
- 基于配置文件测试:
nohup ./bin/logstash -f /data/elk/logstash/data/config/logstash.conf >/dev/null 2>&1 &
4、Filebeat
(1)下载地址
https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.2.2-linux-x86_64.tar.gz
(2)上传并解压
#创建存放目录并解压安装包
mkdir -p /data/elk/logstash/data
tar xf filebeat-8.2.2-linux-x86_64.tar.gz && cp -r filebeat-8.2.2-linux-x86_64/* /data/elk/filebeat/data/
(3)修改配置
cat > filebeat.yml <<EOF
#收集数据
filebeat.inputs:
#定义要收集的文件类型(type)
- type: log
#启用
enabled: true
paths:
#日志路径
- /var/log/messages*
#自定义字段
fields:
type: messages
ip: 172.17.212.103
fields_under_root: true
#索引名
log_source: messages
#推送数据
output.logstash:
#logstash地址
hosts: ["172.17.212.102:5044"]
EOF
(4)启动
./filebeat -e -c filebeat.yml &
三、web展示
- 数据传入成功后需在web界面配置索引模板进行展示。
(1)登录web界面点击右上角三杠--->下滑点击Stack Management
(2)右上角三杠--->下滑点击数据视图--->创建视图
(3)输入索引名称,选择时间戳字段,右边会显示推送的源数据
(4)添加完成后,右上角三杠点击Discover
(5)更改数据视图,选择自建的数据视图,就会出数据
更多推荐
已为社区贡献1条内容
所有评论(0)