运维方案之canal数据库同步

普遍的大数据抽数的方式都是从散落在各个地方的 MySQL 数据库中开账号,然后把数据同步过来。 这不,大数据的同事提出了一个需求,想把某个库中的某个表的数据单独同步到大数据的统一库中的某个表中。 研究了一个星期,canal 的配置对运维来说非常的不友好,除非用它那个 admin 的 dashboard,但是运维通常是 cli 界面,谁没事装个 dashboard 来配置呢,太 low 了。 用的是 canal 1.1.5 的版本,不能升级,升级后 java 不对了。还没有到用 1.1.6 的时候! 背景: 源数据库:10.8.2.12 库:xxl_job 表:demotable666 目的数据库:10.8.2.17 库:xxl_job_bak 表:demotable666 而且不用任何的Zookeeper、Kafka、RabbitMQ的中间件,越简洁越好。 一、安装canal wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gz wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.adapter-1.1.5.tar.gz #都装到 /app 目录下 mkdir /app mkdir /app/deploy mkdir /app/adapter cd /app/deploy tar zxvf canal.deployer-1.1.5.tar.gz cd /app/adapter tar zxvf canal.adapter-1.1.5.tar.gz 二、MySQL源准备 # /etc/my.cnf 加入以下几项并重启 [mysqld] log-bin=mysql-bin # Start log bin. binlog_format=ROW # Log format. server-id=1 # Server id,different from slave. 授权binlog同步: ...

2023年1月15日

seafile配搭onlyoffice的安装

之前公司一直用的是 seafile 来保存文档,非常好用,也出过一次大事,一个离职的员工清空电脑,然后直接把sefaile文件夹也同步清空了,好在有版本,最后找了回来。 换到新公司,财务也提了共享云盘的要求,还要求能多人同时在线编辑。 那就试着搭建 seafile + onlyoffice 了,同时要求提高安全性,在网上搜索了一圈,没几个对的,尤其是对https这一块,花了2天时间搭建,记录一下整个过程: 一、下载seafile: 没有选定高版本的,最新版本的变化太多,缺省全部都安装到 /app 目录下 wget https://download.seadrive.org/seafile-server_7.0.0_x86-64.tar.gz tar zxvf seafile-server_7.0.0_x86-64.tar.gz mkdir /app mv seafile-server-7.0.0 /app 二、设定CentOS7 依然活在 CentOS 7.10 的时代,再往上升级,要升到 rokey linux 了 提醒:seafile 的安装根据版本不同,yum 装的东西也不尽然相同的,要去官方文档看 yum install python python-setuptools MySQL-python python-urllib3 python-ldap -y 三、安装MySQL数据库 这个就仁者见仁、智者见智了,我现在的方式都是二进制装,选用的是 mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz 安装的, tar zxvf mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz mv mysql-5.6.51-linux-glibc2.12-x86_64 /app yum -y install autoconf libaio* cat<<EOF>/etc/my.cnf [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/tmp/mysql.sock [mysqld] skip-name-resolve #设置3306端口 port = 3306 socket=/tmp/mysql.sock # 设置mysql的安装目录 basedir=/app/mysql-5.6.51-linux-glibc2.12-x86_64/ # 设置mysql数据库的数据的存放目录 datadir=/app/mysql-5.6.51-linux-glibc2.12-x86_64/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB #lower_case_table_name=1 max_allowed_packet=16M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES EOF groupadd -g mysql useradd -g mysql mysql # 初始化DB cd /app/mysql-5.6.51-linux-glibc2.12-x86_64/ /app/mysql-5.6.51-linux-glibc2.12-x86_64/scripts/mysql_install_db --user=mysql #建立 /etc/init.d/mysql 的软链接 mysql -> /app/mysql-5.6.51/support-files/mysql.server #启动 /etc/init.d/mysql start # 安全设置DB cd /app/mysql-5.6.51-linux-glibc2.12-x86_64/ /app/mysql-5.6.51-linux-glibc2.12-x86_64/bin/mysql_secure_installation 四、准备onlyoffice 这里有大坑啊,其实onlyoffice的版本万万不能用最新的,因为JWT的Token认证 ...

2023年1月15日

cka的模拟试题

刚通过了CKA的考试,拿到了证书。 说老实话,想考这个必须翻墙啊,在考试的时候正好是新冠的第三天,烧得正厉害。 然后考试的过程真是一波三折,PSI 足足重新认证了三次,浪费40分钟。 最后都感觉要完蛋了,只剩下不到10分钟检查,结果还不错,考了90分。 有第一次考的可以联系我,我给你说一些必须注意的事项。 然后 CKA 有一个模拟考试,36小时时间,实际考试的环境跟模拟的完全不一样啊。 但是模拟如果你能过,那考试你一定能过,模拟的难度不低,相当高。 这就把模拟的题给放出来,供大家参考,非常有参考价值。 大家可以学到很多东西。 文件下载:cka.html 单html文件

