缘由    git 目前已经是非常流行的版本管理工具了。当时我在安居客的时候就已经使用这个工具了。而代码私有化管理是正常的一个需求,因为代码也是公司的资产。这几年使用过好几个,最开始的是gitlab,我专门写过一篇文章:用GitLab搭建自己的私有GitHub。然后是gogs。目前我们使用的是gitea。Gitea    gitea是从 gogs发展而来的,我个人使用过程发现感觉比gogs安装和使用都方便,还有是开源的。这点必修要佩服哪些开源的人和团队,因为有了这些开源工具才让我们研发效率更高更快。具体更详细的介绍,可以看官方文档,具体链接我放在参考资料部分了。准备gitea需要数据库记录基本信息,数据库我选用的是MySQL安装  二进制安装最简单,参考地址:二进制安装文档 。下载执行就好了wget -O gitea https://dl.gitea.io/gitea/
  问题        由于公司使用了OpenVPN来保证网络的安全,但是发现每一次连接上VPN之后整个网络都变成服务器的出口IP了,这时候网络就非常慢了,并且这样也不对,应该需要走OpenVPN的再走。这时候就需要配置分流了。配置在服务端和客户端改一个都可以,由于改服务端影响比较大,所以那就改客户端的配置客户端路由分流路由控制需要由三个参数进行定义:route-nopull如果在客户端配置文件中配route-nopull,openvpn连接后将不会在电脑上添加任何路由,所有流量都将本地转发。vpn_gateway如果在客户端配置文件中配vpn_getaway,默认访问网络不走vpn隧道,如果可以通过添加该参数,下发路由,访问目的网络匹配到会自动进入VPN隧道。route 10.0.0.0 255.255.255.0  vpn_gateway route 172.
  缘由        前面不是写过一个文章 局域网内网机器上网实操。基于这个情况,有时候需要某台机器的文件夹或者文件要被其他机器共享。假设服务器如下服务器名称操作系统IP描述服务器ACentos7.9192.168.1.10文件服务器服务器BCentos7.9192.168.1.11需要访问服务器A的文件技术方案技术方案肯定比较多,例如可以直接 scp 复制服务器A的需要文件到 服务器B。还有一种方式可以共享挂载 :NFSNFS网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。NFS是基于UDP/IP协议的应用,其实现主要是采用远程过程调用RPC机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC
缘由        前面我们讲解了 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
缘由        随着公司研发人员越来越多,为了安全控制要对服务器访问进行控制。为了让线上服务器更安全,所以要进行技术改造。如下图是以前的架构图图。技术人员主要通过SSH到堡垒机 在通过堡垒机去链接其他服务器或者数据。此时堡垒机是要暴露一个公网SSH端口在外面的,这样不太安全。所以想到了用VPN解决改变之后的架构图对比之后我们可以发现,SSH线路被VPN取代了,这样我们就可以把SSH的端口关闭掉,只使用VPN就可以直接到堡垒机了。这样我们就需要在堡垒机服务器安装一个VPN服务就可以了。关于VPN软件相关东西就不细说。本来写了很多内容,微信公众号那边提示违规了,那就去掉了,机制的你们肯定可以找到对应的解决方案。参考脚本点击这里。当连接上VPN,这时候你就相当于在堡垒机服务器上面了,直接可以连接 业务服务器了。至于如何控制每个用户可以登录哪些业务服务器 需要增加业务系统,我们内部自己用Python开发了一套CMDB
  缘由    我们有个同事要安装一个软件,就用yum 安装,然后就悲剧。安装完成之后 发现无论执行任何命令都会报错,如下错误psgrep: relocation error: : /usr/lib64/libpthread.so.0: relocation error: symbol __libc_dl_error_tsd, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference/usr/lib64/libpthread.so.0: symbol __libc_dl_error_tsd, version GLIBC_PRIVAT
缘由    大概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 selenium 调用的chrome无头浏览器,所以我们依然选择了selenium调用chrome进行截图。截图核心代码如下,非常简单###核心代码如下 driver.get( url ) #初始化一个屏幕大小 driver.set_window_size(1400, 900) ##通过脚本获取页面宽和高,设置窗口大小 width = driver.execute_script("return document.documentElement.scrollWidth"
  缘由        最近我们一台高防服务器,在同步服务器时间时报 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
