domain-admin域名监控的源码搭建

domain-admin基于Python + Vue3.js 技术栈实现的域名和SSL证书监测平台
用于解决,不同业务域名SSL证书,申请自不同的平台,到期后不能及时收到通知,导致线上访问异常,被老板责骂的问题。

github地址
https://github.com/mouday/domain-admin/

安装文档
https://domain-admin.readthedocs.io/zh_CN/latest/manual/install.html#id2

安装的方式有3中
方式一:pip安装
方式二:docker启动
方式三:下载源码安装

一、环境准备

我自己比较喜欢了解底层原理的运行和实际搭建,所以采用的是源码编译安装。

安装环境 CentOS Linux release 7.8.2003 (Core)
在这里插入图片描述
环境要求
Python >= 2.7 或者 Python >= 3.4
官网安装文档
https://domain-admin.readthedocs.io/zh_CN/latest/manual/install.html#id2

自己安装的常见的错误问题,详细的错误解决方法见文章下面。
1 ssl 版本过低问题 ssl版本过低问题,版本需要大于OpenSSL 1.1.1+,需要重装python3
[root@bogon python3913]# openssl version
OpenSSL 1.1.1l 24 Aug 2021
2 python3提示sqlite3模块不存在解决方法,如果之前没有安装,需要重装python3
[root@bogon python3913]# yum install sqlite-devel -y
Package sqlite-devel-3.7.17-8.el7_7.1.x86_64 already installed and latest version
3 升级ssl后依然报错问题,需要重新安装python。

二、 编译安装python3

pyhon官网 https://www.python.org/
下载 https://www.python.org/downloads/

#安装python3.7以上版本,需要先安装新的包 >
yum install libffi-devel -y #必须安装

wget https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tar.xz
创建源码目录
cd /usr/local/ && mkdir -p python3913
解压源码包
tar xvf Python-3.9.13.tar.xz
进入源码目录
cd Python-3.9.13
编译安装#必须要跟openssl的路径,不然会有版本问题,如果openssl版本正常则忽略–with-openssl=/usr/local/openssl 这个参数。
./configure --prefix=/usr/local/python3913/ --with-openssl=/usr/local/openssl
make
make install
在这里插入图片描述

三、创建虚拟环境

virtualenv是一个可以在同一计算机中隔离多个python版本的工具。有时,两个不同的项目可能需要不同版本的python,如 python2.7 / python3.6 ,但是如果都装到一起,经常会导致问题。virtualenv能够用于创建独立的Python虚拟环境,多个Python相互独立,互不影响。 virtualenvwrapper这个软件包可以让我们管理虚拟环境变得更加简单。不用再跑到某个目录下通过virtualenv来创建虚拟环境,并且激活的时候也要跑到具体的目录下去激活。
下面介绍安装python虚拟环境的方法:
使用pip安装包前,先更新pip。
cd /usr/local/python3913/bin
$ pip3 install --upgrade pip

  1. 安装virtualenv、virtualenvwrapper
    $ pip3 install virtualenv
    $ pip3 install virtualenvwrapper

四、domain-admin部署

在github下载最新版的源码
https://github.com/mouday/domain-admin/tags

每次发布都会包含以下代码包
domain-admin-1.5.8.tar.gz # 完整源码包,包含打包后的H5端、web端代码
domain_admin-1.5.8-py2.py3-none-any.whl # pip包,可直接安装
domain-admin-mini-v1.5.8.tar.gz # H5端源码
domain-admin-web-v1.5.8.tar.gz # web端源码
Source code(zip) # Python源码 windows适用
Source code(tar.gz) # Python源码 linux/mac适用
在这里插入图片描述

wget https://github.com/mouday/domain-admin/releases/download/v1.5.15/domain-admin-1.5.15.tar.gz
tar xvf domain-admin-1.5.15.tar.gz
cd domain-admin-1.5.15
创建虚拟环境
/usr/local/python3913/bin/virtualenv testenv
/usr/local/python3913/bin/virtualenv --python=/usr/local/python3913/bin/python3 testenv
source testenv/bin/activate #激活环境
#退出环境 deactivate
在这里插入图片描述
安装,参考官网文档
https://domain-admin.readthedocs.io/zh_CN/latest/manual/install.html#id2

#安装依赖
pip3 install . #注意,后面有一个点,不要错过,要不报错

新建启动文件 app.py
from domain_admin.main import app
if name == ‘main’:
app.run(port=8000)

