关于LogStash运行在AIX 64位机器上的问题与临时解决方案
需求;logstash运行在SUSE,LINUX,PPC LINUX,AIX机器上,并监控文件发送日志到KAFKA中去,
问题:在AIX机器上,file插件总是报异常,无法完成数据的读取
NotImplementedError: stat.st_dev unsupported or native support failed to load
分析:环境 :AIX 64 OSLEVEL :6.1.0 7.1.0
JDK : IBM JAVA 71 64
报错显示:是在获取设备的主辅号时出了问题,显示没有实现的本地方法,没有详细的报错信息,
我同事细查相关的JAVA源码,一步一步地添加一些日志输出,找到了报错的具体原因.
我们看LOGSTASH的VENDOR JRUBY中就会发现,它的/vendor/jruby/lib/jni
下面没有 PPC64-AIX文件夹,所以具体报错的原因是没有找到相对应的JNI需要调用的本地库文件.
解决方案:
1.编译一份AIX-64位的LIB库文件放置到PPC64-AIX文件夹下
这个过程比较困难,相关的同事说做起来比较麻烦
2.临时解决方案,
使用32位的JDK,因为JRUBY自身带有32位的库文件,然后修改一个地方:
我们直接修改源码部分:
https://github.com/jnr/jnr-posix/blob/master/src/main/java/jnr/posix/POSIXFactory.java
中返回AIX类的固定让它反回32位的库文件.
case AIX:
return jnr.ffi.Runtime.getSystemRuntime().addressSize() == 4
? new String[] { "libc.a(shr.o)" }
: new String[] { "libc.a(shr_64.o)" };
写死成:return new String[]{"libc.a(shr.o)"}
重新编译,把编译后的类替换原来jruby.jar包中相关的class文件,重新打包即可.
jar cMf ../jruby.jar *
java 调用本地库文件来实现某些功能,JRUBY使用JNR/JFFI第三方提供的包来做这件事.
关于LogStash运行在AIX 64位机器上的问题与临时解决方案的更多相关文章
- Windows 7,64位机器上安装DB2 7.2+FP7
1.要想在Windows 7,64位机器上安装DB2 7.2+FP7,注意:1)拷贝所有安装文件到本地2)设置setup.exe文件兼容windows 20003)使得users用户勾选“完全控制”权 ...
- 002-docker安装-mac上安装docker,17.06在CentOS7 64位机器上安装
一.mac上安装docker 1.下载 通过这个链接下载:https://download.docker.com/mac/stable/Docker.dmg 2.安装 将 Moby 的鲸鱼图标拖拽到 ...
- Oracle 在64位机器上使用plSQL连接Oracle的问题(SQL*Net not properly installed)
问题: 在64位机器上了64位的oracle客户端. 然后装上PL/SQL Developer,但是连接oracle老报这个错: Initialization error SQL*Net n ...
- 笔记:C语言数据类型在32位与64位机器上的字节数
读<深入理解计算机系统> 第二章 信息的表示与处理 32位与64位的典型值,单位字节 声明 32位机器 64位机器 char 1 1 short int int 4 4 long int ...
- 解决C#的64位打包程序,在64位机器上运行出现BadImageFormatException异常。
转载自:http://msdn.microsoft.com/zh-cn/library/system.badimageformatexception%28v=vs.100%29.aspx BadIma ...
- MTCP 在 64 位机器上不工作
今天打开以前写的 MTCP, 却无法运行. 报错如下: Exception in thread "Thread-0" java.lang.UnsatisfiedLinkError: ...
- Regsvr32 在64位机器上的用法(转载)
转载:http://blog.csdn.net/xuzhimin1991/article/details/65436864 regsvr32是windows上注册 OLE 控件(DLL 或 Activ ...
- windows 10 64位机器上 安装部署
mi这个博客写的不错 https://www.cnblogs.com/dingguofeng/p/8709476.html 安装redis 可视化工具后 ,新建连接 名称随意,注意端口号是否有误默认6 ...
- [转]C#程序无法在64位系统上运行之.NET编译的目标平台
今天将编译的C#的exe拷贝到测试机上(Win7_64bit),一运行就挂了,提示“stop working”,一开始怀疑测试机上没有安装.net framework框架,追究半天原来是编译的目标平台 ...
随机推荐
- C# EPL USB 指令打印
private void btnPrinter_Click(object sender, EventArgs e) { #region ESC 热敏图像点阵像素点读取打印 //Bitmap bitma ...
- ASP.NET MVC自定义验证Authorize Attribute
前几天Insus.NET有在数据库实现过对某一字段进行加密码与解密<使用EncryptByPassPhrase和DecryptByPassPhrase对MS SQLServer某一字段时行加密和 ...
- 虚拟机安装ubuntu问题解决办法
vmware workstation 10安装ubuntu 13.10看不到下一步,如图所示 解决办法:如果不能调整安装程序的窗口大小,就按住Alt往上托窗口,应该就可以看到右下方的"下一步 ...
- HTML5学习笔记
参考资料:http://www.runoob.com/html/html-tutorial.html 1.html5声明.将此html文档标记为html5文档 <!DOCTYPE html> ...
- Singleton
1.//懒汉模式 //天生线程不安全,但是效率高 public class Singleton { private static Singleton singleton; private Single ...
- 从头开始搭建分布式日志平台的docker环境
上篇(spring mvc+ELK从头开始搭建日志平台)分享了从头开始搭建基于spring mvc+redis+logback+logstash+elasticsearch+kibana的分布式日志平 ...
- 深入了解 Authorize 和 AllowAnonymous
深入了解 Authorize 和 AllowAnonymous Chapter 0 - Intro 最近做的一个项目的时候,自定义授权 Attribute 来区分用户权限,我的项目不太大,权限控制也不 ...
- IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法
当打开IIS管理器,或配置网站时提示错误:配置文件的XML格式不正确 且是applicationHost.config的问题,那么肯定是applicationHost.config被破坏,IIS就崩溃 ...
- Civil 3D API二次开发学习指南
Civil 3D构建于AutoCAD 和 Map 3D之上,在学习Civil 3D API二次开发之前,您至少需要了解AutoCAD API的二次开发,你可以参考AutoCAD .NET API二次开 ...
- iOS之隐藏键盘的方式
一.//触摸空白处隐藏键盘 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { [_feedBackTextView r ...