2023年1月12日

xshell的绿色配色方案

其实一直用的终端软件是terminus,全终端可用,以前用 ubuntu,非常好用。 现在换到新公司,用 Win10,也装了一个。 一直到机房改造前,还都觉得行,但是机房改造需要收回核心交换机、路由器的权限,开终端 console 居然要收费会员,没办法,找老刘换回了免费的xshell 7。 xshell的配色实在是受不了,还是喜欢绿色的字符界面。 备份一个绿色的方案: [mycolor] text(bold)=e9e9e9 magenta(bold)=ff00ff text=00ff80 white(bold)=fdf6e3 green=80ff00 red(bold)=ff0000 green(bold)=3c5a38 black(bold)=808080 red=ff4500 blue=00bfff black=000000 blue(bold)=1e90ff yellow(bold)=ffff00 cyan(bold)=00ffff yellow=c0c000 magenta=c000c0 background=042028 white=c0c0c0 cyan=00c0c0 [Names] count=1 name0=mycolor 保存成 mycolor.xcs 文件,然后工具–> 配色方案,导入即可: 整体效果还是比较好的。 是自己喜欢的样子,当然,字体从9也增加到了12。

2023年1月12日

2022年获得的证书

2022年经过努力,考了4张证书,2023年继续努力奋斗…… 阿里云的ACP证书: AWS的SAA-C03证书: K8S的CKA证书: K8S的CKS证书:

2023年1月3日

DNSMASQ配置PXE的方式

DNSMASQ做局域网内的pxe installl是最合适不过的软件了。不用单独搭建 tftpserver,用自建的即可。 而且支持给各种子网打标签,还可以按标签发送各种dhcp包的特定信息。 interface=eth0 bind-dynamic pxe-prompt="Rendoumi PXE System", 5 domain-needed bogus-priv no-resolv no-poll #address=/jump.dedi.jp/install/103.108.236.5 #UP Stream DNS Server server=114.114.114.114 server=202.106.196.115 server=202.106.0.20 strict-order dhcp-authoritative dhcp-sequential-ip dhcp-no-override log-facility=/var/log/dnsmasq.log log-dhcp log-queries enable-tftp tftp-root = /export/servers/tftpboot #only new add host is dynamic, delete or modify not. #dhcp-hostsfile=/etc/dhcp-host/hosts.conf dhcp-hostsdir=/etc/dhcp-host # #Setup different options for each of the unique subnets, since default gateways will be different #The format for this is: dhcp-options=<your_tags_here>,<option>,<option_value> - #3 is router #1:netmask, 15:domain-name, 3:router, 6:dns-server, #44:netbios-ns, 46:netbios-nodetype, 47:netbios-scope, #31:router-discovery, 33:static-route, 121:classless-static-route, #43:vendor-encap # dhcp-option=option:dns-server,172.18.30.1,172.18.30.2 dhcp-option=option:all-subnets-local,1 dhcp-option=option:T1,2m dhcp-option=option:T2,4m #dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-addr>[,<end-addr>|<mode>][,<netmask>[,<broadcast>]][,<lease time>] #vlan 1 native vlan #dhcp-range=set:net1,172.18.29.100,172.18.29.250,static,255.255.254.0,2m dhcp-range=set:net1,172.18.29.100,static,2m dhcp-option-force=tag:net1,option:router,172.18.29.254 #vlan 199 wuli #dhcp-range=set:net2,172.18.31.100,static,255.255.254.0,2m #dhcp-range=set:net2,172.18.31.100,255.255.254.0,2m dhcp-range=set:net2,172.18.31.100,static,2m dhcp-option-force=tag:net2,option:router,172.18.31.254 # set tag "ipxe" if request comes from iPXE ("iPXE" user class) dhcp-userclass=set:ipxe,iPXE # alternative way, look for option 175 #dhcp-match=set:ipxe,175 # gPXE/iPXE sends a 175 option. # if request comes from dumb firmware, send them iPXE (via TFTP) #dhcp-boot=tag:!ipxe,undionly.kpxe,boothost,172.18.29.2 dhcp-boot=tag:!ipxe,undionly.kpxe # if request comes from iPXE, direct it to boot from boot1.php #dhcp-boot=tag:ipxe,http://172.18.29.2/pxeboot/boot1.php #--dhcp-boot=[tag:<tag>,]<filename>,[<servername>[,<server address>|<tftp_servername>]] dhcp-boot=tag:ipxe,tag:net1,http://172.18.29.2/pxeboot/boot1.php,172.18.29.2 dhcp-boot=tag:ipxe,tag:net2,http://172.18.31.2/pxeboot/boot1.php,172.18.31.2 # Args add(old del) mac ip hostname # add ac:1f:6b:21:3e:d8 103.108.236.22 1403-s27 #dhcp-script=/bin/echo #dhcp-leasefile=/var/log/dnsmasq.leases # !!!! tag is alphanumeric label, fuck !!!!! 附上undionly.kpxe:undionly.kpxe ...

