作者归档:debugger

同步调度和异步调度

简单来说有的东西是不允许同时修改的。是要按流程一步一步执行下去的。

但是其实现在重点讲下异步调度,因为很多比如某些api采集,他们是完全独立的。但是因为需要轮询,之前是把所有的采集接口的操作都放在同一个函数里面。然后由shell脚本进行轮询调度。结果除了很多次的幺蛾子。比如其中一个出错,那么所有的采集都凉凉,除非要做好比较完美的出错处理,还有采集接口的状态判断的操作才可能不导致一个凉凉,全部凉凉的事情的发生。所以分开单独调度比较好。那么如果十几个接口的轮询采集和调度都使用shell,那么开启和关闭,还有测试调试每个接口的采集状态什么的时候那么就有的操蛋了。

之前也用过xxljob这个产品,不过不得不说java的产品的比较吃资源一点。以前在成本比较不允许的情况下一个,相当于一个定时器每个月4H4G的配置还经常有点吃力还是有点无语的。后面可以忽略不计的时候才能说,东西好用就可以了。不然以前至少有十次以上因为日志满了导致的问题吧。 因为自己不熟悉java,而xxljob的管理者每次都没有完美处理这个问题导致了有点害怕xxljob,不然那个东西倒是挺出名挺好用的。

选择ubuntu和暂时弃坑

【选择ubuntu】

刚开始选择ubuntu的原因只要是因为内网的那台服务器已经被断电都快断晕了。用上面的centos是比较不方便了。windows下弄web环境那还是算了吧。加上平时测试环境经常用宝塔,各种都是可以快速完成。

刚开始想着选择centos,但是centos作为桌面系统来用,支持的软件太少了,各种软件版本也比较旧一些。所以最终选择了社区活跃的ubuntu进行开发。

然后就是各种命令的支持真的不是一般的方便。命令熟悉了除了高效就是高效。filezilla在ubuntu下不用等待半天的重新连接,都是秒连接。windows的那个等待简直相对比就是噩梦和影响工作心情啊。但是但是,这么多年过来还是没有习惯纯命令在各个机器之间拷贝文件是真的很不应该的。命令还是很高效的,也没有那么多的兼容性的问题导致的各种坑爹问题。

ubuntu下装软件和安装开发支持,比如composer什么的,都是简单几个命令搞定。以前觉得界面操作好简单,但是现在看到windows下通过界面配置环境就有点想吐的感觉。

ubuntu弄各种开机启动的东西什么的也都太方便得不行了。

修改hosts也是爽的一比,不用想windows讨厌的点点点,点个半天。

【那为什么暂时弃坑呢】

ubuntu以后还是要用的,但是暂时先放弃了。

phpstorm的经常卡死,telegram经常卡死。反正UI程序经常抽风是比较让人操蛋和恐惧的,虽然浏览器可以恢复打开页面。但是那种不稳定注定是一点特别不好,特别影响工作的东西。

heidisql安装只能通过wine,然后支持不是很好,导致管理数据库的各种不方便。

因为买了一台两万七稳定的苹果类unix系统的开发工作机。那么ubuntu暂时就可以退休一段时间。再买一台windows的高配笔记本配合工作就可以了。

zabbix安装教程

很长一段时间很想好好监控监控服务器。但是以前总共也没有几个服务器。也没有人为大量的服务器买过单。现在好几个网页服务器,数据库服务器,计算服务器,多个采集服务器,一个接口服务器,一个客服系统服务器,两个聊天软件服务器,jumpserver服务器。合起来十几个服务器。因为还是比较小气没有给服务器比较大的空间。而是希望结合人工和自动化处理去处理因为空间占满等问题带来的各种故障。之前也没有那个时间。现在不得不要提上进程了。刚好慕课网买了教程,原本以为及其复杂高级运维工具,请人家服务器一次好几万的东西原来那么简单。不过再次边整理边看的时候,其实如果晃一眼之前看这些教程,不是先看视频带着一步步走的话,粗一看现在即使看安装教程还是有点瘆人或者估计搞起来挺麻烦,要花不少时间的那种感觉。还有的确要有点linux功底,数据功底,运维的功底,还有也有能力有机会管那么多服务器啊,做了那么多年,也才算是有必要有机会弄这东西。而且什么小米的啊,这个的那个的,开源的那么多种选择,过了那么就才因为弄jumpserver买的教程才深入一些接触zabbix。

1 到zabbix官网选择zabbix版本,部署环境类型和版本,数据库类型。从而自动得到参考安装命令

