缘由        最近看到了2个项目,促使我再次核查了以下这个软件是什么。这两个项目是 webterminal 和 jumpserver 。这两个项目里面都有一个功能 运维审计,用户行为录像。挺好奇这个录像怎么做的,就去找了下有咩有类似的开源软件。其实以前在上海安居客的时候我们运维也有这种软件,但是具体是不是叫这个名字我不太清楚,我个人觉得这种录屏软件挺神奇了 就想了解下,当然由于种种原因 直到本周我才认真查阅了下,找到了这个可以实现这个功能的软件:asciinema介绍        asciinema 是一个开源命令行终端录制器,它可以将命令行输入输出的任何内容加上时间保存在文件中,同时还提供方法在终端或者web浏览器中进行回放。asciinema的录制和播放都是基于文本的,相比传统的video有很多好处,例如录制
缘由        前面我们讲解了 ELK 的搭建过程。最近在处理系统数据发现了一个问题,一个ES节点处理太慢了,基本上要20多个小时才能处理完。这样我们就只能增加ES节点,部署集群模式了。当前是这种单节点服务集群搭建目的要搭建成3节点的服务器,其中3个节点是主节点也是数据节点其实配置ES集群是比较方便了,大家主要几个参数就可以了,主要注意以下几个参数就好了#集群的名字 cluster.name: app-data #节点的名字 node.name: node-1 #节点是否为master节点 node.master: true #节点是否为数据节点 node.data: true #发现节点,一般三个就够了,不需要配置所有的节点 discovery.zen.ping.unicast.hosts: ["192.160.10.1:9300","192.160.10.2:9
缘由    大概9月份有一个脚本总是无法正常执行完,后来手动执行总是会看到出现 “ Segmentation fault ” 错误。我就根据这个错误去搜索引擎查了下,大部分都说是内存错误,我以为是内存不够大,就修改了运行的内存。但是最后发现还是会出现这个错误。排查错误    这种错误一般要生成core.dump文件方便分析,如何生成?如何分析?生成core.dump    默认是不生成的,需要执行如下命令打开。如果再出现 上面的错误的时候 就会生成 core.dump文件(在执行命令的当前目录)ulimit -c unlimitedgdb分析    一般执行如下命令可以进行分析##安装gdb yum install gdb ##分析core文件,core.13
缘由    最近购买了一批二手Dell服务器,由于一些原因远程控制卡没办法使用,所以只能安装OMSA管理工具OMSA 介绍    DELL OMSA的全称为Dell Openmanage Server Administrator,它是戴尔公司基于自主研发力量开发的IT系统管理解决方案,通过与业内领先的系统管理解决方案供应商密切配合,在深入了解用户对系统管理需求的基础上,OMSA系统管理方案可以全面解决系统管理人员最关心的系统部署、系统监控和系统变更三大系统管理问题。它通过提供以下两种方式来对本地和远程的服务器进行管理和监控。1、基于Web浏览器的集成图形用户界面(GUI)2、操作系统的命令行界面(CLI)工具大家可能对DELL的IDRAC更熟悉一点,OMSA其实就是 IDRAC企业版的开源社区版。这里列出IDRAC和OMSA的web界面,两者看着非常相似,功能上也是非常相似。IDRAC截图界面如下OMSA截图
缘由    最近我们接到一个客户项目,客户所有的东西必须部署在独立内网里面的,但是整个程序有一部分是需要访问外网的,可以理解为调用外部网址接口,所以我们就要出一个方案来解决这个问题。假如内网服务器列表如下服务器名称操作系统IP描述服务器ACentos7.9192.168.1.10程序服务器服务器BCentos7.9192.168.1.11程序服务器服务器CCentos7.9192.168.1.12这台机器可以上外网,交换机上专门配置的技术难点    由于我个人对于网络这块连半吊子都算不上,所以只能说硬着头皮上 并且还要考虑安全问题。在做的过程中请教了以前安居客的网络工程师大神,一路走下来,算是磕磕碰碰搞定了,虽然不是那么正统,最起码问题解决了。遇到问题主要如下需要一个 http/https 代理, 让程序的接口可以访问出去yum 安装软件 如何在线安装git 可以使用ssh协议进行clone 更新禁
起源        最近发下很多人在我的python课程下面提问,关于安装完扩展运行程序的时候出现如下的莫名其妙的错误Traceback (most recent call last):   File "manage_web.py", line 2, in     from application import app,manager   File "/data/www/private_deploy/python3_yuanwei/application.py", line 3, in    &
起因大家都知道我有个 Python Flask构建微信小程序订餐系统  课程。这个课程主要是讲解 小程序在线商城的。最近微信小程序更新了获取用户信息的接口:getUserInfo 换成了getUserProfile实践过程小程序修改pages/index/index.wxml 修改如下<button class="confirm-btn" bindtap="getUserProfile" wx:if="{{regFlag==false}}">授权登录</button>pages/index/index.js 修改如下在login方法之后新增加如下方法,为新加的按钮添加触发事件 getUserProfile: function (e) {     var that =&
  缘由        最近我们一台高防服务器,在同步服务器时间时报 no server suitable for synchronization found,最后经查实是机房屏蔽了udp端口所致,因为ntpdate同步时间使用的是udp123端口。rdate解决方案        既然ntp不行我们改用rdate 完全可以解决因国内一些高防机房屏蔽UDP端口而造成的时间无法同步问题。同时rdate使用的端口是37安装yum install rdate同步安装完成之后可以先手动同步 : /usr/bin/rdate -s time.nist.gov 。最保险的方式是配置定时任务 每10分钟或者半个小时执行一次*/10 * * * * /usr/bin/rd
  起源        最近发下很多人在我的python课程下面提问,关于执行python3.7 安装某些扩展有如下报错ModuleNotFoundError: No module named ‘_ctypes’出现原因        Python3中有个内置模块叫ctypes,它是Python3的外部函数库模块,它提供兼容C语言的数据类型,并通过它调用Linux系统下的共享库(Shared library),此模块需要使用CentOS7系统中外部函数库(Foreign function library)的开发链接库(头文件和链接库)。由于在CentOS7系统中没有安装外部函数库(libffi)的开发链接库软件包,所以在安装pip的时候就报了"ModuleNotFoundError:
  起源        最近发下很多人在我的python课程下面提问,关于执行python 定时器Job会报错 如下In aggregated query without GROUP BY, expression #1 of SELECT list contains出现原因        在MySQL5.7.5后,默认开启了ONLY_FULL_GROUP_BY,所以导致了之前的一些SQL无法正常执行,其实,是我们的SQL不规范造成的,因为group by 之后,返回的一些数据是不确定的,所以才会出现这个错误。解决方案        我们知道了原因,就可以去找到对应的解决方法,主要都是修改
缘由    由于公司系统相对来说还是挺多的,定时任务也非常多,一直使用crontab配置存在几个问题。这几个问题只要使用该方式应该都会深有感触。问题一管理维护问题:定时Job太多,不清楚总共有多个Job,不知道每个Job到底是谁写的主要功能是什么。如果Job部署在多台服务器那就更要人命了问题二调度监控问题:crontab在一定程度上解决了调度问题,但是调度不光光是运行状态。在实际工作中还会关注,什么时间运行的,运行了多长时间,运行状态,消耗多少内存等等技术选型    该项目使用python语言开发,其实用php等其他语言也是可以的。但是对于这一类运维类系统 使用Python开发比较容易维护些。而使用Python的话,我们也可以基于前面介绍的 Flask CMS V2框架。该Jobs系统应该也算是第一个基于我们 Flask CMS V2 开发的应用项目了。功能特性教程文档Jobs(乔布斯)管理调度平台 
ELK简介ELK是什么?    elk是三个开源软件的缩写,分别是:Elasticsearch、Logstash、Kibana 。由于Logstash 客户端太占用资源,对服务器的要求比较高,后来FileBeat出现了 ,解决了资源问题,官方也推荐这个工具。    Elasticsearch:实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能    Logstash:日志收集,分析,过滤并转化到对应的存储库    Kibana:一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据    Filebeat:监控日志文件、转发。 需要收集数据的服务器端需要安装这个架构图如上图你可以看出来,FileBeat 将数据 通过队列 发给 Logstas
缘由    我在工作过程中发现,我们经常会开发很多相同类似的东西,每一次都是从零开始,既浪费时间还没有意义,基本都是复制。我个人认为我们应该把很多基础东西开发好 以后所有其他的应用系统都基于这个上面进行开发,既可以让基础越来越丰富,也可以统一维护。    学过我Python视频课程的应该知道,我都是用了同一个自己整理过的 Flask 框架。用的多了慢慢就整理和优化了很多技巧。技术选型    有很多人肯定有疑问,为什么我们要选择Flask,其实这个我觉得是根据个人使用习惯的,网上也有很多人对比了不少框架的。我个人用过Django 和 Flask 这两个框架,其实我觉得区别没有那么大,一定要说一个理由:Flask 比较容易入门,可以根据自己的想法改成自己想要的模式。    很早以前使用Django唯一的感觉是配置有点混乱(相对比Flask),但是经过这么
起因        最近总是遇到悲催的事情,这次的事情更悲催,某机房提供服务供应商跑路了,早上10点多通知 晚上6点断电,我X你的仙人板板。抱怨归抱怨,但是烂屁股的事情还得擦。 没办法只能换机房了,幸好早都勾搭上了一家高防供应商。但是迁移也是一个麻烦事情。        窘境需要备份的文件过大        目前这边公司的主要提供广告服务,所有各种图片,静态页面比较多,图片总共差不多80G(分别是30G、50G 两个文件夹)待迁移的服务器过多    大概负责3个公司,高防机器总共5台。在相对差不多8个小时(其实不到6个小时,因为整理好这些机器的业务之后差不多12点了)要处理好这些迁移事情,时间总体来说肯定是不够的
悲催的事情    今天下午2点多(时间发生故障的时间是14:14 ,反馈时间却是:14:25 )收到运营推广部门同事告知,网站打不开了,这个烦呀,怎么会打不开了,由于以前的系统有问题,都重新写了,切换到新的系统上面了,打不开就直接报错了,报错页面如下分析过程 找到错误日志               出现错误不可怕,这一点我们必须第一时间明确,千万不要担心,担心解决不了任何问题。 对我们最有帮助的就是各种业务日志。通过查阅日志得出如下的错误,当时出现了大量的错误日志curl: (56) Recv failure: Connection reset by peer       
缘由为什么要录制关于 HTTPS 的一个小课程,本来我是准备给我们团队分享下关于 HTTP请求过程 的主题。最近关于数据安全的话题越来越多,2020也可以称之为 数据治理年。所以计算要讲HTTP,那就把HTTPS一起讲了算了,不然可能PPT都凑不够30分钟 哈哈。大纲HTTPS是什么HTTPS为什么安全如何申请HTTPS证书如何配置HTTPS证书HTTPS是什么解读HTTP请求流程HTTPS为什么安全如何申请HTTPS证书服务商泛域名有效期自动续期阿里云不支持1年不支持Let's Encrypt支持3个月支持更多详细请看视频课程还在等什么赶紧去看看,从不知到全面了解HTTPS相关资料github下载地址:https://github.com/mooc-class/mooc gitee下载地址:https://gitee.com/mooc_video/mooc   
缘由最近在录制 从不知到全面了解HTTPS  这个视频,在使用acme.sh 申请ssl证书的时候 ,安装脚本出错,错误信息大致如下curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused解决方案绑定hosts的方式  $ vim /etc/hosts 199.232.68.133 raw.githubusercontent.com
  缘由        大家都知道我们做一个客服系统,是基于websocket长连接服务的。在这些长连接服务进程中,会对数据库有些操作。建议尽量在这些长连接服务中,少查询数据,能用缓存都用缓存。我们都知道数据库服务保持连接是有时间限制的,过了时间在操作数据库会出现错误:MySQL server has gone away。这里就要用到数据库重连机制来实现了        我们的客服系统使用的MVC框架是Yii2,大家都知道我一直使用这个框架,其他的框架基本不怎么熟悉。那我们就看看基于Yii2 如何实现数据库断开重连机制解决思路        在很多编程语言里面有一个概念:连接池。在世界上最好的语言php世界里目前这块成熟的还是比较少的,这个主要是php的以
问题最近心血来潮把mac版本升级了下,然后就发现我写的登录SSH的脚本  无法登录服务器了。一开始以为是dns出问题了,但是单独 ping  域名  ip 却是对的,我就非常郁闷了。但是由于比较忙一直就没有在乎这个问题,今天上网搜索了下发现有人遇到同样的问题,原来是 mac 升级之后的一个Bug、Bug、Bug。解决方法按照新版本的opensshbrew install openssh
起因大家都知道我有个 Python Flask构建微信小程序订餐系统  课程。这个课程主要是讲解 小程序在线商城的。但是有很多学生小程序的账号是没有支付权限的,那么如何完成整个闭环课程的学习咧?接下来我来给大家讲解整个过程。实现过程原理其实很简单,就是模拟支付完成跳过支付过程。这里我用两种方案给大家实现。如下图,由于没有支付权限 就会导致 支付回调 没有。那么我们就得做一件事情:模拟支付回调等于就是自己做一个入口 可以调用支付回调的业务逻辑就行了 也就是C方案一:web模拟回调废话不说,直接上代码''' 模拟回调方法 其实所有回调基本都是校验合法性 然后找到订单id,所以我们模拟就是直接传递 订单id 访问url(可以使用浏览器直接访问) : api/order/callback2?id=xxxx xxx 就是你想把某个订单设置为成功的订单id值 ''' @route_a
  每次使用sudo su切换为root用户的,时候,发现/etc/profile里面的配置竟然不可用系统是centos 6.4的,然后研究了一下 /etc/profile  /etc/environment(这个文件为空,那就是什么都不执行)  ~/.profile  /etc/bashrc  ~/.bashrc当用普通用户登陆的时候,会执行    /etc/profile   /etc/bashrc 当使用sudo su切花的时候,会执行   /etc/bashrc    ~/.bashrc(会内部调用 /etc/bashrc)所以可以在 ~/.bashrc  最后一行加入  source  /etc/profile/etc/profile:在登录时,操作系 统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,
起因由于我录制过一个小程序的课程,里面有消息模板的讲解。最近有几位同学反馈 官方要 取消消息模板,使用订阅消息。为了方便大家容易学 Python Flask构建微信小程序订餐系统  课程。我把订阅消息结合这个课程讲解下如何实现实现过程其实对于我们来讲,对接第三方无非就是接口地址换了,或者流程上做一些调整。好,废话少说我们直接来通过实战讲解如何对接  订阅消息第一步:阅读订阅消息官方文档对接任何东西必然要先了解这个东西是什么?流程是什么样的?官方文档地址:点击这里传送门。主要步骤就是 申请模板、获取发送权限、后端调用api发送。其中和模板消息最大的区别 就是要获取下发权限,这是最大的区别。也就是这个权限控制在用户手中了。第二步:申请模板第三步:获取授权这一步就需要有个界面明确让用户订阅消息,如果用户拒绝 就不能给用户发送消息了。需要改一下我们课程的小程序。对应API地址:点击这里传送门。那我们来修改我们支付相关的代码。修改记录 总共需要修改三个文件mina/p
缘由    Python在AI,AR VR这块使用越来越广泛。同时在Web方面也有很多成熟的框架。而我本身由于使用Flask 比较多,个人认为就是比较简单,容易入手,可定制化强。这里我将我经过多个项目多次迭代的自认为还可以的框架结构整理出来。方便自己可以更容易创建新项目。    大家也知道我录制了两门关于python的课程都是基于这个定制化的分层结构的框架开发系统的目录结构. ├── api  api存放 │   ├── controllers 所有的C层放在这里 │   ├── interceptors 拦截器相关 ├── application.py  封装的Flask的全局变量,包括app,数据库等 ├── common 存放
  最近使用了acme.sh 生产了 Let's Encrypt 的https 证书,但是在实际服务器上测试遇到如下问题$ curl  "https://www.aaa.com" 如下错误 curl: (60) Peer's Certificate issuer is not recognized. More details here: http://curl.haxx.se/docs/sslcerts.html curl performs SSL certificate verification by default, using a "bundle"  of Certificate&
  缘由最近在偶然机会下看了些关于AR VR的资料。查找资料还是挺耗时的一件事情,记录下来一来可以方便大家,二来也可以方便我们自己查阅资源列表前端人脸识别框架Tracking.js与JqueryFaceDetection微信小程序可实现 AR 效果,将带来哪些影响?技术实现有哪些?微信小程序拍照后提取指定框内的图片微信小程序实现拍照画布指定区域生成图片微信小程序可实现 AR 效果,将带来哪些影响?技术实现有哪些?微信小程序运行 TensorFlow 的 Demo如何让onCameraFrame 获取的frame数据与相机控件显示范围一致小程序 使用upng.js 把小程序选择的图片转换为base64小程序canvas转base64方法 使用upng库 亲测没问题微信小程序运行 TensorFlow 的 Demo TensorFlow 实现抠图算法 Deep Image Matting(占坑) trackingjs Web人脸检测实现人脸贴图、Web人脸识别、tracking.js、face-
缘由由于过年期间,大家都在外地,临时需要登录FTP,特别2020年面临肺炎事件,大部分员工都在家办公了。但是非常奇怪的是 一直出现如下 错误ftp> ls 500 Illegal PORT command. ftp: bind: Address already in use ftp> ftp> dir 500 Illegal PORT command.解决方案我开始还以为是网络问题,但是测试各种情况,都不行。然后就上网查看了相关资料发现是防火墙设置的问题。通过如下解决问题局域网用FTP命令访问外网的FTP SERVER,执行任何命令(如dir,ls,put,get)总是报下面的错误 ftp:500 Illegal PORT command. 425 ftp:Use PORT 
起因今天登陆服务器想查看一个端口的占用情况,发现好多TIME_WAIT的情况,吓我一跳。如下是TCP 建立连接的示意图缘由time_wait的作用TIME_WAIT状态存在的理由: 1)可靠地实现TCP全双工连接的终止    在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭端发出的,如果这个最终的ACK丢失,服务器将重发最终的FIN, 因此客户端必须维护状态信息允许它重发最终的ACK。如果不维持这个状态信息,那么客户端将响应RST分节,服务器将此分节解释成一个错误(在java中会抛出connection reset的SocketException)。 因而,要实现TCP全双工连接的正常终止,必须处理终止序列四个分节中任何一个分节的丢失情况,主动关闭的客户端必须维持状态信息进入TIME_WAIT状态。   2)允许老的重复分节在网络中消逝  TCP分节可能由于路由器异常而“迷途”,在迷途期间,TCP发送端可能因确认超时而重发
  有时候我们把Yii2 版本进行升级之后 会报一些莫名其妙的错误,这次就遇到如下错误信息an Error occurred while handling another error: exception  'yii\web\HeadersAlreadySentException' with message 'Headers already sent in /xxxx/xxxx/xxx.php on line 90.' in /xxxx/xxxx/vendor/yiisoft/yii2/web/Response.php:366 Stack trace: #0 /xxxx/xxxx/vendor/yiisoft/yii2/web/Response.ph
缘由由于我个人有个小博客,然后还录制了一些课程,所有就建立了对应的微信群,但是微信群的二维码是变化的,总不能经常换了。所以就想搞一个微信机器人,自动加 微信,自动拉群。废话不多说,先上图效果展示大家可以试试效果,效果相当棒需求其他人可以通过二维码加我好友 自动通过好友通过之后 主动发送一些邀请入群链接和介绍信回复 邀请 、加群 可以发送邀请入群链接所有聊天数据都要存储起来 并且可以通过Web展示根据用户输入信息 回复相关内容技术选型Python3Flask:轻量级的MVC 框架itchat :实现微信API相关接口MySQL:存储相关微信内容图灵机器人:调用API实现主动场景回复架构本人没有使用flask 默认的MVC方式,使用了我自己实现过后的:结构分层明了的MVC框架 。结构如下每一个文件夹都有自己明确的作用├── application.py ├── common │   ├── libs │  &nb
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981