keepalived+haproxy 高可用
Write by lyc at 2021-1-21KeepAlived(三):vrrp实例故障转移(keepalived+haproxy)
1.keepalived+haproxy 高可用设计思路什么是抢占?如果 MASTER发生宕机,$vip 漂移到 BACKUP
而后 MASTER 修复正常上线,$vip 还会漂移回 MASTER
为什么 haproxy 要开启抢占?对于 keepalived 做 haproxy 的高可用,两台 haproxy 无论是配置或者功能都是一模一样的,开启抢占便于我们在 MASTER 上进行 haproxy 的配置与同步。
对于haproxy的维护而言,两台 haproxy 必然有一主一备的主观判定,且在人工配置的时候也是在主上进行配置,再利用同步工具去覆盖从上的配置文件。
而对于mysql,redis这种类型的服务,关系到数据一致性,是不能够轻易开启抢占的,一旦进行了一次主备切换,回切会造成数据不一致,后果更加严重。第一次切换以后的架构需要人工干预进行重新设计。
2.MASTER keepalived.conf123456789101112 ...
mysql ibtmp1临时表的独立表空间
Write by lyc at 2021-1-6参考博文:从MYSQL的ibtmp1文件太大说起故障分析 | MySQL 临时表空间数据过多导致磁盘空间不足的问题排查
1.ibtmp1 是什么
ibtmp1 是非压缩的 innodb 临时表的独立表空间,通过 innodb_temp_data_file_path 参数指定文件的路径,文件名和大小。
ibtmp1 默认配置为 ibtmp1:12M:autoextend,==也就是说在支持大文件的系统这个文件大小是可以无限增长的==。
ibtmp1 每次mysqld服务器启动时会被重新创建
ibtmp1 文件位于MySQL数据目录下12345678910111213141516171819$ ls -lhtotal 5.3G-rw-r----- 1 mysql mysql 56 Nov 20 2018 auto.cnf-rw-r----- 1 mysql mysql 20K Jan 8 2020 ddl_log.log-rw-r----- 1 mysql mysql 6.4M Dec 9 2018 ib_buffer_ ...
TIME_WAIT过多调优
Write by lyc at 2020-12-1服务端 TCP 连接的 TIME_WAIT 问题分析与解决
1.大量的 TIME_WAIT 状态 TCP 连接,对业务上有什么影响?Nginx 作为反向代理时,大量的短链接,可能导致 Nginx 上的 TCP 连接处于 TIME_WAIT 状态:
每一个 TIME_WAIT 状态,都会占用一个「本地端口」。TCP 本地端口数量,上限为 65535(6.5w),这是因为 TCP 头部使用 16 bit,存储「端口号」,因此约束上限为 65535
当大量的连接处于 TIME_WAIT 时,新建立 TCP 连接会出错,address already in use : connect 异常
TCP 连接中,「主动发起关闭连接」的一端,会进入 TIME_WAIT 状态
TIME_WAIT 状态,默认会持续 2 MSL(报文的最大生存时间),一般是 2x2 mins
TIME_WAIT 状态下,TCP 连接占用的端口,无法被再次使用
2.TCP 连接的状态统计 TCP 连接的状态1234567$ netstat -n | awk ...
mysql用户的禁用与有效期设置
Write by lyc at 2020-11-30参考博文:MySQL–禁用账号和设置账号有效期
1.MySQL 不同版本禁用账号的方式在MySQL 5.7 版本之前(MySQL5.5/5.6),不能对账号进行锁定或设置过期,只能通过更新密码来实现。
在MySQL 5.7版本中,可以通过两种方式禁用账户:
设置账号自动过期时间
锁定账号
2.MySQL5.7 设置账号过期从MySQL 5.7.10开始,参数 default_password_lifetime 默认值从0变更为360,即一年有效期。
12345678# 修改默认自动过期时间:mysql > SET GLOBAL default_password_lifetime = 0;# 设置用户密码过期mysql > ALTER USER 'user'@'localhost' PASSWORD EXPIRE;# 设置用户密码永不过期mysql > ALTER USER 'user'@'localhost' PASSWORD E ...
Elasticsearch 集群管理工具 curator
Modify by lyc at 2020-10-15Curator Referenceelasticsearch-curator基本安装使用curator 接口模式使用介绍使用elasticsearch-curator备份Elasticsearch索引
Elasticsearch 集群管理工具 curatorCurator 是一个 elasticsearch 集群管理工具,在日常集群管理方面的一个利器,掌握此神器,es集群日常管理将轻松+愉快。
Curator 可以做诸如以下事情:
1234567891011121314创建索引删除索引关闭索引删除快照从快照还原添加或移除索引打开已经关闭的索引更改分片路由配置强制合并索引更改索引每个分片的副本数量为索引创建快照reindices 、remote reindicesrollover indices(当某个别名指向的实际索引过大的时候,自动将别名指向下一个实际索引)等等。。。。。
curator 提供了两种接口:
一个是 curator_cli 命令行模式
一个是curator API 模式
1.elasticsearch-cur ...
shell IFS内置环境变量
Write by lyc at 2020-9-16shell里的IFS内置环境变量
IFS
IFS 的全称是 Interal Field Separator ,即“内部区域分隔符”,它也是一个内置环境变量,存储着默认的文本分隔符
默认下这分隔符是空格符(space character),制表符(tab) 以及新行(newline)
12345IFS=''IFS=' '
默认情况下123456789101112131415#!/bin/shmsg="welcome to www groad net"for item in $msgdo echo "$item"done# 输出$ temp.shwelcometowwwgroadnet
修改IFS123456789101112131415161718#!/bin/shdata="welcome,to,www,groad,net"IFSBAK=$IF ...
Linux 多网卡+策略路由
Write by lyc at 2020-9-1使用rt_tables巧妙配置Linux多网卡多路由实现策略路由Ucloud 虚拟网卡腾讯云 虚拟网卡
Linux 多网卡+策略路由1.配置网卡
网卡类型
网卡名称
内网IP
外网IP
主网卡
eth0
10.19.174.244
106.75.14.210
虚拟网卡
eth1
10.19.105.212
117.50.9.28
虚拟网卡
eth2
10.19.87.241
106.75.9.245
12345678910# 创建配置文件$ cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth1$ cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth2修改文件中的- DEVICE=虚拟网卡的网卡名- HWADDR=虚拟网卡的MAC地址- IPADDR=虚拟网卡的IP地址$ syst ...
iptables 动作
Write by lyc at 2020-8-31iptables动作总结之一iptables动作总结之二
1.ACCEPT, DROP 基础动作
ACCEPT 与 DROP 都属于基础动作,REJECT 则属于扩展动作。
使用扩展动作也需要借助扩展模块,但是,扩展动作可以直接使用,不用像使用”扩展匹配条件”那样指定特定的模块。
2.REJECT 扩展动作
REJECT 与 DROP 不同的是,会返回给客户端提示,而 DROP 是直接丢弃数据包,表现为 hang 住卡在那里
REJECT 动作的常用选项为 --reject-with,可以设置提示信息,当对方被拒绝时,会提示对方为什么被拒绝:
icmp-net-unreachable
icmp-host-unreachable
icmp-port-unreachable 默认值
icmp-proto-unreachable
icmp-net-prohibited
icmp-host-pro-hibited
icmp-admin-prohibited
1$ iptables -A INPUT -s 192.168.99.208 ...
iptables 黑白名单机制
Write by lyc at 2020-8-31iptables的黑白名单机制
1.链的默认 policy
当链的默认策略设置为 ACCEPT 时:如果对应的链中没有配置任何规则,就表示接受所有的报文,如果对应的链中存在规则,但是这些规则没有匹配到报文,报文还是会被接受。
当链的默认策略设置为 DROP 时:如果对应的链中没有配置任何规则,就表示拒绝所有报文,如果对应的链中存在规则,但是这些规则没有匹配到报文,报文还是会被拒绝。
1.1 黑名单机制 policy=ACCEPT当链的默认策略设置为 ACCEPT 时,按照道理来说,我们在链中配置规则时,对应的动作应该设置为 DROP 或者 REJECT,因为默认策略已经为 ACCEPT 了,如果我们在设置规则时,对应动作仍然为 ACCEPT ,那么所有报文都会被放行了,因为不管报文是否被规则匹配到都会被ACCEPT,所以就失去了访问控制的意义。
当链的默认策略为 ACCEPT 时,链中的规则对应的动作应该为 DROP 或者 REJECT ,表示只有匹配到规则的报文才会被拒绝,没有被规则匹配到的报文都会被默认接受,这就是”黑名单”机 ...
iptables 扩展匹配
Write by lyc at 2020-8-31iptables匹配条件总结之一iptables匹配条件总结之二(常用扩展模块)
iptables 扩展匹配
如果想要使用扩展匹配条件,则需要依赖一些扩展模块
如果没有使用 -m 指定使用哪个扩展模块,iptables会默认使用”-m 协议名”,而协议名就是-p选项对应的协议名。
1.tcp 扩展模块扩展匹配源、目的端口
“源端口”与“目标端口”属于扩展匹配条件;“源地址”与“目标地址”属于基本匹配条件
-p tcp -m tcp --sport 用于匹配tcp协议报文的源端口,可以使用冒号指定一个连续的端口范围
-p tcp -m tcp --dport 用于匹配tcp协议报文的目标端口,可以使用冒号指定一个连续的端口范围
使用–dport选项时,必须事先指定了使用哪种协议,即必须先使用 -p 选项
12345$ iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp --sport 22 -j REJECT$ iptables -t filter -I ...