启动运行
$ python app.py
在这里插入图片描述
warning提示可以忽略,推荐参考方式一,使用gunicorn 或者 waitress-serve 启动

启动后端口是127.0.0.1,如果我们想访问还的再去配置nginx的转发。
所以选择修改发布的ip为0.0.0.0,可以通过ip来访问。
在这里插入图片描述
(testenv) [root@bogon domain-admin-1.5.15]# cat app.py
from domain_admin.main import app

if name == ‘main’:
app.run(host=“0.0.0.0”,port=8000)
(testenv) [root@bogon domain-admin-1.5.15]#
再次运行
在这里插入图片描述
登录
管理员默认的账号和密码
账号:admin
密码:123456
http://192.168.108.141:8000/#/login?redirect=/cert/list
在这里插入图片描述
登录正常。
在这里插入图片描述

ssl版本过低问题

ssl 的官网地址
https://www.openssl.org/source/old/

(testenv) [root@bogon domain-admin-1.5.15]# python app.py
Traceback (most recent call last):
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘OpenSSL 1.0.2k-fips 26 Jan 2017’. See: https://github.com/urllib3/urllib3/issues/2168
(testenv) [root@bogon domain-admin-1.5.15]#

系统上centos7 系统版本过低,需要升级ssl版本
Centos升级OpenSSL版本
centos7默认openssl版本为1.0.2,安装emqx的mqtt框架时会发生Kernel pid terminated报错,无法启动,所以需要升级openssl版本

1.查看openssl版本
openssl version
2.下载openssl
wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz --no-check-certificate
3.解压
tar -zxvf openssl-1.1.1l.tar.gz
4.进入目录
cd openssl-1.1.1l
5.编译安装
./config --prefix=/usr/local/openssl #如果此步骤报错,需要安装perl以及gcc包
make && make install
6.创建软连接
mv /usr/bin/openssl /usr/bin/openssl.bak
#一定要备份,防止其他的软件依赖,到时候可以恢复。
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/
在这里插入图片描述
echo “/usr/local/openssl/lib” >> /etc/ld.so.conf
ldconfig -v
7.最后查看版本是否成功
openssl version
版本升级成功
在这里插入图片描述

升级ssl后依然报错问题

参考自https://blog.csdn.net/gjj920318/article/details/126972063

我虽然重新安装了openssl但是发现自己的还是报错
说明:requests包引入了urllib3,而新版本的urllib3 需要OpenSSL 1.1.1+以上版本,否则报错:
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+,
currently the ‘ssl’ module is compiled with ‘OpenSSL 1.0.2k-fips 26 Jan 2017’. See: https://github.com/urllib3/urllib3/issues/2168

升级openssl之后,依旧import urllib3 报错
如果你已经确认系统中的OpenSSL显示为新版本,但Python仍然使用旧版本,可能是因为Python解释器没有正确链接到新版本的OpenSSL。

思路1: 重新编译python
重新编译Python是一种解决Python解释器没有正确链接到新版本OpenSSL的方法之一。这可以确保Python使用新版本的OpenSSL库。
配置编译选项:打开命令行终端,切换到Python源代码的目录,并运行以下命令以配置编译选项:
./configure --with-openssl=/path/to/openssl
–with-ssl:表示使用了系统中已安装的 OpenSSL 库。
–with-openssl:表示使用了自带的 OpenSSL 库。
将 /path/to/openssl 替换为新版本OpenSSL库的安装路径。此选项告诉Python编译器在编译过程中使用新版本的OpenSSL。
编译和安装:在命令行终端中运行以下命令以编译和安装重新配置的Python:
make
sudo make install
这将编译Python源代码并将其安装到系统中。注意,在执行sudo make install时,可能需要输入管理员密码。
验证安装结果:重新编译和安装完成后,你可以通过运行以下命令来验证Python解释器是否链接到了新版本的OpenSSL:
python -c “import ssl; print(ssl.OPENSSL_VERSION)”
使用 --with-openssl 亲测可用!推荐~

python3提示sqlite3模块不存在解决方法

首先
yum install sqlite-devel -y

然后重装下python3(一定要重装)
cd python3913
./configure --prefix=/usr/local/python3913
make && make install

测试sqlite3模块,没提示错误就说明成功了

[root@mail Python-3.4.2]# python3
Python 3.4.2 (default, Jul 20 2016, 22:36:42)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>>


因为我是centos7采用的源码编译的方式,对于环境的依赖中间多次,删除python环境和安装好的domain-admin,解决了多个冲突和依赖问题。到此安装篇结束。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值