logstash最常见的运行方式即命令行运行./bin/logstash -f logstash.conf
然后通过ctrl+c结束,这种方式的优点在于运行方便,但是缺点也很明显,不便于管理,同时如果遇到服务器重启,则维护成本会更高一些,如果在生产环境运行logstash建议还是使用服务的方式运行。本文介绍如何将logstash加入linux的service中,以服务的方式启动logstash,同时借助service的特性实现开机自启动的能力。
0X01 环境准备
- logstash 5.x 以上版本,假设安装在/opt/logstash目录
- Centos服务器
0x02 配置
在安装目录下修改startip.optins
文件
vi /opt/logstash/config/startup.options
# Set a home directory
LS_HOME=/opt/logstash
# logstash settings directory, the path which contains logstash.yml
LS_SETTINGS_DIR=/opt/logstash/config
# Arguments to pass to logstash
LS_OPTS="--path.settings ${LS_SETTINGS_DIR} -f /root/mylogstash"
# 我们把logstash的配置文件如logstash.conf都放在/root/mylogstash目录下面
# user and group id to be invoked as
LS_USER=root
LS_GROUP=root
之后我们编辑logstash.conf 配置文件,下面的例子将heartbeat写到磁盘上
input{
heartbeat{
interval => 60
type => "heartbeat"
message => "logstash is alive"
}
syslog{
host => "0.0.0.0"
port => 1514
}
}
output{
file {
path => "/root/logs/%{+yyyyMMdd}.log"
codec => line { format => "%{message}"}
}
}
0x03 创建服务
以root身份执行logstash命令创建服务
/opt/logstash/bin/system-install
完成后在会在这里创建一个配置文件/etc/systemd/system/logstash.service
0x04 启动服务
启动Logstash服务
- 设置服务自启动:systemctl enable logstash
- 启动服务:systemctl start logstash
- 停止服务:systemctl stop logstash
- 重启服务:systemctl restart logstash
- 查看服务状态:systemctl status logstash
0x05 查看日志
默认情况下日志会保存在以下两个位置
- /var/log/messages
- /opt/logstash/logs