在不同操作系统中,使用命令行启动 Logstash 的方式略有不同。以下是具体步骤和示例:
1. Linux/macOS 系统
前提条件
- 已安装 Java(版本 8 或 11,Logstash 依赖 Java 运行环境)。
- 已下载并解压 Logstash(或通过包管理器安装)。
启动步骤
-
进入 Logstash 目录:bash
cd /path/to/logstash
例如,如果下载并解压到/opt/logstash-7.17.0,则执行:bashcd /opt/logstash-7.17.0
-
使用配置文件启动:bash
./bin/logstash -f /path/to/your/config.conf
-f:指定配置文件路径(如/etc/logstash/conf.d/目录下的配置文件)。- 示例:使用当前目录下的
logstash.conf配置文件:bash./bin/logstash -f logstash.conf
-
后台运行(守护进程模式):bash
nohup ./bin/logstash -f /path/to/your/config.conf &
- 使用
nohup和&使 Logstash 在后台持续运行。
2. Windows 系统
前提条件
- 已安装 Java(版本 8 或 11)。
- 已下载并解压 Logstash。
启动步骤
-
打开命令提示符(CMD)或 PowerShell:
- 按
Win + R,输入cmd或powershell并回车。
- 按
-
进入 Logstash 目录:powershell
cd C:\path\to\logstash
例如:powershellcd C:\logstash-7.17.0
-
使用配置文件启动:powershell
.\bin\logstash.bat -f C:\path\to\your\config.conf
- 示例:使用当前目录下的
logstash.conf:powershell.\bin\logstash.bat -f logstash.conf
-
后台运行(可选):
- 可使用第三方工具(如
nssm)将 Logstash 注册为 Windows 服务。
- 可使用第三方工具(如
3. 常用启动参数
| 参数 | 说明 |
|---|---|
-f |
指定配置文件路径(如-f /etc/logstash/conf.d/input.conf)。 |
-t |
测试配置文件语法是否正确,不启动服务(如./bin/logstash -t -f ...)。 |
--config.test_and_exit |
同上,测试配置后退出。 |
--path.data |
指定数据存储路径(默认LOGSTASH_HOME/data)。 |
--debug |
启用调试模式,输出详细日志。 |
--quiet |
安静模式,减少日志输出。 |
4. 验证启动是否成功
- 查看控制台输出:
- 启动成功后,Logstash 会显示类似以下信息:
plaintext
[INFO ] 2023-05-01T12:00:00.000Z logstash.runner - Logstash started successfully
- 启动成功后,Logstash 会显示类似以下信息:
- 检查监听端口:
- 若配置了 HTTP 输入(如端口
5044),可使用以下命令验证:bashnetstat -tulpn | grep 5044 # Linux/macOS
powershellGet-NetTCPConnection | Where-Object LocalPort -eq 5044 # Windows
- 若配置了 HTTP 输入(如端口
5. 配置文件示例
假设
logstash.conf内容如下:
conf
input {file {path => "/var/log/syslog"start_position => "beginning"}}filter {grok {match => { "message" => "%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:host} %{DATA:program}(?:\[%{POSINT:pid}\])?: %{GREEDYDATA:message}" }}}output {stdout { codec => rubydebug }elasticsearch {hosts => ["localhost:9200"]index => "logstash-%{+YYYY.MM.dd}"}}
常见问题
-
Java 版本不兼容:
- 确保 Java 版本为 8 或 11,可通过
java -version检查。
- 确保 Java 版本为 8 或 11,可通过
-
权限问题:
- Linux 系统中,确保 Logstash 有读取日志文件的权限。
-
配置语法错误:
- 使用
-t参数测试配置文件:bash./bin/logstash -t -f /path/to/config.conf
- 使用
-
端口被占用:
- 检查并关闭占用相同端口的其他服务。
通过以上步骤,你可以使用命令行启动 Logstash 并开始收集解析日志数据。根据实际需求调整配置文件即可。