2 安装zabbix源 ,例如当前获得的以下的最新版本

# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
# yum clean all

3 安装zabbix-server ,zabbix-web,zabbix-agent这个安装是监控自身

# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent

4 创建初始zabbix数据库,并导入初始数据。

因为自己习惯是做站库分离的,而且数据库专门独立维护的。所以肯定是使用远程或者内网的数据库服务器的。

在远程数据库创建数据库

mysql -uroot -pMyPassword -h 111.111.111.111

mysql>create database zabbix character set utf8 collate utf8_bin;

grant all on zabbix.* to zabbix@’10.1.41.%’ identified by ‘MyPassword’;

flush privileges;

命令行的方式导入数据库脚本到远程数据库。以前没几次用过命令导入数据库脚本,原来这么方便。还不用依赖那些不稳定的客户端。当然那些数据库客户端也的确有很多方便的功能。

gunzip /usr/share/doc/zabbix-server-mysql-3.2.3/create.sql.gz

mysql -uzabbix -pMyPassword -h10.1.41.45 zabbix < /usr/share/doc/zabbix-server-mysql-3.2.3/create.sql

或者使用zcat把sql文件导入到远程数据库

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

5 创建独立的zabbix账户进行管理,能不root不root原则

6 登陆zabbix-web进行配置

登陆到http://10.1.41.81/zabbix

运维管理之jumpserver

管理多年的服务器,做多了一个人顶一个技术部门的事情。所有的东西也都在自己一个人手里。一两千万的业务可能就几台服务器就够了。专业一点,业务大点,随便都是十几二十台服务器。以前什么excel记录服务器信息,什么专门文件夹管理服务器信息什么的。管的倒是不算吃力,但是现在ubuntu , centos,windows,ubuntu多个系统。一个人在多台电脑,多个操作系统之间进行作业。那么这种管理信息的方式的弊端立马就出来了。

很多东西都不是难不难的问题,可能价值极高,但是只是一句话。以前都不知道这种东西,这两年接触了,但是一直都没用上。甚至之前一直还想自己开发一个小系统专门存放管理服务器信息的。刚好有朋友咨询他们被黑的事情。也提到他们用jumpserver运维。也借这个契机用用了。

首先就是先安装了。买了广州的服务器,然后git clone到服务器上,总结一点就是实在是慢。

centos7自动yum -y update ???

linux升级系统一般都没有导致过问题。碰到过的是升级之后gitlab打不开的情况。那个gitlab直接凉凉了,还好没有重要的东西那个gitlab。不然那个时候花了不少时间也没有把gitlab修复起来。如果那个是重要的gitlab,那么就很凉凉了。

数据库服务器日志占用过大维护

也算是为了省钱,也算是为了极端压榨技术。以前很多年很少对数据库有一个定期的或者自动的一个维护。现在使用的是一个centos7 mysql 20G硬盘的数据库服务器。人工看宝塔,空间已经占用80%以上了。一般centos7系统占用不到3G。看了数据库大小加起来2.2G,但是总占用空间却已经达到了17G,剩下的空间不多了。因为是用宝塔面板搭建了数据库服务器。去后台关闭了一下二进制日志,开启二进制日志,一下子空间占用少了5G左右。这个是偷懒做法。

https://blog.csdn.net/qq_34924407/article/details/80556557

测试与另外一个服务器端口的连通性

多年来碰到了大大小小的漏洞事件也是漏怕了。所以对端口都是严格限制访问ip的。那么有的时候会有一些无法连接什么的报错。比如某业务服务器连接到数据库服务器是走内网的。开了端口还有ip授权的,但是laravel还是提示连接失败,那么这个时候就要看看这台业务服务器访问数据库服务器内网ip的3306端口是否正常连接了。

使用telnet ,以前是windows,经常机器是没有telnet的,还要各种图形界面找telnet。用了ubuntu ,centos ,macos 就直接可以用,或者一键安装方便多了。

telnet x.x.x.x 3306

root@debugger:~# telnet 10.1.13.87 3306
Trying 10.1.13.87…
Connected to 10.1.13.87.
Escape character is ‘^]’.
N
5.7.25-log��
sy-4<-
g4511{Oj<3mysql_native_password

从另外一个角度来说,数据库服务器端口如果公开暴露在网络上,一个telnet就可以被批量扫描到。而且直接爆出了数据库的版本,如果这个版本突然爆出漏洞,那么将是何等的危险,非常容易凉凉。