docker搭建elk8.9.1
一、系统基础配置
1、主机硬件配置
系统版本 | 系统配置 | IP |
---|---|---|
CentOS7.9.2009 | 2vCPU8G | 192.168.75.100 |
2、系统基础配置
配置软件源
mv /etc/yum.repos.d/* /tmp/ #备份系统软件园
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo #配置阿里云软件源
yum clean all #清除环境
yum repolist #刷新软件源
关闭seLinux
sed -i "s/=enforcing/=disabled/g" /etc/selinux/config #修改selinx配置
关闭防火墙
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开机关闭,防火墙不自启
清除环境
reboot #关键重新启动
二、架构解读
ELK(Elasticsearch、Logstash、Kibana)与Filebeat是一个常用的日志和事件管理堆栈,用于实时收集、处理、分析和可视化大规模数据。它们一起提供了强大的工具和平台,用于监控系统、分析应用程序性能、进行安全分析以及探索和理解各种数据。搭建教程可以同访问https://www.elastic.co/guide/index.html,查找各组件安装教程。
以下是ELK与Filebeat的详细介绍和如何整合它们的基本概述:
Elasticsearch(ES):
- Elasticsearch是一个分布式、实时的搜索和分析引擎,专用于高效地存储、索引和检索数据。
- 它支持全文搜索、结构化查询和复杂的分析。
- Elasticsearch以分布式方式运行,提供高可用性和可扩展性。
Logstash:
- Logstash是一个数据收集、转换和传输管道。
- 它可以从各种数据源(如日志文件、消息队列、数据库等)收集数据。
- Logstash可以对数据进行转换和清洗,以确保数据的一致性和结构。
- 它还可以将数据发送到Elasticsearch或其他目标存储或分析工具。
Kibana:
- Kibana是一个用于可视化和分析数据的开源工具。
- 它提供了直观的用户界面,用于创建仪表板、图表和可视化,以便用户可以轻松地探索和理解数据。
- Kibana还允许用户执行高级查询和构建自定义仪表板。
Filebeat:
- Filebeat是一个轻量级的数据收集代理,用于实时监控、收集和发送日志和事件数据。
- 它可以监视指定的日志文件、系统日志、容器日志等,然后将其发送到Logstash或Elasticsearch进行进一步处理和存储。
- Filebeat支持多种输入和输出插件,使其易于与各种数据源和目标集成。
整合ELK与Filebeat的工作流程通常如下:
- Filebeat部署在数据源服务器上,监视日志文件或事件源。
- Filebeat收集数据,并可以对数据进行简单的结构化处理。
- Filebeat将数据发送到Logstash用于进一步处理(可选)。
- Logstash可以执行高级数据转换、过滤和增强,并将数据发送到Elasticsearch进行索引。
- Elasticsearch存储和索引数据,使其可以进行快速搜索和分析。
- Kibana提供用户界面,允许用户查询、可视化和分析数据,创建仪表板以监控系统性能、故障排除问题和进行安全分析。
ELK与Filebeat的整合使你能够实时处理和可视化各种数据,从而支持日志分析、应用程序性能监控、安全事件管理等多种用途。这个堆栈提供了一个强大的解决方案,可以帮助组织更好地理解其数据并做出更明智的决策。
三、搭建教程
1、安装docker环境
yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 #安装依赖
yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #添加镜像源
yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin #安装软件
# 更换阿里云镜像仓库
mkdir /etc/docker/
vim /etc/docker/daemon.json
{"registry-mirrors":["https://reg-mirror.qiniu.com/"]}
#重新启动docker服务
systemctl daemon-reload
systemctl restart docker
systemctl enable docker
2、安装Elasticsearch
mkdir -p /usr/local/data-docker/ #创建环境
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.9.1 #拉取镜像
docker run -itd --restart=always --name es01 -p 9200:9200 -p 9300:9300 --privileged=true --net host -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" docker.elastic.co/elasticsearch/elasticsearch:8.9.1
docker logs -f es01 #查看用户账号,需要保存
docker cp es01:/usr/share/elasticsearch /usr/local/data-docker/ #复制挂载资源
chmod -R 777 /usr/local/data-docker/elasticsearch #资源授权
docker rm -f es01 #删除容器
docker run -itd --restart=always --name es01 -p 9200:9200 -p 9300:9300 --privileged=true --net host -v /usr/local/data-docker/elasticsearch:/usr/share/elasticsearch -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" docker.elastic.co/elasticsearch/elasticsearch:8.9.1
检查elasticsearch状态
curl --cacert /usr/local/data-docker/elasticsearch/config/certs/http_ca.crt -u elastic:x4lJ73ZLdDr+qPJUvbZV https://192.168.75.100:9200 #检查命令
{
"name" : "elk",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "l485S3D2RJmqzCJ5znFFFw",
"version" : {
"number" : "8.9.1",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "a813d015ef1826148d9d389bd1c0d781c6e349f0",
"build_date" : "2023-08-10T05:02:32.517455352Z",
"build_snapshot" : false,
"lucene_version" : "9.7.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
3、安装Kibana
docker pull docker.elastic.co/kibana/kibana:8.9.1 #拉取镜像
docker run -itd --restart=always --name kib-01 -p 5601:5601 --net host docker.elastic.co/kibana/kibana:8.9.1 #启动容器
docker logs -f kib-01 #查看容器日志
访问本地的地址http://192.168.75.100:5601/?code=076601
点击configure elastic
Kibana汉化
docker cp kib-01:/usr/share/kibana/config/kibana.yml . #将容器的配置文件复制到本地
echo 'i18n.locale: "zh-CN"' >> kibana.yml #添加汉化插件
docker cp kibana.yml kib-01:/usr/share/kibana/config/kibana.yml #修改容器里面的配置文件
docker restart kib-01 #重新启动容器
4、安装Logstash
docker pull docker.elastic.co/logstash/logstash:8.9.1 #拉取镜像
docker run -it -d -p 5044:5044 --name logstash --net host docker.elastic.co/logstash/logstash:8.9.1 #启动容器
docker cp logstash:/usr/share/logstash /usr/local/data-docker/logstash #复制挂载资源
chmod -R 777 /usr/local/data-docker/logstash #授权
docker rm -f logstash #删除容器
docker run -it -d -p 5044:5044 --name logstash --net host -v /usr/local/data-docker/logstash:/usr/share/logstash docker.elastic.co/logstash/logstash:8.9.1 #启动容器
cp /usr/local/data-docker/elasticsearch/config/certs/http_ca.crt /usr/local/data-docker/logstash/ #复制访问的证书
vim /usr/local/data-docker/logstash/config/logstash.yml #修改配置文件
http.host: "0.0.0.0"
#xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]
修改logstash.conf
vim /usr/local/data-docker/logstash/pipeline/logstash.conf
input{
beats{
port => 5044
}
}
output{
elasticsearch {
hosts => ["https://192.168.75.100:9200"] #es主机ip
index => "ecs-logstash-%{+YYYY.MM.dd}" #索引名称
user => "elastic" #es账号
password => "oc1K_+YvPPx1c3FM6Zak" #es密码
ssl => true #开启ssl
cacert => "/usr/share/logstash/http_ca.crt" #ssl证书
}
}
查看容器ip密码账号
重新启动logstash容器
docker restart logstash
5、安装Filebeat
访问下载地址:https://www.elastic.co/cn/downloads/beats/filebeat
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.9.1-x86_64.rpm #复制链接
rpm -ivh filebeat-8.9.1-x86_64.rpm
配置filebeat的文件
cp /etc/filebeat/filebeat.yml /etc/filebeat/filebeat.yml.bak
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
paths:
- /var/log/*.log
output.logstash:
hosts: ["192.168.75.100:5044"]
systemctl restart filebeat #启动
systemctl enable filebeat #开机自启
四、测试ELK集群架构
创建索引日志
验证elk集群状态
赏
支付宝打赏
微信打赏


赞赏是不耍流氓的鼓励