Elastic Filebeat: ./filebeat: cannot execute binary file
在Linux执行filebeat的时候遇到了如题所示的问题,具体场景如下:
1 2 3 |
[root@cloudera1 elastic-filebeat]# ./filebeat modules enable system -bash: ./filebeat: cannot execute binary file [root@cloudera1 elastic-filebeat]# |
发生上面的错误,是不是因为我在32位的操作系统上执行了64位的软件包的这种操作系统与可执行文件不对应的问题导致的?
查看当前操作系统的这方面的相关信息:
1 2 3 4 5 6 |
[root@cloudera1 elastic-filebeat]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.10 (Santiago) [root@cloudera1 elastic-filebeat]# [root@cloudera1 elastic-filebeat]# uname -a Linux cloudera1 2.6.32-754.el6.x86_64 #1 SMP Thu May 24 18:18:25 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux [root@cloudera1 elastic-filebeat]# |
其实,上面的报错的问题是因为,执行文件的类型与操作系统的版本不匹配导致的;通过命令【file】你可以看得更清楚。
具体如下:
1 2 3 |
[root@cloudera1 elastic-filebeat]# file ./filebeat ./filebeat: Mach-O 64-bit executable [root@cloudera1 elastic-filebeat]# |
可以看到,这个可执行文件的操作系统是针对【Mach-O 64-bit】的,也就是说,它是苹果的Macintouch的操作系统的可执行文件。
故而,不能在我当前的Linxu 64bit上执行。
解决方法:
更换执行文件为Linux的64bit即可。
更换后的样子:
1 2 3 |
[root@cloudera1 elastic-filebeat]# ./filebeat modules enable system Enabled system [root@cloudera1 elastic-filebeat]# |
可以看到,现在就没问题了。