先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注运维)
正文
MariaDB [(none)]> SHOW status LIKE ‘wsrep_ready’;
±--------------±------+
| Variable_name | Value |
±--------------±------+
| wsrep_ready | ON |
±--------------±------+
1 row in set (0.001 sec)
##### 2.6 在controller01创建数据库,到另外两台节点上查看是否可以同步
[root@controller01 ~]# mysql -uroot -p
MariaDB [(none)]> create database cluster_test charset utf8mb4;
Query OK, 1 row affected (0.005 sec)
MariaDB [(none)]> show databases;
±-------------------+
| Database |
±-------------------+
| cluster_test |
| information_schema |
| mysql |
| performance_schema |
±-------------------+
另外两台查看
[root@controller02 ~]# mysql -uroot -pZx***** -e ‘show databases’
±-------------------+
| Database |
±-------------------+
| cluster_test | √
| information_schema |
| mysql |
| performance_schema |
±-------------------+
[root@controller03 ~]# mysql -uroot -pZx***** -e ‘show databases’
±-------------------+
| Database |
±-------------------+
| cluster_test | √
| information_schema |
| mysql |
| performance_schema |
±-------------------+
#### 3. 设置心跳检测clustercheck
##### 3.1 下载clustercheck脚本
在全部控制节点下载修改此脚本
wget -P /extend/shell/ https://raw.githubusercontent.com/olafz/percona-clustercheck/master/clustercheck
注意账号/密码与脚本中的账号/密码对应,这里用的是脚本默认的账号/密码,否则需要修改clustercheck脚本
[root@controller01 ~]# vim /extend/shell/clustercheck
MYSQL_USERNAME=“clustercheck”
MYSQL_PASSWORD=“Zx*****”
MYSQL_HOST=“localhost”
MYSQL_PORT=“3306”
…
#添加执行权限并复制到/usr/bin/下
[root@controller01 ~]# chmod +x /extend/shell/clustercheck
[root@controller01 ~]# \cp /extend/shell/clustercheck /usr/bin/
##### 3.2 创建心跳检测用户
在任意一个控制节点的数据库中创建clustercheck\_user用户并赋权; 其他两台节点会自动同步
GRANT PROCESS ON . TO ‘clustercheck’@‘localhost’ IDENTIFIED BY ‘Zx*****’;
flush privileges;
##### 3.3 创建心跳检测文件
在全部控制节点新增心跳检测服务配置文件`/etc/xinetd.d/mysqlchk`,以controller01节点为例
[root@controller01 ~]# touch /etc/xinetd.d/galera-monitor
[root@controller01 ~]# cat >/etc/xinetd.d/galera-monitor <<EOF
default:on
description: galera-monitor
service galera-monitor
{
port = 9200
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
group = root
groups = yes
server = /usr/bin/clustercheck
type = UNLISTED
per_source = UNLIMITED
log_on_success =
log_on_failure = HOST
flags = REUSE
}
EOF
##### 3.4 启动心跳检测服务
在全部控制 节点修改/etc/services,变更tcp9200端口用途,以controller01节点为例
[root@controller01 ~]# vim /etc/services
…
#wap-wsp 9200/tcp # WAP connectionless session service
galera-monitor 9200/tcp # galera-monitor
**启动 xinetd 服务**
#全部控制节点都需要启动
systemctl daemon-reload
systemctl enable xinetd
systemctl start xinetd
##### 3.5 测试心跳检测脚本
在全部控制节点验证,以controller01节点为例
[root@controller01 ~]# /usr/bin/clustercheck
HTTP/1.1 200 OK
Content-Type: text/plain
Connection: close
Content-Length: 40
Percona XtraDB Cluster Node is synced.
#### 4. 异常关机或异常断电后的修复
当突然停电,所有galera主机都非正常关机,来电后开机,会导致galera集群服务无法正常启动。以下为处理办法
第1步:开启galera集群的群主主机的mariadb服务。
第2步:开启galera集群的成员主机的mariadb服务。
异常处理:galera集群的群主主机和成员主机的mysql服务无法启动,如何处理?
#解决方法一:
第1步、删除garlera群主主机的/var/lib/mysql/grastate.dat状态文件
/bin/galera_new_cluster启动服务。启动正常。登录并查看wsrep状态。
第2步:删除galera成员主机中的/var/lib/mysql/grastate.dat状态文件
systemctl restart mariadb重启服务。启动正常。登录并查看wsrep状态。
#解决方法二:
第1步、修改garlera群主主机的/var/lib/mysql/grastate.dat状态文件中的0为1
/bin/galera_new_cluster启动服务。启动正常。登录并查看wsrep状态。
第2步:修改galera成员主机中的/var/lib/mysql/grastate.dat状态文件中的0为1
systemctl restart mariadb重启服务。启动正常。登录并查看wsrep状态。
### 六、RabbitMQ集群(控制节点)
https://www.rabbitmq.com/which-erlang.html
#### 1. 下载相关软件包(所有节点)
以controller01节点为例,RabbbitMQ基与erlang开发,首先安装erlang,采用yum方式
[root@controller01 ~]# yum install erlang rabbitmq-server -y
[root@controller01 ~]# systemctl enable rabbitmq-server.service
#### 2. 构建rabbitmq集群
##### 2.1 任选1个控制节点首先启动rabbitmq服务
这里选择controller01节点
[root@controller01 ~]# systemctl start rabbitmq-server.service
[root@controller01 ~]# rabbitmqctl cluster_status
##### 2.2 分发.erlang.cookie到其他控制节点
scp /var/lib/rabbitmq/.erlang.cookie controller02:/var/lib/rabbitmq/
scp /var/lib/rabbitmq/.erlang.cookie controller03:/var/lib/rabbitmq/
##### 2.3 修改controller02和03节点.erlang.cookie文件的用户/组
[root@controller02 ~]# chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
[root@controller0