docker安装logstash
镜像下载省略
先创建本地配置文件,运行容器时将文件映射到容器中,后期修改配置也方便
1、编辑logstash.yml配置文件,logstash.yml配置文件放在宿主机/data/elk/logstash目录下,内容如下:
path.config: /usr/share/logstash/conf.d/*.conf
path.logs: /var/log/logstash
2、编辑beats.conf文件,文件放在宿主机/data/elk/logstash/conf.d目录下,内容如下:
input {
tcp {
port => 9600
codec => "json"
proxy_protocol => true #开启后能获取到代理IP和真实IP地址,并且开启后只能通过nginx代理连接,不能直接连接
}
}
filter {
ruby {
code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
}
ruby {
code => "event.set('@timestamp',event.get('timestamp'))"
}
mutate {
remove_field => ["timestamp"]
}
mutate {
gsub => [ "message", "\\n", "\n\r" ]
}
}
output {
elasticsearch {
action => "index"
hosts => ["192.168.5.71:9200"]
index => "%{[appname]}"
}
}
3、创建logstash容器
docker run -di --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 -p 5044:5044 -p 9600:9600 --name logstash -v /data/elk/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml -v /data/elk/logstash/conf.d/:/usr/share/logstash/conf.d/ --net esnet logstash:7.8.0
注意网卡net必须和elasticsearch使用同一个(如果elasticsearch是用容器安装),否则数据无法同步!!!
4、查看容器运行状态
docker ps
docker logs -f logstash
下面介绍在linux宿主机安装方法
linux安装logstash
1.解压tar包
2.vi 安装目录/config/logstash-sample.conf
input {
tcp {
port => 9600
codec => "json"
proxy_protocol => true #开启后能获取到代理IP和真实IP地址,并且开启后只能通过nginx代理连接,不能直接连接
}
}
filter {
ruby {
code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
}
ruby {
code => "event.set('@timestamp',event.get('timestamp'))"
}
mutate {
remove_field => ["timestamp"]
}
mutate {
gsub => [ "message", "\\n", "\n\r" ]
}
}
output {
elasticsearch {
action => "index"
hosts => ["192.168.5.71:9200"]
index => "%{[appname]}"
}
}
3.启动logstash
cd bin目录下,执行:
nohup ./logstash -f ../config/logstash-sample.conf --config.reload.automatic &
nohup,后台启动
该–config.reload.automatic选项启用自动配置重新加载,因此您不必在每次修改配置文件时停止并重新启动Logstash。
- 推荐使用service方式启动。
ps -ef | grep logstash 查看logstash进程是否开启
nohup方式启动(了解,不推荐)
nohup logstash -f ../config/logstash-sample.conf --config.reload.automatic &
配置logstash以service方式启动
1、修改logstash安装目录下config/startup.options
LS_HOME=/app/nari/logstash/
# logstash settings directory, the path which contains logstash.yml
LS_SETTINGS_DIR=${LS_HOME}/config
LS_CONFIG_DIR=${LS_HOME}/config.d
# Arguments to pass to logstash
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} --path.config ${LS_CONFIG_DIR}"
2、将logstash.conf文件放置在LS_CONFIG_DIR目录下。
3、切换到root用户执行以下命令,会在/etc/systemd/system/下生成logstash.service文件。
logstash安装目录(绝对路径)/bin/system-install
4、赋予logstash.service可执行权限(chmod +x 文件名)。
5、使用systemctl start|stop|restart|enable logstash 启动和停止服务。