[root@Rocky8 ~]#vim /etc/named.rfc1912.zones #编辑配置文件 zone "0.0.10.in-addr.arpa" { type master; file "10.0.0.zone"; }; :wq [root@Rocky8 ~]#vim /etc/named.conf listen-on port 53 { localhost; }; #将127.0.0.1改为localhost,localhost表示本机所有IP;或者将此行用//注释掉;或者在127.0.0.1;后面添加其他允许访问的IP地址 // allow-query { localhost; }; #此行说的是只允许本机访问,需让其他机器也可以访问,方法有三种:①加//将此行注释,所有机器都可以访问②将localhost更改为any,所有机器都允许③在localhost;添加允许访问的IP地址 :wq [root@Rocky8 ~]#named-checkconf #检查语法错误 [root@Rocky8 ~]#cd /var/named [root@Rocky8 named]#vim 10.0.0.zone #添加解析数据库 $TTL 1D @ IN SOA master admin.magedu.org ( 31D 10M 1D 6H ) NS master master A 10.0.0.128 184 PTR www.magedu.org. 217 PTR k8s.magedu.org. :wq [root@Rocky8 named]#chmod 640 10.0.0.zone #修改权限 [root@Rocky8 named]#chgrp named 10.0.0.zone #修改所属组 [root@Rocky8 named]#named-checkzone 0.0.10.in-addr.arpa /var/named/10.0.0.zone zone 0.0.10.in-addr.arpa/IN: loaded serial 3 OK #检查语法是否有误,语法正确 [root@Rocky8 named]#rndc reload server reload successful #重新加载数据,成功加载 [root@Centos7 ~]#dig -t ptr 184.0.0.10.in-addr.arpa #用其他机器访问成功 ;; ANSWER SECTION: 184.0.0.10.in-addr.arpa. 86400 IN PTR www.magedu.org. #或者用以下两种命令访问 [root@Centos7 ~]#dig -x 10.0.0.184 #此命令更简洁 ;; ANSWER SECTION: 184.0.0.10.in-addr.arpa. 86400 IN PTR www.magedu.org. [root@Centos7 ~]#host 10.0.0.184 #此命令更简洁 184.0.0.10.in-addr.arpa domain name pointer www.magedu.org.
13、搭建从DNS服务器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
10.0.0.184当从服务器 [root@Rocky ~]#yum -y install bind #安装DNS服务器 [root@Rocky ~]#vim /etc/named.conf #编辑配置文件 // listen-on port 53 { 127.0.0.1; }; // allow-query { localhost; }; :wq [root@Rocky ~]#vim /etc/named.rfc1912.zones #配置文件里添加以下内容 zone "magedu.org" { type slave; master {10.0.0.128;}; file "slaves/magedu.org.zone.slave"; }; #有这个文件夹(从服务器):slaves/ :wq [root@Rocky ~]#named-checkconf [root@Rocky ~]#systemctl enable --now named #启动服务,就把magedu.org.zone.slave文件复制过来了 [root@Rocky ~]#ls /var/named/slaves/ -l total 4 -rw-r--r-- 1 named named 374 Sep 2818:32 magedu.org.zone.slave
此时我们可以从其他机器从此从服务器访问了
1 2 3 4 5 6 7 8 9
[root@Centos7 ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 DNS2=10.0.0.184#添加此DNS :wq [root@Centos7 ~]#systemctl restart network #重新启动 [root@Rocky8 named]#systemctl stop named #先将主服务器关闭 [root@Centos7 ~]#dig www.magedu.org ;; ANSWER SECTION: www.magedu.org. 86400 IN A 10.0.0.184 ;; SERVER: 10.0.0.184#53(10.0.0.184)
但是如果主服务器发生变化时,从服务器接收不到,需在主服务器进行以下设置
1 2 3 4 5 6 7 8 9 10 11
[root@Rocky8 named]#systemctl start named #前面刚关闭了,需开启 [root@Rocky8 named]#vim /var/named/magedu.org.zone NS slave1 slave1 A 10.0.0.184#在主服务器里面增加从服务器的地址(没有地址,主服务器不知道推送到哪) www A 10.0.0.185#将184改为185 :wq [root@Rocky8 named]#named-checkzone magedu.org /var/named/magedu.org.zone [root@Rocky8 named]#rndc reload [root@Centos7 ~]#dig www.magedu.org @10.0.0.184 ;; ANSWER SECTION: www.magedu.org. 86400 IN A 10.0.0.185#此时可以查到网址的IP地址已发生变化
此时发现从服务器从主服务器拉取数据时不经过主服务器的允许,不安全(任何人都可以获取)。
而且根本不需要设置从节点就可以把数据获取,如下:
1 2 3 4 5 6 7
[root@Centos7 ~]#dig -t axfr magedu.org magedu.org. 86400 IN NS master.magedu.org. magedu.org. 86400 IN NS slave1.magedu.org. k8s.magedu.org. 86400 IN A 10.0.0.217 master.magedu.org. 86400 IN A 10.0.0.128 slave1.magedu.org. 86400 IN A 10.0.0.184 www.magedu.org. 86400 IN A 10.0.0.184
[root@Centos7 ~]#dig -t axfr magedu.org @10.0.0.184 magedu.org. 86400 IN NS master.magedu.org. magedu.org. 86400 IN NS slave1.magedu.org. k8s.magedu.org. 86400 IN A 10.0.0.217 master.magedu.org. 86400 IN A 10.0.0.128 slave1.magedu.org. 86400 IN A 10.0.0.184 www.magedu.org. 86400 IN A 10.0.0.184 #但其他机器可以从‘从服务器’抓取
#在日志服务器上打开接受其他机器的远程端口 [root@rsyslog ~]#vim /etc/rsyslog.conf ## MODULES #### ...省略... # Provides UDP syslog reception # for parameters see http://www.rsyslog.com/doc/imudp.html module(load="imudp") # needs to be done just once #局域网内一般使用UDP input(type="imudp" port="514")
# Provides TCP syslog reception # for parameters see http://www.rsyslog.com/doc/imtcp.html module(load="imtcp") # needs to be done just once #跨局域网一般使用TCP input(type="imtcp" port="514") :wq [root@rsyslog ~]#systemctl restart rsyslog #重新启动服务 [root@rsyslog ~]#ss -ntlu #可看见UDP和TCP的514端口已开启 Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process udp UNCONN 0 0 127.0.0.1:323 0.0.0.0:* udp UNCONN 0 0 0.0.0.0:514 0.0.0.0:* udp UNCONN 0 0 [::1]:323 [::]:* udp UNCONN 0 0 [::]:514 [::]:* tcp LISTEN 0 25 0.0.0.0:514 0.0.0.0:* tcp LISTEN 0 25 [::]:514 [::]:*
#此时10.0.0.185就可以看到10.0.0.184的日志了 #用一台机器远程登录10.0.0.184,此时10.0.0.185就可以记录到登录信息 [root@Centos7 ~]#ssh 10.0.0.184 [root@rsyslog ~]#cat /var/log/secure #可以看到远程登录信息 Nov 5 10:23:01 Rocky sshd[1908]: Accepted password for root from 10.0.0.216 port 37884 ssh2 Nov 5 10:23:01 Rocky sshd[1908]: pam_unix(sshd:session): session opened for user root by (uid=0) Nov 5 10:23:01 Rocky sshd[1908]: Accepted password for root from 10.0.0.216 port 37884 ssh2 Nov 5 10:23:01 Rocky sshd[1908]: pam_unix(sshd:session): session opened for user root by (uid=0)
[root@mysql ~]#yum -y install mysql-server [root@mysql ~]#systemctl enable --now mysqld [root@mysql ~]#mysql mysql> create user rsyslog@'10.0.0.%' identified by '123456'; mysql> grant all on Syslog.* to rsyslog@'10.0.0.%'; mysql> source /root/mysql-createDB.sql
#但此时启动会有两个报警提示(不影响操作) # WARNING(报警): The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. #WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect. [root@Rocky redis-6.2.7]#vim /etc/sysctl.conf net.core.somaxconn = 511 vm.overcommit_memory = 1 :wq [root@Rocky redis-6.2.7]#sysctl -p #重新加载生效 net.core.somaxconn = 511 vm.overcommit_memory = 1
#此时就可以后台运行了,但此时仍不能远程连接, [root@Rocky ~]#vim /apps/redis/etc/redis.conf bind 0.0.0.0 -::1 #将127.0.0.1改为0.0.0.0 # requirepass foobared #在此行下添加程序密码 requirepass 123456 # Note that you must specify a directory here, not a file name. dir ./apps/redis/data/ #将数据存放位置改为/apps/redis/data/ # output for logging but daemonize, logs will be sent to /dev/null logfile "/apps/redis/log/redis-6379.log" # and should be used instead. pidfile /apps/redis/run/redis_6379.pid #将/var/run/redis_6379.pid路径改为/apps/redis/run/redis_6379.pid :wq [root@Rocky ~]#systemctl restart redis [root@Rocky ~]#ss -ntl State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 511 0.0.0.0:6379 0.0.0.0:* LISTEN 0 128 [::]:22 [::]:* LISTEN 0 511 [::1]:6379 [::]:* LISTEN 0 128 *:80 *:*
1.4、持久化
Redis支持两种数据持久化保存方法:RDB和AOF两种方法
1.4.1、实现RDB的方法
①save: 同步,不推荐使用,使用主进程完成快照,因此会阻赛其它命令执行
②bgsave: 异步后台执行,不影响其它命令的执行,会开启独立的子进程,因此不会阻赛其它命令执行
③配置文件实现自动保存: 在配置文件中制定规则,自动执行bgsave
注意:RDB是以快照的形式自动备份(满足条件的情况下)
1 2 3 4 5
[root@Rocky ~]#redis-cli -a 123456 127.0.0.1:6379> config get save 1) "save" 2) "3600 1 300 100 60 10000" #3600秒发生过1次数据变化或者300秒发生过100次数据变化或者60秒发生过10000次变化,就进行快照备份
#首先临时启动AOF [root@Rocky ~]#redis-cli -a 123456 127.0.0.1:6379> config set appendonly yes#自动触发AOF重写,会自动备份所有数据到AOF文件 #等数据备份完成后,在更改配置文件 [root@Rocky ~]#vim /apps/redis/etc/redis.conf appendonly yes#将no改为yes
25、redis实现主从复制
①Redis Server 默认为 master节点,如果要配置为从节点,需要指定master服务器的IP,端口及连接密码
②在从节点执行 REPLICAOF MASTER_IP PORT 指令可以启用主从同步复制功能,早期版本使用 SLAVEOF
指令
#以下操作均在从节点操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[root@Rocky ~]#redis-cli -a 123456 127.0.0.1:6379> REPLICAOF MASTER_IP PORT #新版推荐使用 127.0.0.1:6379> SLAVEOF MasterIP Port #旧版使用,将被淘汰 127.0.0.1:6379> CONFIG SET masterauth <masterpass>
例如: [root@Rocky ~]#redis-cli -a 123456 127.0.0.1:6379> replicaof 10.0.0.184 6379 #将此机设置为10.0.0.184(主服务器)的从服务器 127.0.0.1:6379> config set masterauth 123456 #必须指定主服务器的登录密码