2022年12月22日

Dropbear配置SSH服务

合规审计经常需要给各种软件打补丁,比如openssh,如果是高版本还好说。如果让你补 centos 6的 openssh, 那恐怕就要喝一壶了。替代方案如下: git:https://github.com/mkj/dropbear 下载地址:https://matt.ucc.asn.au/dropbear/dropbear.html 一、介绍 dropbear作为一款基于ssh协议的轻量级sshd服务器,相比OpenSSH,其更简洁,更小巧,运行起来内存占用比也更小。在应用进程上,OpenSSH会开启两个sshd进程服务,而dropbear只开启一个进程,相较于OpenSSH,其对于硬件要求也更低,也更节约系统资源。 dropbear实现完整的SSH客户端和服务器版本2协议,不支持SSH版本1协议的向后兼容性,以节省空间和资源,并避免在SSH版本1的固有的安全漏洞。 dropbear主要有以下程序: 服务程序:dropbear(类似于Openssh的sshd) 客户程序:dbclinet(累世于Openssh的ssh) 密钥生成程序:dropbearkey 二、下载安装 wget https://matt.ucc.asn.au/dropbear/dropbear-2020.81.tar.bz2 tar jxvf dropbear-2020.81.tar.bz2 cd dropbear-2020.81 ./configure make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install mkdir /etc/dropbear/ dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key dropbear -E -p 2222 #启动ssh服务 dropbear -FE -p 2222 #-F指定前台运行 客户端连接: ssh 192.168.89.37 -p 2222 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 报错:zlib error 或者make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"出错 解决方法: wget https://www.zlib.net/fossils/zlib-1.2.10.tar.gz tar zxvf zlib-1.2.10.tar.gz cd zlib-1.2.10 ./configure --prefix=/usr/local/zlib ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...

2022年12月19日

docker镜像仓库harbor的搭建与使用

一:我们在公司内部建立了Docker内部镜像仓库: harbor是vmware出的一个docker镜像仓库,本质是一组容器的集合体,算是一个多容器的pod. 数据卷缺省是宿主机的/data,所以我们把iscsiu挂在/data 主机:172.18.31.28 首先安装docker-ce 添加docker-ce源: yum install epel-release yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce -y yum install ntp -y 启动自动同步时间: timedatectl set-ntp yes #此处可用yes,no,1或0 配置时区: timedatectl set-timezone Asia/Shanghai 配置Docker启动参数: mkdir -p /etc/docker cat << EOF >> /etc/docker/daemon.json { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"] } EOF 之后装的所有Docker的宿主机,如果要用到这个私有仓库的话: cat << EOF >> /etc/docker/daemon.json { "insecure-registries":["172.18.31.28"], "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"] } EOF 启动docker systemctl enable docker && systemctl start docker ​ 安装Docker-compose ...

2022年12月19日

Docker的缺省网段冲突问题

docker默认网段是172.17,和公司的网段172.16和172.18有时候会冲突,解决方法就是换docker网段。 方案:不改docker网段,创建不和公司网段冲突的docker子网段 docker network create --driver=bridge --subnet=172.19.0.0/24 monitor_net 运行容器时指定 docker run -it --name <容器名> ---network monitor_net <镜像名> 在docker-compose同样通过networks指定,形式如下: version: '3' networks: monitor: #使用已经存在的网络 external: name: monitor_net services: prometheus: image: prom/prometheus container_name: prometheus hostname: prometheus privileged: true restart: always volumes: - /usr/local/src/config/prometheus.yml:/etc/prometheus/prometheus.yml - /usr/local/src/config/node_down.yml:/etc/prometheus/node_down.yml ports: - "9091:9090" networks: - monitor links: - alertmanager - node-exporter

2022年12月19日

Dell服务器设置远程文件共享

Dell服务器设置远程文件共享 用来加载iso文件,用于安装系统或者修复 输入172.18.31.2:/export/nfsshare/centos7-live-docker.iso 缺省是支持4种格式的共享: CIFS — //<IP to connect for CIFS file system>/<file path>/<image name> NFS — < IP to connect for NFS file system>:/<file path>/<image name> HTTP — http://<URL>/<file path>/<image name> HTTPs — https://<URL>/<file path>/<image name> 点击Connect 好的话,就会蹦出Success 然后启动虚拟控制台,Boot菜单选中启动:Virtual CD/DVD/ISO 重启,就可以进入centos7-live-docker.iso的系统了

2022年12月18日