Skip to content

Xlog 加密使用指引

garryyan edited this page Dec 26, 2018 · 3 revisions

注意

  1. 如果不想使用加密模块或者环境配置不成功,public key 参数设置为空字符即可,解密脚本使用 decode_mars_nocrypt_log_file.py, 但这样日志会只压缩不加密。
  2. 同步日志考虑到效率问题,不使用加密。也不建议给线上用户开启同步日志,推荐所有 release 版本异步模式日志。

在这之前先确保自己机器安装了python2.7x的版本

Windows

  1. python 版本要求: 2.7.12 (实测2.7.0版本会报错) 64位下载链接地址。 请注意区分python版本是32位还是64位,如果windows系统为64位,则请下载64位python版本。同时请配置python的环境变量,可参考:http://www.cnblogs.com/dangeal/p/5455005.html

  2. 下载安装 openssl windows,注意区分自己机器Win32还是Win64。 64位请直接点击下载
    32位点击下载

  3. 下载安装python setuptools 工具 ,解压之后在终端进入到解压的当前目录中:使用命令:
    python setup.py install

  4. 下载安装python Pip工具 解压之后,在终端进入到解压目录的pip目录下,使用命令: python setup.py install 进行安装

  5. 下载 pyelliptic1.5.7 解压后在终端进入到执行: python setup.py install 安装pyelliptic1.5.7

OS X

  1. 下载 pyelliptic1.5.7
  2. 解压执行:python setup.py install 安装 pyelliptic1.5.7 注:如果没权限sudo python setup.py install

Linux/Unix

  1. 安装 openssl。如已安装忽略此步骤。
  2. 下载 pyelliptic1.5.7
  3. 解压执行: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脚本中。

常见问题

  1. 如果遇到 error: unpack requires a string argument of length 8。 请试着把python版本换成2.7.10以后的版本,但注意还是2.7x版本。

  2. 来自 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#egg=pyelliptic