Logstash启动成功无预期输出,如何排查CSV日志解析配置问题
问题解决步骤
1. 修复文件路径匹配问题
你当前配置里的path规则是/Users/sunjiayang/Documents/workspace_logstash/logstash-7.1.0*_log.csv,会匹配logstash-7.1.0开头、后缀为_log.csv的文件,请先确认你要解析的CSV文件是否符合该命名规则,如果不符直接修改为你实际的CSV文件绝对路径,也可以先写死单个文件的绝对路径测试,避免通配符匹配错误。
2. 检查文件读取权限
你使用sudo运行Logstash,进程以root身份运行,请确认目标CSV文件对root用户开放了可读权限,可执行以下命令赋权:
sudo chmod +r 你的CSV文件绝对路径
3. 调整file输入配置适配全量文件读取
你配置了mode => "tail",该模式默认只会监听文件新增内容,如果你要读取已有文件的全部内容,把mode修改为read模式即可,修改后的input配置参考:
input { file { mode => "read" path => ["你确认正确的CSV文件路径"] sincedb_path => "/dev/null" start_position => "beginning" file_completed_action => "log" file_completed_log_path => "/tmp/logstash_read_completed.log" codec => plain { charset => "UTF-8" } } }
4. 确认CSV格式符合配置要求
确认你的CSV文件第一行是表头(你配置了skip_header => true会自动跳过首行),后续每行的字段顺序为Date、Level、ErrorMessage、UserId,为逗号分隔的标准CSV格式,无多余特殊字符。
5. 重启Logstash验证
修改完配置后先杀死已运行的Logstash进程,再重新执行启动命令:
sudo bin/logstash -f config/logstash.conf
启动后即可看到你预期的解析输出结果。
内容的提问来源于stack exchange,提问作者sunjiayang
相关产品推荐
相关产品推荐

