搭建ELK日志分析平台

本文最后更新于:2021年9月9日 早上

使用资料

目标主机设定

  • Docker Engine版本17.05+
  • Docker Compose版本1.12.0+
  • 1.5 GB的RAM

默认端口号

  • 5000: Logstash TCP input
  • 9200: Elasticsearch HTTP
  • 9300: Elasticsearch TCP transport
  • 5601: Kibana

一、安装 Docker Engine

因为我服务器没有docker engine,所以我要先安装docker engine

1.设置仓库

使用 Docker 仓库进行安装
在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。

安装所需的软件包

1
2
3
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2

使用以下命令来设置稳定的仓库

1
2
3
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

2.安装 Docker Engine-Community

1
$ sudo yum install docker-ce docker-ce-cli containerd.io

安装特定版本的 Docker Engine-Community,在存储库中列出可用版本:

1
2
3
4
5
6
 $ yum list docker-ce --showduplicates | sort -r

docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable

通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。
1
$ sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io

3.启动 Docker。

1
$ sudo systemctl start docker

4.安装依赖:

1
$ yum install libseccomp-devel

5.运行docker hello-world 测试安装结果

1
$ sudo docker run hello-world

二、安装Docker Compose

因为我服务器没有docker compose,所以我要先安装docker compose

1.下载 Docker Compose 的当前稳定版本

1
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2.将可执行权限应用于二进制文件

1
$ sudo chmod +x /usr/local/bin/docker-compose

3.创建软链:

1
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

4.测试是否安装成功:

1
$ docker-compose --version

遇到问题,原因,解决方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
a.报错:运行docker-compose --version出现:

Cannot open self /usr/local/bin/docker-compose or archive /usr/local/bin/docker-compose.pkg


b.原因:使用官方文档中所描述的方法:

curl -L https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-`uname -s`-`uname -m` /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
安装时,curl下载下来的文件是不完整的

c.解决方法:

手动下载:https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
然后将文件上传到 /usr/local/bin/ 文件夹下,然后将其重命名为docker-compose,修改此文件的权限,增加可执行:

chmod +x /usr/local/bin/docker-compose

然后再运行$ docker-compose --version 即可

三、安装Git

因为我服务器没有git,所以我要先安装git

1
2
3
4
5
6
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel

$ yum -y install git-core

$ git --version

四、用Docker上安装ELK

1.创建一个目录

个人习惯,随意

1
mkdir elk

2.git命令拉取部署elk所需资料

1
$ git clone https://github.com/deviantony/docker-elk.git

3.进入刚下载的文件夹内

1
$ cd docker-elk

4.通过docker-compose创建并启动容器

1
$ docker-compose up -d

5.通过docker ps可以看到logstash、elasticsearch、kibana容器已经创建并且启动。

1
$ docker ps

6.关于elasticsearch、logstash、kibana的配置都在对应目录下的config文件夹中的.yml文件中