Xlog 加密使用指引
注意
- 如果不想使用加密模块或者环境配置不成功,public key 参数设置为空字符即可,解密脚本使用 decode_mars_nocrypt_log_file.py, 但这样日志会只压缩不加密。
- 同步日志考虑到效率问题,不使用加密。也不建议给线上用户开启同步日志,推荐所有 release 版本异步模式日志。
在这之前先确保自己机器安装了python2.7x的版本
Windows
python 版本要求: 2.7.12 (实测2.7.0版本会报错) 64位下载链接地址。 请注意区分python版本是32位还是64位,如果windows系统为64位,则请下载64位python版本。同时请配置python的环境变量,可参考:http://www.cnblogs.com/dangeal/p/5455005.html
下载安装 openssl windows,注意区分自己机器Win32还是Win64。 64位请直接点击下载
32位点击下载下载安装python setuptools 工具 ,解压之后在终端进入到解压的当前目录中:使用命令:
python setup.py install
下载安装python Pip工具 解压之后,在终端进入到解压目录的pip目录下,使用命令:
python setup.py install
进行安装下载 pyelliptic1.5.7 解压后在终端进入到执行:
python setup.py install
安装pyelliptic1.5.7
OS X
- 下载 pyelliptic1.5.7
- 解压执行:
python setup.py install
安装 pyelliptic1.5.7 注:如果没权限sudo python setup.py install
Linux/Unix
- 安装 openssl。如已安装忽略此步骤。
- 下载 pyelliptic1.5.7
- 解压执行:
python setup.py install
安装 pyelliptic1.5.7
在 mars\log\crypt 下执行python gen_key.py
如果能生成成功则表示配置成功。 python gen_key.py
会生成private key 和public key,把pulic key作为appender_open 函数参数设置进去,private key务必保存在安全的位置,防止泄露。并把这两个key设置到 mars\log\crypt 中 decode_mars_crypt_log_file.py脚本中。
常见问题
如果遇到 error: unpack requires a string argument of length 8。 请试着把python版本换成2.7.10以后的版本,但注意还是2.7x版本。
来自 yaowenqiang issue 的提醒: pyelliptic1.5.7 不支持 openssl 1.1 版本,会报以下错误:
AttributeError: /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1: undefined symbol: ECDH_OpenSSL
可以安装下面这个打补丁的版本
pip install https://github.com/mfranciszkiewicz/pyelliptic/archive/1.5.10.tar.gz