简介
ELK是Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称。
Docker compose安装ELK
安装docker和docker compose:Docker入门基础 – 谢幕后 (xmhweb.cn)
下载项目
apt-get install git
git clone https://github.com/deviantony/docker-elk.git
cd docker-elk
编辑配置文件vim docker-compose.yml
,添加container_name参数,默认的容器名称太冗长了
container_name: elasticsearch
docker-compose.yml文件中有容器自启设置:restart:unless-stopped
restart:unless-stopped
:容器意外停止或退出时,Docker 会重新启动容器
restart:always
:无论容器是如何停止的,都会自动重新启动【即使是手动停止的】
启动项目
使用docker-compose up -d
来启动项目。
docker-compose up 和 docker-compose up -d 都用于启动 Docker Compose 中定义的服务,但它们之间有一些区别:
docker-compose up
:这个命令会启动 Docker Compose 文件中定义的所有服务,并在终端中实时输出它们的日志。当你使用此命令时,你可以看到每个服务的输出,以便及时了解它们的状态和日志信息。通常在开发或调试过程中使用,因为可以即时查看服务的输出。
docker-compose up -d
:这个命令也会启动 Docker Compose 文件中定义的所有服务,但是使用 -d 参数,它会在后台运行服务,不会将服务的输出显示在终端上。与 docker-compose up 不同,它不会实时输出服务的日志信息,而是将服务放在后台运行。通常在生产环境中使用,因为在生产环境中通常不需要即时查看服务的日志,而是希望服务在后台默默地运行。
总的来说,docker-compose up 更适合开发和调试,而 docker-compose up -d 更适合生产环境中的部署。
要完全关闭堆栈并删除所有持久化数据,请使用以下 Docker Compose 命令:docker-compose down -v
。
为了验证,我们可以使用浏览器或者 curl 等工具访问机器地址加端口号 9200,并使用默认用户名elastic
和默认密码changeme
来访问 Elasticsearch HTTP 端口,如果一切正常,你将看到类似下面的结果。
{
"name": "elasticsearch",
"cluster_name": "docker-cluster",
"cluster_uuid": "7S0UwLQTQKmkGNh4cgWbnQ",
"version": {
"number": "8.13.2",
"build_flavor": "default",
"build_type": "docker",
"build_hash": "16cc90cd2d08a3147ce02b07e50894bc060a4cbf",
"build_date": "2024-04-05T14:45:26.420424304Z",
"build_snapshot": false,
"lucene_version": "9.10.0",
"minimum_wire_compatibility_version": "7.17.0",
"minimum_index_compatibility_version": "7.0.0"
},
"tagline": "You Know, for Search"
}
现在不着急访问 Kibana ,我们继续进行配置调整。
重置内建用户密码
使用docker-compose exec -T elasticsearch bin/elasticsearch-setup-passwords auto --batch
命令对服务默认的账户进行默认密码重置,输出如下:
Changed password for user apm_system
PASSWORD apm_system = dLa1we2mehIDvxKjdRNu
Changed password for user kibana_system
PASSWORD kibana_system = ZacLOywPlQ2O2qrBsXVb
Changed password for user kibana
PASSWORD kibana = ZacLOywPlQ2O2qrBsXVb
Changed password for user logstash_system
PASSWORD logstash_system = pnmP0Tl5mw8S025uMpNt
Changed password for user beats_system
PASSWORD beats_system = VVongPz5BdogJH7CA0hR
Changed password for user remote_monitoring_user
PASSWORD remote_monitoring_user = nIiOwnwWYda0ZhQX0Ot5
Changed password for user elastic
PASSWORD elastic = OoXkxKNwAHjbfOyy8VbU
将密码妥善保存后,我们需要将 docker-compose.yml
配置文件中的 elasticsearch 服务的 ELASTIC_PASSWORD
删除,这样可以确保服务启动只使用我们刚刚重置后的密码。
同时需要对 kibana 、 logstash 配置文件中的信息进行替换,将文件中的 elastic 用户的密码进行更新。前面两个文件好像不修改也是可以的,可能需要将kibana.yml文件中的kibana_system用户密码进行替换一下。
- kibana/config/kibana.yml
- logstash/config/logstash.yml
- logstash/pipeline/logstash.conf
需要注意的是, logstash pipeline 需要一个高权限账号vim logstash/pipeline/logstash.conf
,将用户名和密码替换成elastic的:
output {
elasticsearch {
hosts => "elasticsearch:9200"
user => "elastic"
password => "OoXkxKNwAHjbfOyy8VbU"
}
}
在配置修改完毕后,我们执行 docker-compose restart
重启相关服务。
修改默认语言
默认 kibana的界面是英文,设置过程也比较简单:
修改kibana的配置文件(/kibana/config/kibana.yml),在最下方添加一行:i18n.locale: "zh-CN"
。汉化的不是很彻底,总比全英文好一点。
设置好后重启kibana容器:docker restart kibana
。
使用 Kibana 控制台
使用浏览器访问服务器IP+端口5601,打开 kibana 控制台。使用elastic 账号和密码登录后,就能够看到 Kibana 的界面了。
使用方法
暂未找到
评论