一 下载logstash镜像
可以在www.docker.elastic.co 查看logstash的版本,这里选择7.16.3。
# 拉取logstash镜像 docker pull docker.elastic.co/logstash/logstash:7.16.3
|
二 启动logstash,复制config文件夹到宿主机
# 创建并启动容器 docker run -itd --name logstash docker.elastic.co/logstash/logstash:7.16.3 # 复制config文件夹到宿主机 docker cp logstash:/usr/share/logstash/config/ /opt/logstash
|
三 停止并删除原容器
# 停掉已启动的logstash容器 docker stop logstash # 删除logstash容器 docker rm logstash
|
四 修改配置文件
1. 进入config文件夹
config文件夹下有如下6个文件:
jvm.options;
log4j2.properties;
logstash-sample.conf;
logstash.yml;
pipelines.yml;
startup.options;
本次需要修改logstash.yml、pipelines.yml与logstash-sample.conf。
2. 修改logstash.yml
修改logstash.yml:
按i进入编辑模式,将xpack.monitoring.elasticsearch.hosts注释掉,修改完成后按Esc,输入:wq保存并退出:
3. 修改pipelines.yml
修改pipelines.yml:
按i进入编辑模式,修改path.config为/usr/share/logstash/config/logstash-sample.conf,如下所示,修改完成后按Esc,输入:wq保存并退出:
pipeline.id: main path.config: "/usr/share/logstash/config/logstash-sample.conf"
|
4. 修改logstash-sample.conf
修改logstash-sample.conf:
按i进入编辑模式,将内容修改为如下所示,修改完成后按Esc,输入:wq保存并退出:
input { tcp { # host修改为当前宿主机服务器的ip host => "0.0.0.0" port => 4560 codec => "json" } } output { elasticsearch { # hosts 修改为es地址,多个地址以逗号分割,http://可以省略,端口号为9200时也可以省略,例如["10.0.0.1", "10.0.0.2"] hosts => ["http://localhost:9200"] # 这里es索引可以自行根据实际情况定义,下述示例中的type为applicationName-profile(服务名-环境),既一个服务一个环境一天创建一个索引 index => "%{[type]}-%{+YYYY.MM.dd}" # user修改为es用户名 user => "elastic" # password修改为es密码 password => "password" } }
|
五 重新创建并启动logstash容器
docker run -itd \ --name logstash \ --restart=always \ -p 5044:5044 \ -p 9600:9600 \ -v /opt/logstash/config:/usr/share/logstash/config \ docker.elastic.co/logstash/logstash:7.16.3
|
--name logstash: 定义容器名称;
--restart=always: 定义总是自动重启,容易意外停止时可进行自动重启;
-p 5044:5044: 端口映射,将宿主机的5044映射到5044端口;
-p 9600:9600: 端口映射,将宿主机的9600映射到9600端口;
-v /opt/logstash/config:/usr/share/logstash/config: 文件夹映射,将宿主机的/opt/logstash/config映射到容器的/usr/share/logstash/config目录;
六 检查4560端口判断logstash是否已启动
lsof -i:4560 # 显示如下表示logstash已启动 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 24915 appuser 122u IPv6 54032655 0t0 TCP *:4560 (LISTEN)
|