缘由    由于公司系统相对来说还是挺多的,定时任务也非常多,一直使用crontab配置存在几个问题。这几个问题只要使用该方式应该都会深有感触。问题一管理维护问题:定时Job太多,不清楚总共有多个Job,不知道每个Job到底是谁写的主要功能是什么。如果Job部署在多台服务器那就更要人命了问题二调度监控问题:crontab在一定程度上解决了调度问题,但是调度不光光是运行状态。在实际工作中还会关注,什么时间运行的,运行了多长时间,运行状态,消耗多少内存等等技术选型    该项目使用python语言开发,其实用php等其他语言也是可以的。但是对于这一类运维类系统 使用Python开发比较容易维护些。而使用Python的话,我们也可以基于前面介绍的 Flask CMS V2框架。该Jobs系统应该也算是第一个基于我们 Flask CMS V2 开发的应用项目了。功能特性教程文档Jobs(乔布斯)管理调度平台 
ftp?还有人用?其实在没有出来跑以前也觉得FTP应该死绝了,在上海各个比较可以的互联网公司,听到研发用FTP不说都鄙视吧,至少很多人认为没技术追求。但是我不得不说,在研发人员眼里觉得很Low的工具,在非专业人员眼里。需求来源方是:在互联网公司都会有设计或者前端,有很多公司其实只做单页面的,根本不需要什么后端人员。让设计或者前端学习Git 必要性不大,FTP又是一个交互非常有好的GUI工具服务,导致这种需求还是很旺盛的需求每个人元要有单独的账号不同账号可能允许访问的目录不一样记录操作日志配置环境安装vsftp#安装 yum install -y vsftpd #设置开机启动 systemctl enable vsftpd.service命令讲解#启动 systemctl start vsftpd.service #停止 systemctl stop vsftpd.service #查看状态 s
ELK简介ELK是什么?    elk是三个开源软件的缩写,分别是:Elasticsearch、Logstash、Kibana 。由于Logstash 客户端太占用资源,对服务器的要求比较高,后来FileBeat出现了 ,解决了资源问题,官方也推荐这个工具。    Elasticsearch:实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能    Logstash:日志收集,分析,过滤并转化到对应的存储库    Kibana:一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据    Filebeat:监控日志文件、转发。 需要收集数据的服务器端需要安装这个架构图如上图你可以看出来,FileBeat 将数据 通过队列 发给 Logstas
悲催的事情    今天下午2点多(时间发生故障的时间是14:14 ,反馈时间却是:14:25 )收到运营推广部门同事告知,网站打不开了,这个烦呀,怎么会打不开了,由于以前的系统有问题,都重新写了,切换到新的系统上面了,打不开就直接报错了,报错页面如下分析过程 找到错误日志               出现错误不可怕,这一点我们必须第一时间明确,千万不要担心,担心解决不了任何问题。 对我们最有帮助的就是各种业务日志。通过查阅日志得出如下的错误,当时出现了大量的错误日志curl: (56) Recv failure: Connection reset by peer       
缘起        最近在网上看到一个非常厉害的项目:https://github.com/ouyanghuiyu/chineseocr_lite  ,可以进行图片OCR识别,并且识别率还可以,关注这个是为了风控系统中的网页图片识别做技术储备。大家可以去看看非常不错的一个项目问题    在运行过程中遇到了几个,大致问题如下截图。总结起来就是去三个共享库,这三个共享库是 opencv-python 需要的:libSM.so.6、libXrender.so.1、libXext.so.6 解决方案sudo yum install -y  libSM.x86_64 libXrender.x86_64  libXext.x86_64效果展示OCR识别效果非常不错,后面我要
缘由为什么要录制关于 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
缘由在前面写过一个文章 人生苦短,我用Python  给大家简单介绍了一下Python 能做什么。然后广告了下当时的新课程 Python Flask构建微信小程序订餐系统 。该课程上线之后有些同学反馈没有详细讲解Flask的基础知识 和 课程改造的框架为什么这么来的。基于该原因,重新录制了一门新课程:Python Flask 从入门到精通 。希望大家可以喜欢演示地址:http://movie.54php.cn 大纲课程简介本次课程相对来说比较基础,但是麻雀虽小,五脏俱全。重点是从头到尾的给大家梳理讲解整个Flask 框架的完整知识,并通过演变的方式给大家讲解如何打造构造层次分明的高可用MVC框架。主要是告诉大家为什么?而不是就这样用,让大家明白原理。课程是在双系统下面给大家讲解的,大家可以根据自己喜欢的操作系统进行学习:Windows 和 Linux CentOS7。而Python 我们选择的是3.7版本学习路径【收费
缘由最近由于工作调整,很多基础工作都要准备。对我们研发来讲,代码写完了还需要部署到生产环境。那就无法避免的要部署生产服务器的环境。由于软件一直会有更新迭代。这里我们就说下MySQL8.0在CentOS7安装的一个全过程配置源由于默认源已经不再有MySQL软件信息了,所以需要自己去官方下载并安装wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm  yum localinstall  mysql80-community-release-el7-3.noarch.rpm yum install mysql-community-client mysql-community-server服务操作service mysqld start #启动 service mysqld r
  缘由由于个人经常在ubuntu和centos 系统中切换,习惯了以前的 ubuntu中 通过 /etc/init.d/xxx 进行软件服务控制。后来发现centos7中换了服务的控制方式:serviceservice关键字service httpd start 其实是启动了存放在/etc/init.d目录下的脚本。但是centos7的服务管理改规则了。CentOS 7继承了RHEL 7的新的特性,例如强大的systemctl,而systemctl的使用也使得以往系统服务的/etc/init.d的启动脚本的方式就此改变,也大幅提高了系统服务的运行效率。但服务的配置和以往也发生了极大的不同,说实在的,变的简单而易用了许多。CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,还是存在系统服务里吧,即:/usr/lib/systemd/system目录下每一个服务以.service结
操作环境操作系统:CentOS7.2 内存:1GB CPU:2核Docker服务常用命令docker服务操作命令如下service docker start #启动服务 service docker stop  #停止服务 service docker restart #重启服务 service docker status   #查看服务状态启动Docker服务docker是一个CS模型,需要先启动服务端,直接执行 sudo service docker start 启动docker服务。sudo service dokcer start service docker status # 检查服务状态HelloWorld 初体验直接运行 sudo
Docker是什么Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低从这个解释我们不知道大家有没有想到一个优点类似的东西,没错就是 Vagrant :  vagrant打造跨平台可移动的开发环境    ,那么这两个东西有什么区别咧?Docker 与 Vagrant的区别从字面意思上来讲,这两个东西都可以实现虚拟化。Vagrant 是基于Virtualbox等虚拟机软件的实现的(Vagrant 本身并不提供虚拟技术,只是调用Virtualbox等提供的接口,进行虚拟机的管理),而Docker是基于LXC轻量级容器虚拟技术。一般我们用Vagrant来部署开发环境,Do
  • 微信公众号 微信小程序
  • 微信机器人
  • 群1:1046090432
  • 群2:585567981