基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)

您所在的位置:网站首页 云开发平台搭建 基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)

基于Docker搭建ELK(Elasticsearch、Logstash、Kibana)

2024-07-13 00:16| 来源: 网络整理| 查看: 265

Docker简介

Docker 是一个被广泛使用的开源容器引擎,是一种操作系统级别的虚拟化技术,它以一种特殊进程的方式运行于宿主机上,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,它依赖于liunx内核特性:namespace(名字空间进行资源的隔离)和cgroups(限制、记录任务组所使用的物理资源)

image.png

一个完整的Docker有以下几个部分组成:

DockerClient客户端

Docker Daemon守护进程

Docker Image镜像

DockerContainer容器

话不多说,先简要介绍到这里,还想了解更多的小伙伴可自行百度搜索,这里重点介绍实操内容。

Docker安装

安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

当看到complete时代表安装完成。

image.png

添加aliyun docker-ce yum源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

image.png

重建yum缓存

yum clean all

image.png

yum makecache

image.png

查看可用的docker版本

yum list docker-ce.x86_64 --showduplicates | sort -r

image.png

这里建议根据实际情况,选择较新的稳定版本,我这里选择的是docker-ce-20.10.6

yum install -y docker-ce-20.10.6-* docker-ce-cli-20.10.6-*.x86_64

等待安装ing。。。

image.png

安装完成后,执行命令查看docker版本,有如下回显代表安装成功

docker -v

image.png

Docker启动

临时启动Docker

systemctl start docker

设置开机自动启动

systemctl enable docker

image.png

查看Docker运行状态

systemctl status docker

image.png

查看Docker容器版本信息

docker version

image.png

接下来要配置镜像加速器。这一步是很有必要的。

一是可以提升镜像下载速度:默认情况下,Docker从官方镜像仓库(Docker Hub)下载镜像。但是由于网络的限制或地理位置的原因,有时候从官方仓库下载镜像的速度可能会较慢。配置镜像加速器可以将镜像下载源切换到国内的镜像站点,从而加快镜像下载速度,提高开发和部署效率。

二是解决访问限制问题:有些时候,访问官方仓库可能会受到网络的限制,例如在某些特殊环境下无法正常访问国外网站。配置镜像加速器可以解决这样的问题,通过使用国内的镜像站点,避免了对官方仓库的直接访问,确保能够正常下载和使用镜像。

配置Docker镜像加速器非常简单,只需要将加速器的地址添加到Docker配置文件中即可,这里我们选择阿里云的加速器地址。

先创建目录/etc/docker

sudo mkdir -p /etc/docker

将文本内容写入指定文件的常用命令

sudo tee /etc/docker/daemon.json beats } } output { elasticsearch { hosts => ["elasticsearch:9200"] } }

启动logstash容器

docker run --name logstash --link elasticsearch:elasticsearch -p 5044:5044 -d -v /docker/config/logstash:/config-dir logstash -f /config-dir/logstash.conf

image.png

docker logs logstash

image.png

部署nginx应用 docker run -e TZ="Asia/Shanghai" -d -p 80:80 -v "$PWD/logs":/var/log/nginx --name nginx nginx

image.png

直接本地访问IP

image.png

部署filebeat

Filebeat是Elasticsearch公司提供的一个轻量级日志收集器,用于从各种源(例如日志文件、系统日志等)抓取数据,并将其传输到Elasticsearch或Logstash等数据处理和分析工具。Filebeat的轻量级特性使其适用于各种规模的环境,并且与Elastic Stack(如Elasticsearch、Logstash和Kibana)的其他组件集成紧密,提供了一个强大的日志分析解决方案。

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.4.2-x86_64.rpm

image.png

rpm -ivh filebeat-7.4.2-x86_64.rpm

image.png

vim /etc/filebeat/filebeat.yml

image.png

image.png

修改完毕保存退出,再查看相关配置内容

grep -Ev '#|^$' /etc/filebeat/filebeat.yml

image.png

检查无误,重载并启动

systemctl restart filebeat systemctl enable filebeat

image.png

部署kibana docker run --name kibana --link elasticsearch:elasticsearch -p 5601:5601 -d kibana

image.png

docker ps -a

image.png

访问IP加端口

image.png

创建Index pattern

image.png

查看采集到的日志信息

image.png

kibana基础使用

image.png

进入Discover页面

image.png

image.png

1.选择查询的服务和日志文件

选择对应的应用

image.png

选择对应的应用下的日志文件

image.png

2.查询错误日志

Search框输入error -> Refresh

image.png

3.精确搜索完整短句“this is my words”(带空格)【ps:需要加引号】

image.png



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3