配置要求:一台Linux服务器,内存不少于2g,centos7以上系统
分以下几个步骤(我只写我使用过的方式):
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
安装 Docker Engine-Community
- yum install -y yum-utils \
- device-mapper-persistent-data \
- lvm2
安装 Docker Engine-Community
yum install docker-ce docker-ce-cli containerd.io
启动 Docker
systemctl start docker
查看docker是否安装成功
docker ps
有两种方式:
第一种:git安装
如果没有安装git可以参考Linux安装git
使用git命令拉取
git clone https://github.com/deviantony/docker-elk.git/app/docker-elk
第二种:本地下载zip包并解压通过sftp传输到服务器
下载链接:https://github.com/deviantony/docker-elk.git/app/docker-elk
安装方式有很多种,反正不管怎么做,总是服务器要下载docker-elk就行
elk的基础目录结构
- ├── docker-compose.yml
- ├── elasticsearch
- │ ├── config
- │ │ └── elasticsearch.yml
- │ └── Dockerfile
- ├── extensions
- │ ├── apm-server
- │ ├── app-search
- │ ├── curator
- │ ├── logspout
- ├── kibana
- │ ├── config
- │ │ └── kibana.yml
- │ └── Dockerfile
- ├── LICENSE
- ├── logstash
- │ ├── config
- │ │ └── logstash.yml
- │ ├── Dockerfile
- │ └── pipeline
- │ └── logstash.conf
- └── README.md
启动elk之前要安装docker-compose,而安装docker-compose之前要先安装pip
安装pip
yum -y install epel-release
yum install -y yum-utils && yum-config-manager --enable epel
yum -y install python-pip
如果报了以下错误
- Extra Packages for Enterprise Linux Modular 8 - x86_64 7.5 kB/s | 98 kB 00:13
- Extra Packages for Enterprise Linux 8 - x86_64 264 kB/s | 8.3 MB 00:32
- No match for argument: python-pip
- Error: Unable to find a match: python-pip
那就换个方式安装pip,不用思考那么多了,反正只要安装好docker-compose就行了
安装python3, python3一般自带一个pip3
- yum install -y openssl-devel
- yum install -y openssl
- yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
- yum install gcc automake autoconf libtool make
- yum install zlib zlib-devel -y
- wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2rc1.tgz
- tar zxvf Python-3.6.2rc1.tgz
- cd Python-3.6.2rc1/
- ./configure
- make
- make install
验证pip是否安装成功
pip3 -V
安装docker-compose
pip3 install docker-compose --ignore-installed requests
如果报了以下错误
错误一:
Command "python setup.py egg_info" failed with error code 1
解决办法:
升级版本
- pip install --upgrade pip
- 安装setuptools
- pip install setuptools
错误二:
Could not find a version that ...
我忘了怎么写来着了,反正如果有could not find a version 这种字眼出现就是这个错误了
解决办法:
yum install bzip2-devel
然后在安装python的目录下重新编译
- ./configure
- make
- make install
错误三:
raise ReadTimeoutError(self._pool, None, ‘Read timed out.‘)
一看就是超时类的问题
解决办法:
pip install --index-url https://pypi.douban.com/simple numpy==1.18.1
然后就可以安装docker-compose了,如果安装docker-compose的时候报了一个pip3已弃用什么什么的就换成pip,好像是版本升级后pip和pip3都可以用了,这都是我经历过来的
错误四:
连接es的时候报401错误,这是账号密码验证失败的原因,把es认证取消掉就行了
在elasticsearch.yml中把xpack.security.enable改成false就行了

启动elk
docker-compose up
启动后就可以通过5601端口访问kibana了
默认的账号:elastic 密码:changeme
一些更改密码配置的可以去https://github.com/deviantony/docker-elk/wiki/External-applications
看教程,这里就是简单的使用docker来安装elk并启动的示例
汉化很简单,elk官方现在支持中文的功能,只不过汉化面积不多,就像我上面这张图一样,还有好多英文,大家也可以自己去找网上的elk汉化插件
编辑elk目录下的kibana/config的kibana.yml
如果有
i18n.locale
这个配置就改成
i18n.locale:"zh-CN"
好像不用重启可以刷新以下页面就可以看到汉化后的版本了
1. 获取elastichd镜像
docker pull containerize/elastichd
2. 启动镜像
docker run -p 9800:9800 -d containerize/elastichd
如果es服务器带有账号密码连接,那这个工具可能没用了,这个工具是直接连接ip+端口的,我怎么试都不知道怎么连接带有密码的es,所以我干脆把es账号认证给关了