项目大集成

一 keeplived 高可用

|---------------|-----------------|
| 192.168.11.11 | nginx keeplived |
| 192.168.11.12 | nginx keeplived |
| | |

两台均编译安装服务器

1 主服务器修改文件:

2 备服务器修改文本

scp keepalived.conf 192.168.11.12:/etc/keepalived/

3 给主服务器添加虚拟ip

ifconfig ens33:0 192.168.11.188 netmask 255.255.255.255

ifconfig ens33: 192.168.11.188/32

4 去真机windows添加虚拟ip

192.168.11.188 www.benet.com www.kgc.com

5 添加脚本

6执行权限

chmod +x ng.sh

7 主服务器关闭nginx

复制代码
systemctl stop nginx

8 去被服务器检测:

二 实验 动静分离

承接高可用

1先把关闭nginx启动

去浏览器上检测

在虚拟机nginx做静

一 编译安装tomcat:192.168.11.13

另一台tomcat也用此方法

复制代码
[root@mcb-11-13 ~]# systemctl stop firewalld
[root@mcb-11-13 ~]# setenforce 0
[root@mcb-11-13 ~]# hostnamectl set-hostname slave01
[root@mcb-11-13 ~]# su
[root@slave01 ~]# mkdir /data
[root@slave01 ~]# cd /data
[root@slave01 data]# rz -E
rz waiting to receive.
[root@slave01 data]# rz -E
rz waiting to receive.
[root@slave01 data]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u291-linux-x64.tar.gz
[root@slave01 data]# tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local
[root@slave01 data]# cd /usr/local
[root@slave01 local]# ll
总用量 0
drwxr-xr-x. 2 root  root    6 11月  5 2016 bin
drwxr-xr-x. 2 root  root    6 11月  5 2016 etc
drwxr-xr-x. 2 root  root    6 11月  5 2016 games
drwxr-xr-x. 2 root  root    6 11月  5 2016 include
drwxr-xr-x. 8 10143 10143 273 4月   8 2021 jdk1.8.0_291
drwxr-xr-x. 2 root  root    6 11月  5 2016 lib
drwxr-xr-x. 2 root  root    6 11月  5 2016 lib64
drwxr-xr-x. 2 root  root    6 11月  5 2016 libexec
drwxr-xr-x. 2 root  root    6 11月  5 2016 sbin
drwxr-xr-x. 5 root  root   49 3月  15 19:36 share
drwxr-xr-x. 2 root  root    6 11月  5 2016 src
[root@slave01 local]# ln -s jdk1.8.0_291/ jdk
[root@slave01 local]# ls
bin  etc  games  include  jdk  jdk1.8.0_291  lib  lib64  libexec  sbin  share  src
[root@slave01 local]# . /etc/profile.d/env.sh
[root@slave01 local]# java -version
openjdk version "1.8.0_131"   #文本配置文件错误,此时要修改
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@slave01 local]# vim /etc/profile.d/env.sh
[root@slave01 local]# . /etc/profile.d/env.sh
[root@slave01 local]# java -version
java version "1.8.0_291"   #jdk 这个版本才是正确的
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
[root@slave01 local]# ls
bin  etc  games  include  jdk  jdk1.8.0_291  lib  lib64  libexec  sbin  share  src
[root@slave01 local]# cd /data
[root@slave01 data]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u291-linux-x64.tar.gz
[root@slave01 data]# tar xf apache-tomcat-9.0.16.tar.gz 
[root@slave01 data]# ls
apache-tomcat-9.0.16  apache-tomcat-9.0.16.tar.gz  jdk-8u291-linux-x64.tar.gz
[root@slave01 data]# cp -r apache-tomcat-9.0.16 /usr/local
[root@slave01 data]# cd /usr/local
[root@slave01 local]# ls
apache-tomcat-9.0.16  etc    include  jdk1.8.0_291  lib64    sbin   src
bin                   games  jdk      lib           libexec  share
[root@slave01 local]# ln -s apache-tomcat-9.0.16/ tomcat
[root@slave01 local]# ll
总用量 0
drwxr-xr-x. 9 root  root  220 4月  19 18:45 apache-tomcat-9.0.16
drwxr-xr-x. 2 root  root    6 11月  5 2016 bin
drwxr-xr-x. 2 root  root    6 11月  5 2016 etc
drwxr-xr-x. 2 root  root    6 11月  5 2016 games
drwxr-xr-x. 2 root  root    6 11月  5 2016 include
lrwxrwxrwx. 1 root  root   13 4月  19 18:40 jdk -> jdk1.8.0_291/
drwxr-xr-x. 8 10143 10143 273 4月   8 2021 jdk1.8.0_291
drwxr-xr-x. 2 root  root    6 11月  5 2016 lib
drwxr-xr-x. 2 root  root    6 11月  5 2016 lib64
drwxr-xr-x. 2 root  root    6 11月  5 2016 libexec
drwxr-xr-x. 2 root  root    6 11月  5 2016 sbin
drwxr-xr-x. 5 root  root   49 3月  15 19:36 share
drwxr-xr-x. 2 root  root    6 11月  5 2016 src
lrwxrwxrwx. 1 root  root   21 4月  19 18:46 tomcat -> apache-tomcat-9.0.16/
[root@slave01 local]# useradd tomcat -s /sbin/nologin 
[root@slave01 local]# useradd tomcat -s /sbin/nologin -R  #建错了,需要修改
useradd: 选项"-R"需要一个选项
[root@slave01 local]# useradd tomcat -s /sbin/nologin -M
useradd:用户"tomcat"已存在
[root@slave01 local]# userdel tomcat
[root@slave01 local]# find / -name tomcat
/etc/selinux/targeted/active/modules/100/tomcat
/var/spool/mail/tomcat
/usr/local/tomcat
/home/tomcat
[root@slave01 local]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:998:996:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
chrony:x:995:991::/var/lib/chrony:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:994:989:User for geoclue:/var/lib/geoclue:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
setroubleshoot:x:993:988::/var/lib/setroubleshoot:/sbin/nologin
sssd:x:992:987:User for sssd:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:991:986::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mcb:x:1000:1000:mcb:/home/mcb:/bin/bash
tomcat:x:1001:1001::/home/tomcat:/sbin/nologin
[root@slave01 local]# userdel tomcat
[root@slave01 local]# 
[root@slave01 local]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
libstoragemgmt:x:998:996:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:997:995:User for colord:/var/lib/colord:/sbin/nologin
saslauth:x:996:76:Saslauthd user:/run/saslauthd:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
chrony:x:995:991::/var/lib/chrony:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:994:989:User for geoclue:/var/lib/geoclue:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
setroubleshoot:x:993:988::/var/lib/setroubleshoot:/sbin/nologin
sssd:x:992:987:User for sssd:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:991:986::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
mcb:x:1000:1000:mcb:/home/mcb:/bin/bash
[root@slave01 local]# 
[root@slave01 local]# find / -name tomcat
/etc/selinux/targeted/active/modules/100/tomcat
/usr/local/tomcat
[root@slave01 local]# useradd tomcat -s /sbin/nologin -M
[root@slave01 local]# chown tomcat:tomcat /usr/local/tomcat/ -R
[root@slave01 local]# systemctl start tomcat
Failed to start tomcat.service: Unit not found.
[root@slave01 local]# vim /usr/lib/systemd/system/tomcat
[root@slave01 local]# systemctl daemon-reload
[root@slave01 local]# systemctl start tomcat   #因为tomcat.service没有加service,就不行
Failed to start tomcat.service: Unit not found.
[root@slave01 local]# cd /usr/lib/systemd/system/
[root@slave01 system]# ls
abrt-ccpp.service                        plymouth-poweroff.service
abrtd.service                            plymouth-quit.service
abrt-oops.service                        plymouth-quit-wait.service
abrt-pstoreoops.service                  plymouth-read-write.service
abrt-vmcore.service                      plymouth-reboot.service
abrt-xorg.service                        plymouth-start.service
accounts-daemon.service                  plymouth-switch-root.service
alsa-restore.service                     polkit.service
alsa-state.service                       postfix.service
alsa-store.service                       poweroff.target
anaconda-direct.service                  poweroff.target.wants
anaconda-nm-config.service               printer.target
anaconda-noshell.service                 proc-fs-nfsd.mount
anaconda-pre.service                     proc-sys-fs-binfmt_misc.automount
anaconda.service                         proc-sys-fs-binfmt_misc.mount
anaconda-shell@.service                  psacct.service
anaconda-sshd.service                    qemu-guest-agent.service
anaconda.target                          quotaon.service
anaconda-tmux@.service                   radvd.service
arp-ethers.service                       rc-local.service
atd.service                              rdisc.service
auditd.service                           rdma-ndd.service
auth-rpcgss-module.service               rdma.service
autofs.service                           realmd.service
autovt@.service                          reboot.target
avahi-daemon.service                     reboot.target.wants
avahi-daemon.socket                      remote-fs-pre.target
basic.target                             remote-fs.target
basic.target.wants                       rescue.service
blk-availability.service                 rescue.target
bluetooth.service                        rescue.target.wants
bluetooth.target                         rhel-autorelabel-mark.service
brandbot.path                            rhel-autorelabel.service
brandbot.service                         rhel-configure.service
brltty.service                           rhel-dmesg.service
canberra-system-bootup.service           rhel-domainname.service
canberra-system-shutdown-reboot.service  rhel-import-state.service
canberra-system-shutdown.service         rhel-loadmodules.service
certmonger.service                       rhel-readonly.service
cgconfig.service                         rngd.service
cgdcbxd.service                          rpcbind.service
cgred.service                            rpcbind.socket
chrony-dnssrv@.service                   rpcbind.target
chrony-dnssrv@.timer                     rpc-gssd.service
chronyd.service                          rpcgssd.service
chrony-wait.service                      rpcidmapd.service
colord.service                           rpc-rquotad.service
configure-printer@.service               rpc-statd-notify.service
console-getty.service                    rpc-statd.service
console-shell.service                    rsyncd.service
container-getty@.service                 rsyncd@.service
cpupower.service                         rsyncd.socket
crond.service                            rsyslog.service
cryptsetup-pre.target                    rtkit-daemon.service
cryptsetup.target                        runlevel0.target
ctrl-alt-del.target                      runlevel1.target
cups-browsed.service                     runlevel1.target.wants
cups.path                                runlevel2.target
cups.service                             runlevel2.target.wants
cups.socket                              runlevel3.target
dbus-org.freedesktop.hostname1.service   runlevel3.target.wants
dbus-org.freedesktop.import1.service     runlevel4.target
dbus-org.freedesktop.locale1.service     runlevel4.target.wants
dbus-org.freedesktop.login1.service      runlevel5.target
dbus-org.freedesktop.machine1.service    runlevel5.target.wants
dbus-org.freedesktop.timedate1.service   runlevel6.target
dbus.service                             saslauthd.service
dbus.socket                              selinux-policy-migrate-local-changes@.service
dbus.target.wants                        serial-getty@.service
debug-shell.service                      shutdown.target
default.target                           shutdown.target.wants
default.target.wants                     sigpwr.target
dev-hugepages.mount                      sleep.target
dev-mqueue.mount                         -.slice
dm-event.service                         slices.target
dm-event.socket                          smartcard.target
dmraid-activation.service                smartd.service
dnsmasq.service                          sockets.target
dracut-cmdline.service                   sockets.target.wants
dracut-initqueue.service                 sound.target
dracut-mount.service                     speech-dispatcherd.service
dracut-pre-mount.service                 spice-vdagentd.service
dracut-pre-pivot.service                 spice-vdagentd.target
dracut-pre-trigger.service               sshd-keygen.service
dracut-pre-udev.service                  sshd.service
dracut-shutdown.service                  sshd@.service
ebtables.service                         sshd.socket
emergency.service                        sssd-autofs.service
emergency.target                         sssd-autofs.socket
fcoe.service                             sssd-nss.service
final.target                             sssd-nss.socket
firewalld.service                        sssd-pac.service
firstboot-graphical.service              sssd-pac.socket
flatpak-system-helper.service            sssd-pam-priv.socket
fprintd.service                          sssd-pam.service
fstrim.service                           sssd-pam.socket
fstrim.timer                             sssd-secrets.service
gdm.service                              sssd-secrets.socket
geoclue.service                          sssd.service
getty@.service                           sssd-ssh.service
getty.target                             sssd-ssh.socket
graphical.target                         sssd-sudo.service
graphical.target.wants                   sssd-sudo.socket
gssproxy.service                         suspend.target
halt-local.service                       swap.target
halt.target                              sys-fs-fuse-connections.mount
halt.target.wants                        sysinit.target
hibernate.target                         sysinit.target.wants
hybrid-sleep.target                      sys-kernel-config.mount
hypervfcopyd.service                     sys-kernel-debug.mount
hypervkvpd.service                       syslog.socket
hypervvssd.service                       syslog.target.wants
initial-setup-graphical.service          sysstat.service
initial-setup-reconfiguration.service    systemd-ask-password-console.path
initial-setup.service                    systemd-ask-password-console.service
initial-setup-text.service               systemd-ask-password-plymouth.path
initrd-cleanup.service                   systemd-ask-password-plymouth.service
initrd-fs.target                         systemd-ask-password-wall.path
initrd-parse-etc.service                 systemd-ask-password-wall.service
initrd-root-fs.target                    systemd-backlight@.service
initrd-switch-root.service               systemd-binfmt.service
initrd-switch-root.target                systemd-bootchart.service
initrd-switch-root.target.wants          systemd-firstboot.service
initrd.target                            systemd-fsck-root.service
initrd.target.wants                      systemd-fsck@.service
initrd-udevadm-cleanup-db.service        systemd-halt.service
instperf.service                         systemd-hibernate-resume@.service
iprdump.service                          systemd-hibernate.service
iprinit.service                          systemd-hostnamed.service
iprupdate.service                        systemd-hwdb-update.service
iprutils.target                          systemd-hybrid-sleep.service
ipsec.service                            systemd-importd.service
irqbalance.service                       systemd-initctl.service
iscsid.service                           systemd-initctl.socket
iscsid.socket                            systemd-journal-catalog-update.service
iscsi.service                            systemd-journald.service
iscsi-shutdown.service                   systemd-journald.socket
iscsiuio.service                         systemd-journal-flush.service
iscsiuio.socket                          systemd-kexec.service
kdump.service                            systemd-localed.service
kexec.target                             systemd-logind.service
kexec.target.wants                       systemd-machined.service
kmod-static-nodes.service                systemd-machine-id-commit.service
kpatch.service                           systemd-modules-load.service
ksm.service                              systemd-nspawn@.service
ksmtuned.service                         systemd-poweroff.service
libstoragemgmt.service                   systemd-quotacheck.service
libvirtd.service                         systemd-random-seed.service
lldpad.service                           systemd-readahead-collect.service
lldpad.socket                            systemd-readahead-done.service
local-fs-pre.target                      systemd-readahead-done.timer
local-fs.target                          systemd-readahead-drop.service
local-fs.target.wants                    systemd-readahead-replay.service
lvm2-lvmetad.service                     systemd-reboot.service
lvm2-lvmetad.socket                      systemd-remount-fs.service
lvm2-lvmpolld.service                    systemd-rfkill@.service
lvm2-lvmpolld.socket                     systemd-shutdownd.service
lvm2-monitor.service                     systemd-shutdownd.socket
lvm2-pvscan@.service                     systemd-suspend.service
machine.slice                            systemd-sysctl.service
machines.target                          systemd-timedated.service
mdadm-grow-continue@.service             systemd-tmpfiles-clean.service
mdadm-last-resort@.service               systemd-tmpfiles-clean.timer
mdadm-last-resort@.timer                 systemd-tmpfiles-setup-dev.service
mdmonitor.service                        systemd-tmpfiles-setup.service
mdmon@.service                           systemd-udevd-control.socket
messagebus.service                       systemd-udevd-kernel.socket
microcode.service                        systemd-udevd.service
ModemManager.service                     systemd-udev-settle.service
multipathd.service                       systemd-udev-trigger.service
multi-user.target                        systemd-update-done.service
multi-user.target.wants                  systemd-update-utmp-runlevel.service
netcf-transaction.service                systemd-update-utmp.service
NetworkManager-dispatcher.service        systemd-user-sessions.service
NetworkManager.service                   systemd-vconsole-setup.service
NetworkManager-wait-online.service       system.slice
network-online.target                    system-update.target
network-online.target.wants              system-update.target.wants
network-pre.target                       target.service
network.target                           tcsd.service
nfs-blkmap.service                       teamd@.service
nfs-client.target                        timers.target
nfs-config.service                       timers.target.wants
nfs-idmapd.service                       time-sync.target
nfs-idmap.service                        tmp.mount
nfs-lock.service                         tomcat
nfslock.service                          tuned.service
nfs-mountd.service                       udisks2.service
nfs-rquotad.service                      umount.target
nfs-secure.service                       upower.service
nfs-server.service                       usb_modeswitch@.service
nfs.service                              usbmuxd.service
nfs-utils.service                        user.slice
nss-lookup.target                        var-lib-nfs-rpc_pipefs.mount
nss-user-lookup.target                   vgauthd.service
ntpdate.service                          virt-guest-shutdown.target
ntpd.service                             virtlockd.service
numad.service                            virtlockd.socket
oddjobd.service                          virtlogd.service
packagekit-offline-update.service        virtlogd.socket
packagekit.service                       vmtoolsd.service
paths.target                             wacom-inputattach@.service
plymouth-halt.service                    wpa_supplicant.service
plymouth-kexec.service                   zram.service
[root@slave01 system]# mv tomcat tomcat.service
[root@slave01 system]# systemctl daemon-reload
[root@slave01 system]# systemctl start tomcat.service 
[root@slave01 system]# systemctl status tomcat.service 
● tomcat.service - Tomcat
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: active (running) since 五 2024-04-19 19:04:17 CST; 13s ago
  Process: 4903 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 4918 (catalina.sh)
   CGroup: /system.slice/tomcat.service
           ├─4918 /bin/sh /usr/local/tomcat/bin/catalina.sh start
           └─4919 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/loggi...

4月 19 19:04:17 slave01 systemd[1]: Starting Tomcat...
4月 19 19:04:17 slave01 startup.sh[4903]: Using CATALINA_BASE:   /usr/local/tomcat
4月 19 19:04:17 slave01 startup.sh[4903]: Using CATALINA_HOME:   /usr/local/tomcat
4月 19 19:04:17 slave01 startup.sh[4903]: Using CATALINA_TMPDIR: /usr/local/tomcat/temp
4月 19 19:04:17 slave01 startup.sh[4903]: Using JRE_HOME:        /usr
4月 19 19:04:17 slave01 startup.sh[4903]: Using CLASSPATH:       /usr/local/tomcat/bin/b...jar
4月 19 19:04:17 slave01 systemd[1]: Started Tomcat.
Hint: Some lines were ellipsized, use -l to show in full.
[root@slave01 system]# systemctl enable tomcat.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
[root@slave01 system]# 

实验: 做动静分离

|--------|---------------|
| nginx | 192.168.11.11 |
| tomcat | 192.168.11.13 |
| tomcat | 192.168.11.14 |

1 三台机器分别安装 nginx(参考我 虎 赵) tomcat(我 虎 赵)

1 编译 反向代里 动静分离文本

去静态 也就是nginx添加文本

2 去tomcat配置(192.168.11.13)动态文本

3 检测

二 MySQL MHA

mysql编译安装:

|---------|---------------|
| master | 192.168.11.7 |
| slave01 | 192.168.11.13 |
| slave02 | 192.168.11.14 |
| manager | 192.168.11.9 |

1 四台主机关闭防火墙 防护

2 下载安装环境 安装包

3 创建mysql用户及解压mysql压缩包 软连接

4 编译安装及安装路径

5 更改属主/属主 修改配置文件

6 设置环境变量 加载

7 启动与自启动

复制代码
[root@slave01 ~]# 
[root@slave01 ~]# cd /opt
[root@slave01 opt]# rz -E
rz waiting to receive.
[root@slave01 opt]# rz -E
rz waiting to receive.
[root@slave01 opt]# ls
boost_1_59_0.tar.gz  mysql-5.7.17.tar.gz  rh
[root@slave01 opt]# 
[root@slave01 opt]# yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
已加载插件:fastestmirror, langpacks

yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

创建mysql用户及解压mysql压缩包 

[root@slave01 opt]# useradd -s /sbin/nologin mysql 
[root@slave01 opt]# ls
boost_1_59_0.tar.gz  mysql-5.7.17.tar.gz  rh
[root@slave01 opt]# tar xf mysql-5.7.17.tar.gz 
[root@slave01 opt]# tar xf boost_1_59_0.tar.gz -C /usr/local
[root@slave01 opt]# cd  /usr/local
[root@slave01 local]# ls
apache-tomcat-9.0.16  boost_1_59_0  games    jdk           lib    libexec  share  tomcat
bin                   etc           include  jdk1.8.0_291  lib64  sbin     src
[root@slave01 local]# ln -s boost_1_59_0/ boost
[root@slave01 local]# ls
apache-tomcat-9.0.16  boost         etc    include  jdk1.8.0_291  lib64    sbin   src
bin                   boost_1_59_0  games  jdk      lib           libexec  share  tomcat
[root@slave01 local]# 


编译安装及安装路径 

[root@slave01 local]# cd /opt/mysql-5.7.17/
[root@slave01 mysql-5.7.17]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DSYSCONFDIR=/etc \
> -DSYSTEMD_PID_DIR=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8  \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_EXTRA_CHARSETS=all \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DWITH_BOOST=/usr/local/boost \
> -DWITH_SYSTEMD=1

[root@slave01 mysql-5.7.17]# make -j 4 && make install    #需要很长时间

chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown -R mysql:mysql /usr/local/mysql/


修改配置文件
[root@slave01 mysql-5.7.17]# vim /etc/my.cnf

[client]									
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock	
 
[mysql]									
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash
 
[mysqld]
user = mysql 
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306	
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

设置环境变量
[root@slave01 mysql-5.7.17]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@slave01 mysql-5.7.17]# source /etc/profile
[root@slave01 mysql-5.7.17]# 
[root@slave01 mysql-5.7.17]# cd /usr/local/mysql/bin/
[root@slave01 bin]# 
[root@slave01 bin]# ./mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
2024-04-19T15:27:32.812209Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2024-04-19T15:27:33.117578Z 0 [Warning] InnoDB: New log files created, LSN=45790
2024-04-19T15:27:33.146953Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2024-04-19T15:27:33.221546Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 57baeda1-fe61-11ee-bf36-000c291fe803.
2024-04-19T15:27:33.223747Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2024-04-19T15:27:33.225148Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
2024-04-19T15:27:33.416709Z 1 [Warning] 'user' entry 'root@localhost' ignored in --skip-name-resolve mode.
2024-04-19T15:27:33.416742Z 1 [Warning] 'user' entry 'mysql.sys@localhost' ignored in --skip-name-resolve mode.
2024-04-19T15:27:33.416756Z 1 [Warning] 'db' entry 'sys mysql.sys@localhost' ignored in --skip-name-resolve mode.
2024-04-19T15:27:33.416766Z 1 [Warning] 'proxies_priv' entry '@ root@localhost' ignored in --skip-name-resolve mode.
2024-04-19T15:27:33.416792Z 1 [Warning] 'tables_priv' entry 'sys_config mysql.sys@localhost' ignored in --skip-name-resolve mode.
[root@slave01 bin]# 
[root@slave01 bin]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service  /usr/lib/systemd/system/
[root@slave01 bin]# 



[root@slave01 bin]# systemctl daemon-reload
[root@slave01 bin]# systemctl start mysqld.service 
[root@slave01 bin]# systemctl status mysqld.service 
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since 六 2024-04-20 00:09:17 CST; 8s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 22677 ExecStart=/usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 22657 ExecStartPre=/usr/local/mysql/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 22680 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─22680 /usr/local/mysql/bin/mysqld --daemonize --pid-file=/usr/local/mysql/mysql...

4月 20 00:09:17 slave02 mysqld[22677]: 2024-04-19T16:09:17.907483Z 0 [Warning] 'db' entr...de.
4月 20 00:09:17 slave02 mysqld[22677]: 2024-04-19T16:09:17.907493Z 0 [Warning] 'proxies_...de.
4月 20 00:09:17 slave02 mysqld[22677]: 2024-04-19T16:09:17.908342Z 0 [Warning] 'tables_p...de.
4月 20 00:09:17 slave02 mysqld[22677]: 2024-04-19T16:09:17.912412Z 0 [Note] Event Schedu...nts
4月 20 00:09:17 slave02 mysqld[22677]: 2024-04-19T16:09:17.912647Z 0 [Note] Executing 'S...ck.
4月 20 00:09:17 slave02 mysqld[22677]: 2024-04-19T16:09:17.912656Z 0 [Note] Beginning of...les
4月 20 00:09:17 slave02 mysqld[22677]: 2024-04-19T16:09:17.930205Z 0 [Note] End of list ...les
4月 20 00:09:17 slave02 mysqld[22677]: 2024-04-19T16:09:17.930343Z 0 [Note] /usr/local/m...ns.
4月 20 00:09:17 slave02 mysqld[22677]: Version: '5.7.17'  socket: '/usr/local/mysql/mysq...ion
4月 20 00:09:17 slave02 systemd[1]: Started MySQL Server.
Hint: Some lines were ellipsized, use -l to show in full.
[root@slave02 bin]# systemctl enable mysqld.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[root@slave02 bin]# netstat -natp |grep mysql
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      22680/mysqld        
[root@slave02 bin]# mysqladmin -uroot -p password "123"
Enter password: 
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@slave02 bin]# mysql -uroot -p123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.17 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> exit
Bye
[root@slave02 bin]# 

[client]									
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock	
 
[mysql]									
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash
 
[mysqld]
user = mysql 
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306	
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

8 做个定时计划

9 修改 Master01、Slave01、Slave02 节点的 Mysql主配置文件/etc/my.cnf

10 在 Master01、Slave01、Slave02 节点上都创建两个软链接

复制代码
ln -s /usr/local/mysql/bin/mysql /usr/sbin/
ln -s /usr/local/mysql/bin/mysqlbinlog /usr/sbin/
ls /usr/sbin/mysql*     #查看软连接
/usr/sbin/mysql  /usr/sbin/mysqlbinlog

11 在 Master、Slave1、Slave2 节点上都进行主从同步的授权

复制代码
grant replication slave on *.* to 'myslave'@'192.168.246.%' identified by '123123';		
grant all privileges on *.* to 'mha'@'192.168.246.%' identified by 'manager';		
grant all privileges on *.* to 'mha'@'master' identified by 'manager';			
grant all privileges on *.* to 'mha'@'slave1' identified by 'manager';
grant all privileges on *.* to 'mha'@'slave2' identified by 'manager';
flush privileges;

主从同时登陆

给从服务器授权slave01 服务器配置

验证:在主服务器创建

复制代码
mysql> flush privilieges;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'privilieges' at line 1
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> show master status;
+-------------------+----------+--------------+------------------+-------------------+
| File              | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| master-bin.000001 |      603 |              |                  |                   |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

mysql> create database mcb;
Query OK, 1 row affected (0.01 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mcb                |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)

mysql> 

从服务器验证

12 配置MHA所有组件,所有服务器上都安装 MHA 依赖的环境,首先安装 epel 源

复制代码
yum install epel-release --nogpgcheck -y
 
yum install -y perl-DBD-MySQL \
> perl-Config-Tiny \
> perl-Log-Dispatch \
> perl-Parallel-ForkManager \
> perl-ExtUtils-CBuilder \
> perl-ExtUtils-MakeMaker \
> perl-CPAN

13 四台服务器安装环境

14 在所有服务器上必须先安装node组件,最后在MHA-manager节点上安装manager组件,因为manager依赖node组件。

在 MHA manager 节点上安装 manager 组件

manege免密交互

复制代码
[root@elk01 mha4mysql-manager-0.57]#ssh-keygen -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:HvUbXKX4fSndq2yADEyKmlwWJ+iJlHOVwma49qdcGKY root@elk01
The key's randomart image is:
+---[RSA 2048]----+
|  = ...         .|
| * O o .     . o |
|+ B * +   . . o  |
|.= * . o . o o..o|
|o O o   S . +..o+|
| E o o . + . o. o|
|  . +   .   o  . |
|   o        ...  |
|            .o   |
+----[SHA256]-----+
[root@elk01 mha4mysql-manager-0.57]#ssh-copy-id 192.168.11.7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.7 (192.168.11.7)' can't be established.
ECDSA key fingerprint is SHA256:uQfWnfl20Yj/iVllTVL3GAe3b5oPUj7IkhfWji2tF4Y.
ECDSA key fingerprint is MD5:23:93:1c:28:77:cc:64:8c:b6:fb:4a:c2:90:9c:b5:1a.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.7's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.7'"
and check to make sure that only the key(s) you wanted were added.

[root@elk01 mha4mysql-manager-0.57]#ssh-copy-id 192.168.11.13
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.13 (192.168.11.13)' can't be established.
ECDSA key fingerprint is SHA256:yxbaJImj8mJsF3SNpt1dlUq4RCnL5sn8R7NJNBhCQIs.
ECDSA key fingerprint is MD5:8b:67:9d:ff:25:ae:d2:81:f0:a0:ca:f6:af:ef:31:b1.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.13's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.13'"
and check to make sure that only the key(s) you wanted were added.

[root@elk01 mha4mysql-manager-0.57]#ssh-copy-id 192.168.11.14
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.14 (192.168.11.14)' can't be established.
ECDSA key fingerprint is SHA256:JAQ3v9JIlkv3lauqQxhRmSga7GPl5zIOv0THdDWT1TU.
ECDSA key fingerprint is MD5:d3:64:b1:26:6c:a5:f3:50:38:b2:db:ab:07:67:fe:00.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.14's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.14'"
and check to make sure that only the key(s) you wanted were added.

主服务器做免密

复制代码
[root@master01 mha4mysql-node-0.57]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vAZw2+fhzyIb49b+VAl10Vg7mUw2BY5rJGU5EuIgEwo root@master01
The key's randomart image is:
+---[RSA 2048]----+
|E   +.. . ..o.oOB|
| . . o o ..oo+=.*|
|  . . . . ..+..* |
|     o +   o o ..|
|      o S o o o  |
|       . = o .   |
|        =.o .    |
|       oooo+     |
|       .o+.o+    |
+----[SHA256]-----+
[root@master01 mha4mysql-node-0.57]# ssh-copy-id 192.168.11.13
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.13 (192.168.11.13)' can't be established.
ECDSA key fingerprint is SHA256:yxbaJImj8mJsF3SNpt1dlUq4RCnL5sn8R7NJNBhCQIs.
ECDSA key fingerprint is MD5:8b:67:9d:ff:25:ae:d2:81:f0:a0:ca:f6:af:ef:31:b1.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.13's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.13'"
and check to make sure that only the key(s) you wanted were added.

[root@master01 mha4mysql-node-0.57]# ssh-copy-id 192.168.11.14
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.14 (192.168.11.14)' can't be established.
ECDSA key fingerprint is SHA256:JAQ3v9JIlkv3lauqQxhRmSga7GPl5zIOv0THdDWT1TU.
ECDSA key fingerprint is MD5:d3:64:b1:26:6c:a5:f3:50:38:b2:db:ab:07:67:fe:00.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.14's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.14'"
and check to make sure that only the key(s) you wanted were added.

从1服务器做免密

复制代码
[root@slave01 mha4mysql-node-0.57]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:yZwFzSDAbfdK2ybyqwU2VwfLx4EcK4bhN6I2t6mhsMw root@slave01
The key's randomart image is:
+---[RSA 2048]----+
|   ..oo o=oo.    |
|    ..o+.o== .   |
|     .+.=.* +    |
|     . *.B.o     |
|    + =.S+       |
|   . +.*+ o      |
|.   . oo.o       |
|oo . o ..        |
|.E. . ....       |
+----[SHA256]-----+
您在 /var/spool/mail/root 中有新邮件
[root@slave01 mha4mysql-node-0.57]# ssh-copy-id 192.168.11.14
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.14 (192.168.11.14)' can't be established.
ECDSA key fingerprint is SHA256:JAQ3v9JIlkv3lauqQxhRmSga7GPl5zIOv0THdDWT1TU.
ECDSA key fingerprint is MD5:d3:64:b1:26:6c:a5:f3:50:38:b2:db:ab:07:67:fe:00.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.14's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.14'"
and check to make sure that only the key(s) you wanted were added.

您在 /var/spool/mail/root 中有新邮件
[root@slave01 mha4mysql-node-0.57]# ssh-copy-id 192.168.11.7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.7 (192.168.11.7)' can't be established.
ECDSA key fingerprint is SHA256:uQfWnfl20Yj/iVllTVL3GAe3b5oPUj7IkhfWji2tF4Y.
ECDSA key fingerprint is MD5:23:93:1c:28:77:cc:64:8c:b6:fb:4a:c2:90:9c:b5:1a.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.7's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.7'"
and check to make sure that only the key(s) you wanted were added.

从2服务器免密

复制代码
[root@slave02 mha4mysql-node-0.57]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:fxWAkdGfr9KqphQ2b40ZUq/kys2thugv5jehXNycyMM root@slave02
The key's randomart image is:
+---[RSA 2048]----+
|          o*.    |
|          o ..   |
|          .  ... |
|         . .  o. |
|       +S+o.. .. |
|       .EO+* .  .|
|     . +.+O o. . |
|      *o+=oo. o  |
|     +o+===ooo   |
+----[SHA256]-----+
您在 /var/spool/mail/root 中有新邮件
[root@slave02 mha4mysql-node-0.57]# ssh-copy-id 192.168.11.7
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.7 (192.168.11.7)' can't be established.
ECDSA key fingerprint is SHA256:uQfWnfl20Yj/iVllTVL3GAe3b5oPUj7IkhfWji2tF4Y.
ECDSA key fingerprint is MD5:23:93:1c:28:77:cc:64:8c:b6:fb:4a:c2:90:9c:b5:1a.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.7's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.7'"
and check to make sure that only the key(s) you wanted were added.

[root@slave02 mha4mysql-node-0.57]# ssh-copy-id 192.168.11.13
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.11.13 (192.168.11.13)' can't be established.
ECDSA key fingerprint is SHA256:yxbaJImj8mJsF3SNpt1dlUq4RCnL5sn8R7NJNBhCQIs.
ECDSA key fingerprint is MD5:8b:67:9d:ff:25:ae:d2:81:f0:a0:ca:f6:af:ef:31:b1.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.11.13's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '192.168.11.13'"
and check to make sure that only the key(s) you wanted were added.

15在 manager 节点上配置 MHA

(1)在 manager 节点上复制相关脚本到/usr/local/bin 目录

复制代码
[root@elk01 mha4mysql-manager-0.57]#cp -rp /opt/mha4mysql-manager-0.57/samples/scripts /usr/local/bin
[root@elk01 mha4mysql-manager-0.57]#ll /usr/local/bin/scripts/
总用量 32
-rwxr-xr-x 1 1001 1001  3648 5月  31 2015 master_ip_failover
-rwxr-xr-x 1 1001 1001  9870 5月  31 2015 master_ip_online_change
-rwxr-xr-x 1 1001 1001 11867 5月  31 2015 power_manager
-rwxr-xr-x 1 1001 1001  1360 5月  31 2015 send_report

[root@elk01 mha4mysql-manager-0.57]#cp /usr/local/bin/scripts/master_ip_failover /usr/local/bin/
[root@elk01 mha4mysql-manager-0.57]#ll /usr/local/bin
总用量 88
-r-xr-xr-x 1 root root 16381 4月  20 13:40 apply_diff_relay_logs
-r-xr-xr-x 1 root root  4807 4月  20 13:40 filter_mysqlbinlog
-r-xr-xr-x 1 root root  1995 4月  20 13:52 masterha_check_repl
-r-xr-xr-x 1 root root  1779 4月  20 13:52 masterha_check_ssh
-r-xr-xr-x 1 root root  1865 4月  20 13:52 masterha_check_status
-r-xr-xr-x 1 root root  3201 4月  20 13:52 masterha_conf_host
-r-xr-xr-x 1 root root  2517 4月  20 13:52 masterha_manager
-r-xr-xr-x 1 root root  2165 4月  20 13:52 masterha_master_monitor
-r-xr-xr-x 1 root root  2373 4月  20 13:52 masterha_master_switch
-r-xr-xr-x 1 root root  5171 4月  20 13:52 masterha_secondary_check
-r-xr-xr-x 1 root root  1739 4月  20 13:52 masterha_stop
-rwxr-xr-x 1 root root  3648 4月  20 14:13 master_ip_failover
-r-xr-xr-x 1 root root  8261 4月  20 13:40 purge_relay_logs
-r-xr-xr-x 1 root root  7525 4月  20 13:40 save_binary_logs
drwxr-xr-x 2 1001 1001   103 5月  31 2015 scripts

14 创建 MHA 软件目录并拷贝配置文件,这里使用app1.cnf配置文件来管理 mysql 节点服务器

复制代码
[root@elk01 mha4mysql-manager-0.57]#vim /usr/local/bin/master_ip_failover
[root@elk01 mha4mysql-manager-0.57]#mkdir /etc/masterha
[root@elk01 mha4mysql-manager-0.57]#vim /usr/local/bin/master_ip_failover
[root@elk01 mha4mysql-manager-0.57]#cp /opt/mha4mysql-manager-0.57/samples/conf/app1.cnf /etc/masterha
[root@elk01 mha4mysql-manager-0.57]#vim /etc/masterha/app1.cnf

[server default]
manager_log=/var/log/masterha/app1/manager.log
manager_workdir=/var/log/masterha/app1
master_binlog_dir=/usr/local/mysql/data
master_ip_failover_script=/usr/local/bin/master_ip_failover 
master_ip_online_change_script=/usr/local/bin/master_ip_online_change
password=abc123
user=my
ping_interval=1
remote_workdir=/tmp
repl_password=123
repl_user=myslave
secondary_check_script=/usr/local/bin/masterha_secondary_check -s 192.168.11.13 -s 192.168.11.14
shutdown_script=""
ssh_user=root 
 
[server1]
hostname=192.168.11.7
port=3306
 
[server2]
candidate_master=1  
check_repl_delay=0
hostname=192.168.11.13
port=3306
 
[server3]
hostname=192.168.11.14
port=3306

15 第一次配置需要在 Master 节点上手动开启虚拟IP地址

复制代码
[root@master01 opt]# /sbin/ifconfig ens33:1 192.168.11.100/24
[root@master01 opt]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

16 在 manager 节点上测试 ssh 无密码认证

在 manager 节点上测试 ssh 无密码认证,如果正常最后会输出 successfully,如下所示。

复制代码
masterha_check_ssh -conf=/etc/masterha/app1.cnf

17 在 manager 节点上测试 mysql 主从连接情况

在 manager 节点上测试 mysql 主从连接情况,最后出现MySQL Replication Health is OK 字样说明正常。如下所示。

输入它查看情况

复制代码
[root@elk01 mha4mysql-manager-0.57]#masterha_check_repl -conf=/etc/masterha/app1.cnf

在 manager 节点上启动 MHA

复制代码
nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

[root@elk01 mha4mysql-manager-0.57]#nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &
[1] 10192
[root@elk01 mha4mysql-manager-0.57]#ps -aux|grep manager
root      10192  0.5  0.5 297380 21752 pts/0    S    17:20   0:00 perl /usr/local/bin/masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover
root      10295  0.0  0.0 112824   984 pts/0    S+   17:21   0:00 grep --color=auto manager

在 manager 节点上查看 MHA 状态 和 MHA 日志,可以看到 master的地址

复制代码
masterha_check_status --conf=/etc/masterha/app1.cnf

[root@elk01 mha4mysql-manager-0.57]#masterha_check_status --conf=/etc/masterha/app1.cnf
app1 (pid:10192) is running(0:PING_OK), master:192.168.11.7
[root@elk01 mha4mysql-manager-0.57]#cat /var/log/masterha/app1/manager.log | grep "current master"
Sat Apr 20 17:20:56 2024 - [info] Checking SSH publickey authentication settings on the current master..
192.168.11.7(192.168.11.7:3306) (current master)

查看master 的 VIP 地址 192.168.10.200 是否存在

这个 VIP 地址不会因为 manager 节点停止 MHA 服务而消失。

故障模拟

#在 manager 节点上监控观察日志记录

复制代码
tail -f /var/log/masterha/app1/manager.log

同时去Master 节点 master 上停止mysql服务

再去manager服务器上的日志查看

查看 slave1 是否接管 VIP,使用ifconfig

正常自动切换一次后,MHA 进程会退出。HMA 会自动修改 app1.cnf 文件内容,将宕机的 master 节点删除。查看 slave1 是否接管 VIP

故障修复

修复原来的master(即修复原来的主节点)
修复主从

在新的主库服务器 slave1 中查看二进制日志文件和同步点

show master status;

在原主库服务器 master执行同步操作,同步现在主库中的数据

复制代码
change master to master_host='192.168.11.13',master_user='myslave',master_password='123',master_log_file='master-bin.000005',master_log_pos=154;
在 manager 节点上修改配置文件app1.cnf

重新把三台mysql节点服务器这个记录添加进去,因为它检测到主节点失效时候会自动删除主节点

将slave01添加为新的候选master01

在 manager 节点上启动 MHA

复制代码
 nohup masterha_manager --conf=/etc/masterha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/masterha/app1/manager.log 2>&1 &

安装tomcat编译:192.168.11.14

复制代码
#使用二进制安装jdk

[root@slave02 ~]# mkdir /data
[root@slave02 ~]# cd /data
[root@slave02 data]# rz -E
rz waiting to receive.
[root@slave02 data]# rz -E
rz waiting to receive.
[root@slave02 data]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u291-linux-x64.tar.gz
[root@slave02 data]# tar jdk-8u291-linux-x64.tar.gz 
tar: 旧选项"g"需要参数。
请用"tar --help"或"tar --usage"获得更多信息。
[root@slave02 data]# tar xf jdk-8u291-linux-x64.tar.gz 
[root@slave02 data]# ls
apache-tomcat-9.0.16.tar.gz  jdk1.8.0_291  jdk-8u291-linux-x64.tar.gz
[root@slave02 data]# rm -rf jdk1.8.0_291/
[root@slave02 data]# tar xf jdk-8u291-linux-x64.tar.gz -C /usr/local
[root@slave02 data]# ls /usr/local
bin    boost_1_59_0  games    jdk1.8.0_291  lib64    mysql  share
boost  etc           include  lib           libexec  sbin   src
[root@slave02 data]# cd /usr/local
[root@slave02 local]# ln -s jdk1.8.0_291/ jdk
[root@slave02 local]# ls
bin    boost_1_59_0  games    jdk           lib    libexec  sbin   src
boost  etc           include  jdk1.8.0_291  lib64  mysql    share
[root@slave02 local]# ll
总用量 4
drwxr-xr-x.  2 root  root     6 11月  5 2016 bin
lrwxrwxrwx.  1 root  root    13 4月  19 23:49 boost -> boost_1_59_0/
drwx------.  8   501 games 4096 8月  12 2015 boost_1_59_0
drwxr-xr-x.  2 root  root     6 11月  5 2016 etc
drwxr-xr-x.  2 root  root     6 11月  5 2016 games
drwxr-xr-x.  2 root  root     6 11月  5 2016 include
lrwxrwxrwx.  1 root  root    13 4月  20 08:57 jdk -> jdk1.8.0_291/ #软连接显示
drwxr-xr-x.  8 10143 10143  273 4月   8 2021 jdk1.8.0_291
drwxr-xr-x.  2 root  root     6 11月  5 2016 lib
drwxr-xr-x.  2 root  root     6 11月  5 2016 lib64
drwxr-xr-x.  2 root  root     6 11月  5 2016 libexec
drwxr-xr-x. 12 mysql mysql  229 4月  20 00:09 mysql
drwxr-xr-x.  2 root  root     6 11月  5 2016 sbin
drwxr-xr-x.  5 root  root    49 3月  15 19:21 share
drwxr-xr-x.  2 root  root     6 11月  5 2016 src
[root@slave02 local]# vim /etc profile.d/env.sh
还有 2 个文件等待编辑
[root@slave02 local]# vim /etc/profile.d/env.sh
[root@slave02 local]# cat /etc/profile.d/env.sh
# java home
export JAVA_HOME=/usr/local/jdk     #切记路径要一致,否则型号会报错
export PATH=$JAVA_HOME/bin:$PATH
export JRE_HOME=$JAVA_HOME/jre 
export CLASSPATH=$JAVA_HOME/lib/:$JRE_HOME/lib/
[root@slave02 local]# java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)
[root@slave02 data]# ls
apache-tomcat-9.0.16.tar.gz  jdk-8u291-linux-x64.tar.gz
[root@slave02 data]# cp -r apache-tomcat-9.0.16.tar.gz /usr/local
[root@slave02 data]# cd /usr/local
[root@slave02 local]# ls
apache-tomcat-9.0.16.tar.gz  boost_1_59_0  include       lib      mysql  src
bin                          etc           jdk           lib64    sbin
boost                        games         jdk1.8.0_291  libexec  share

[root@slave02 local]# tar xf apache-tomcat-9.0.16.tar.gz 
[root@slave02 local]# ls
apache-tomcat-9.0.16         boost         games    jdk1.8.0_291  libexec  share
apache-tomcat-9.0.16.tar.gz  boost_1_59_0  include  lib           mysql    src
bin                          etc           jdk      lib64         sbin
[root@slave02 local]# ln -s apache-tomcat-9.0.16/ tomcat
[root@slave02 local]# cd tomcat/
[root@slave02 tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work

新建用户tomcat  并修改其属主和属组,权限
[root@slave02 tomcat]# useradd tomcat -s /sbin/nologin -M
[root@slave02 tomcat]# chown tomcat:tomcat /usr/local/tomcat/ -R
[root@slave02 tomcat]# cat > /usr/lib/systemd/system/tomcat.service <<EOF
> [Unit]
> Description=Tomcat
> After=syslog.target network.target
> 
> [Service]
> Type=forking
> ExecStart=/usr/local/tomcat/bin/startup.sh
> ExecStop=/usr/local/tomcat/bin/shutdown.sh
> RestartSec=3
> PrivateTmp=true
> User=tomcat
> Group=tomcat
> 
> [Install]
> WantedBy=multi-user.target
> EOF
[root@slave02 tomcat]# systemctl start tomcat
[root@slave02 tomcat]# systemctl status tomcat
● tomcat.service - Tomcat
   Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
   Active: active (running) since 六 2024-04-20 09:35:19 CST; 6s ago
  Process: 34542 ExecStart=/usr/local/tomcat/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 34557 (catalina.sh)
   CGroup: /system.slice/tomcat.service
           ├─34557 /bin/sh /usr/local/tomcat/bin/catalina.sh start
           └─34558 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf...

4月 20 09:35:19 slave02 systemd[1]: Starting Tomcat...
4月 20 09:35:19 slave02 startup.sh[34542]: Using CATALINA_BASE:   /usr/local/tomcat
4月 20 09:35:19 slave02 startup.sh[34542]: Using CATALINA_HOME:   /usr/local/tomcat
4月 20 09:35:19 slave02 startup.sh[34542]: Using CATALINA_TMPDIR: /usr/local/tomcat/temp
4月 20 09:35:19 slave02 startup.sh[34542]: Using JRE_HOME:        /usr
4月 20 09:35:19 slave02 startup.sh[34542]: Using CLASSPATH:       /usr/local/tomcat/...ar
4月 20 09:35:19 slave02 systemd[1]: Started Tomcat.
Hint: Some lines were ellipsized, use -l to show in full.
[root@slave02 tomcat]# systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /usr/lib/systemd/system/tomcat.service.
[root@slave02 tomcat]# pstree -p | grep tomcat
[root@slave02 tomcat]# pstree -p | grep java
           |-catalina.sh(34557)---java(34558)-+-{java}(34559)
           |                                  |-{java}(34560)
           |                                  |-{java}(34561)
           |                                  |-{java}(34562)
           |                   
[root@slave02 tomcat]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.1  0.1 193680  5076 ?        Ss   08:05   0:07 /usr/lib/systemd/systemd
root          2  0.0  0.0      0     0 ?        S    08:05   0:00 [kthreadd]
root      34510  0.0  0.0      0     0 ?        S    09:32   0:00 [kworker/12:0]
tomcat    34557  0.0  0.0 113408   680 ?        S    09:35   0:00 /bin/sh /usr/local/tomca
tomcat    34558  3.6  3.3 6872068 127728 ?      Sl   09:35   0:07 /usr/bin/java -Djava.uti
root      34680  0.0  0.0 108052   352 ?        S    09:38   0:00 sleep 60
root      34681  0.0  0.0 151212  1844 pts/2    R+   09:38   0:00 ps aux
[root@slave02 tomcat]# 

编译安装keeplived:192.168.11.11

复制代码
[root@mcb-11 ~]# yum install keepalived.x86_64  -y
已加载插件:fastestmirror, langpacks
[root@mcb-11 ~]# cd /etc/keepalived/
[root@mcb-11 keepalived]# ls
keepalived.conf
[root@mcb-11 keepalived]# cp keepalived.conf keepalived.conf.bak
[root@mcb-11 keepalived]# ls
keepalived.conf  keepalived.conf.bak
[root@mcb-11 keepalived]# vim keepalived.conf

三 做 ELK:192.168.11.9

复制代码
做主机名映射
[root@elk01 ~]#echo "192.168.11.9 elk01" >> /etc/hosts
安装 ElasticSearch-rpm包
[root@elk01 ~]#cd /opt
[root@elk01 opt]#ls
mha4mysql-manager-0.57         perl-Config-Tiny         perl-Log-Dispatch
mha4mysql-manager-0.57.tar.gz  perl-CPAN                perl-Parallel-ForkManager
mha4mysql-node-0.57            perl-ExtUtils-CBuilder   rh
mha4mysql-node-0.57.tar.gz     perl-ExtUtils-MakeMaker
[root@elk01 opt]#rz -E
rz waiting to receive.
[root@elk01 opt]#rpm -ivh elasticsearch-5.5.0.rpm 
警告:elasticsearch-5.5.0.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
Creating elasticsearch group... OK
Creating elasticsearch user... OK

加载系统服务

[root@elk01 opt]#systemctl daemon-reload 
[root@elk01 opt]#systemctl start elasticsearch.service 
[root@elk01 opt]#systemctl enable elasticsearch.service 
修改 elasticsearch 主配置文件

 
[root@elk01 opt]# cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
#备份配置文件
[root@elk01 opt]# vim /etc/elasticsearch/elasticsearch.yml
 
##17行,取消注释,指定群集名称
cluster.name: my-elk-cluster
##23行,取消注释,指定节点名称()
node.name: node1
##33行,取消注释,指定数据存放路径
path.data: /data/elk_data
##37行,取消注释,指定日志存放路径
path.logs: /var/log/elasticsearch/
##43行,取消注释,不在启动的时候锁定内存(前端缓存,与IOPS-性能测试方式,每秒读写次数相关)
bootstrap.memory_lock: false
##55行,取消注释,设置监听地址,0.0.0.0代表所有地址
network.host: 0.0.0.0
##59行,取消注释,ES服务的默认监听端口为9200
http.port: 9200
##68行,取消注释,集群发现通过单播实现,指定要发现的节点node1、node2
discovery.zen.ping.unicast.hosts: ["elk01"]

查看我们修改的内容

[root@elk01 elasticsearch]#vim /etc/elasticsearch/elasticsearch.yml
[root@elk01 elasticsearch]#grep -v "^#" /etc/elasticsearch/elasticsearch.yml
cluster.name: my-elk-cluster
node.name: elk01
path.data: /data/elk_data
bootstrap.memory_lock: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["elk01"]

创建数据存放路径并授权

[root@elk01 elasticsearch]# mkdir -p /data/elk_data
[root@elk01 elasticsearch]#
[root@elk01 elasticsearch]#chown elasticsearch:elasticsearch /data/elk_data/

启动 elasticsearch

[root@elk01 elasticsearch]#systemctl start elasticsearch.service 
[root@elk01 elasticsearch]#netstat -natp | grep 9200
tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN      16953/java          
tcp6       0      0 ::1:9200                :::*                    LISTEN      16953/java

启动 elasticsearch-head 服务

[root@elk01 elasticsearch]#systemctl start elasticsearch.service 
[root@elk01 elasticsearch]#netstat -natp | grep 9200
tcp6       0      0 127.0.0.1:9200          :::*                    LISTEN      16953/java          
tcp6       0      0 ::1:9200                :::*                    LISTEN      16953/java

查看节点信息

报错原因一般时配置文件

复制代码
浏览器访问 http://192.168.11.11:9200

安装 Elasticsearch-head 插件

复制代码
[root@elk01 elasticsearch]#cd /opt
[root@elk01 opt]#ls
elasticsearch-5.5.0.rpm        mha4mysql-node-0.57.tar.gz  perl-ExtUtils-MakeMaker
mha4mysql-manager-0.57         perl-Config-Tiny            perl-Log-Dispatch
mha4mysql-manager-0.57.tar.gz  perl-CPAN                   perl-Parallel-ForkManager
mha4mysql-node-0.57            perl-ExtUtils-CBuilder      rh
[root@elk01 opt]#yum install -y gcc gcc-c++ make
[root@elk01 opt]#rz -E
rz waiting to receive.
[root@elk01 opt]#
[root@elk01 opt]#tar xf node-v8.2.1.tar.gz 
[root@elk01 opt]#cd node-v8.2.1/
[root@elk01 node-v8.2.1]#./configure 
creating ./icu_config.gypi
[root@elk01 node-v8.2.1]#make -j 4 && make install   #需要编译很长时间




安装phantomjs
[root@elk01 node-v8.2.1]#rz -E
rz waiting to receive.
[root@elk01 node-v8.2.1]#rz -E
rz waiting to receive.
[root@elk01 node-v8.2.1]#cd /opt
[root@elk01 opt]#ls
elasticsearch-5.5.0.rpm        node-v8.2.1             perl-ExtUtils-MakeMaker
mha4mysql-manager-0.57         node-v8.2.1.tar.gz      perl-Log-Dispatch
mha4mysql-manager-0.57.tar.gz  perl-Config-Tiny        perl-Parallel-ForkManager
mha4mysql-node-0.57            perl-CPAN               rh
mha4mysql-node-0.57.tar.gz     perl-ExtUtils-CBuilder
[root@elk01 opt]#cd ..
[root@elk01 /]#cd ../
[root@elk01 /]#cd ~
[root@elk01 ~]# cd 
[root@elk01 ~]#cd /opt/node-v8.2.1/
[root@elk01 node-v8.2.1]#ls
android-configure      configure                  node.gyp
AUTHORS                CONTRIBUTING.md            node.gypi
benchmark              deps                       out
BSDmakefile            doc                        phantomjs-2.1.1-linux-x86_64.tar.bz2
BUILDING.md            elasticsearch-head.tar.gz  README.md
CHANGELOG.md           GOVERNANCE.md              src
CODE_OF_CONDUCT.md     icu_config.gypi            test
COLLABORATOR_GUIDE.md  lib                        tools
common.gypi            LICENSE                    vcbuild.bat
config.gypi            Makefile
config.mk              node
[root@elk01 node-v8.2.1]#mv elasticsearch-head.tar.gz phantomjs-2.1.1-linux-x86_64.tar.bz2 /opt
[root@elk01 node-v8.2.1]#cd /opt
[root@elk01 opt]#laa
bash: laa: 未找到命令...
[root@elk01 opt]#ls
elasticsearch-5.5.0.rpm        perl-Config-Tiny
elasticsearch-head.tar.gz      perl-CPAN
mha4mysql-manager-0.57         perl-ExtUtils-CBuilder
mha4mysql-manager-0.57.tar.gz  perl-ExtUtils-MakeMaker
mha4mysql-node-0.57            perl-Log-Dispatch
mha4mysql-node-0.57.tar.gz     perl-Parallel-ForkManager
node-v8.2.1                    phantomjs-2.1.1-linux-x86_64.tar.bz2
node-v8.2.1.tar.gz             rh
[root@elk01 opt]#tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /usr/local/src
[root@elk01 opt]#cd /usr/local/src/phantomjs-2.1.1-linux-x86_64/
[root@elk01 phantomjs-2.1.1-linux-x86_64]#ls
bin  ChangeLog  examples  LICENSE.BSD  README.md  third-party.txt
[root@elk01 phantomjs-2.1.1-linux-x86_64]#cd bin
[root@elk01 bin]#ls
phantomjs
[root@elk01 bin]#cp phantomjs /usr/local/bin


安装 Elasticsearch-head 数据可视化工具

[root@elk01 bin]#cp phantomjs /usr/local/bin
[root@elk01 bin]#cd /opt
[root@elk01 opt]#ls
elasticsearch-5.5.0.rpm        perl-Config-Tiny
elasticsearch-head.tar.gz      perl-CPAN
mha4mysql-manager-0.57         perl-ExtUtils-CBuilder
mha4mysql-manager-0.57.tar.gz  perl-ExtUtils-MakeMaker
mha4mysql-node-0.57            perl-Log-Dispatch
mha4mysql-node-0.57.tar.gz     perl-Parallel-ForkManager
node-v8.2.1                    phantomjs-2.1.1-linux-x86_64.tar.bz2
node-v8.2.1.tar.gz             rh
[root@elk01 opt]#tar xf elasticsearch-head.tar.gz -C /usr/local/src
[root@elk01 opt]#cd /usr/local/src
[root@elk01 src]#cd elasticsearch-head/
[root@elk01 elasticsearch-head]#npm install
npm WARN deprecated fsevents@1.2.13: The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules/karma/node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
npm WARN elasticsearch-head@0.0.0 license should be a valid SPDX license expression

up to date in 6.331s



修改 Elasticsearch 主配置文件

[root@node1 elasticsearch-head]# vim /etc/elasticsearch/elasticsearch.yml
 
##末行添加以下内容
http.cors.enabled: true			##开启跨域访问支持,默认为false
http.cors.allow-origin: "*"		##指定跨域访问允许的域名地址为所有
 
[root@ekl elasticsearch-head]# systemctl restart elasticsearch.service
[root@elk elasticsearch-head]# netstat -antp | grep 9200



启动 elasticsearch-head 服务
[root@elk01 elasticsearch-head]#npm run start &
[2] 70435
[root@elk01 elasticsearch-head]#
> elasticsearch-head@0.0.0 start /usr/local/src/elasticsearch-head
> grunt server

Running "connect:server" (connect) task
Waiting forever...
Started connect web server on http://localhost:9100

#此时去浏览器去访问

通过 Elasticsearch-head 查看 ES 信息

安装Kibana 192.168.11.9

复制代码
[root@elk01 opt]#rz -E
rz waiting to receive.
[root@elk01 opt]#rpm -ivh kibana-5.5.1-x86_64.rpm 
警告:kibana-5.5.1-x86_64.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:kibana-5.5.1-1                   ################################# [100%]
[root@elk01 opt]#cp /etc/kibana/kibana.yml /etc/kibana/kibana.yml.bar
[root@elk01 opt]#vim /etc/kibana/kibana.yml 
[root@elk01 opt]#systemctl start kibana.service
[root@elk01 opt]#systemctl enable kibana.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /etc/systemd/system/kibana.service.
[root@elk01 opt]#netstat -natp | grep 5601
tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      72781/node

安装 filebeat 192.168.11.4

安装 logstash

复制代码
[root@slave02 filebeat]# cd /opt
[root@slave02 opt]# rz -E
rz waiting to receive.
[root@slave02 opt]# rpm -ivh logstash-5.5.1.rpm 
警告:logstash-5.5.1.rpm: 头V4 RSA/SHA512 Signature, 密钥 ID d88e42b4: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:logstash-1:5.5.1-1               ################################# [100%]
Using provided startup.options file: /etc/logstash/startup.options
Successfully created system startup script for Logstash
您在 /var/spool/mail/root 中有新邮件
[root@slave02 opt]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
[root@slave02 opt]# systemctl start logstash.service 
[root@slave02 opt]# systemctl enable logstash.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/logstash.service to /etc/systemd/system/logstash.service.


logstash -e 'input { stdin{} } output { stdout{} }'

测试

思 查看nginx_accrss日志

|---------------|---------------|
| 192.168.11.9 | es head kafba |
| 192.168.11.12 | logstash |
| 192.168.11.14 | logstash |
| | |
| | |

1 先开启es

2 在nginx_access 修改配置文件

复制代码
 cd /etc/logstash/conf.d/
 ls
 vim nginx_log.conf
 systemctl restart logstash
 systemctl status logstash
 ls
 logstash -f nginx_log.conf

input {
  file {
     path => "/apps/nginx/logs/access.log"
     type => "access"
     start_position => "beginning"
  }
  file {
     path => "/apps/nginx/logs/error.log"
     type => "error"
     start_position => "beginning"
  }
}
output {
  if [type] == "access" {
     elasticsearch {
     hosts => ["192.168.11.9:9200"]
     index => "nginx_access-%{+YYYY.MM.dd}"
     }
  }
  if [type] == "error" {
     elasticsearch {
     hosts => ["192.168.11.9:9200"]
     index => "nginx_error-%{+YYYY.MM.dd}"
     }
  }
}

3 重启服务

五 查看mysql_error 日志

1先开启es head

复制代码
[root@slave02 conf.d]# cat mysql_log.conf 
input {
  file {
    path => "/usr/local/mysql/data/error.log"
    start_position => "beginning"
    sincedb_path => "/dev/null"
    type => "mysql_error"
  }
}

output {
  elasticsearch {
    hosts => ["192.168.11.9:9200"]
    index => "mysql.error-%{+YYYY.MM.dd}"
  }
}

root@slave02 conf.d# logstash -f mysql_log.conf

2 编译MySQL 上logstash文本

复制代码
[root@slave02 ROOT]# cd /etc/logstash/
[root@slave02 logstash]# vim mysql_error.conf
[root@slave02 logstash]# systemctl restart mysql
[root@slave02 conf.d]# logstash -f mysql_error.conf 

六 两个域名访问同页面

|---------------|------------|
| 192.168.11.11 | ha01 nginx |
| 192.168.11.12 | |
| 浏览器 | |

1 在192.168.11.11 添加

复制代码
[root@ha01 ~]# cd /apps/nginx/
[root@ha01 nginx]# ls
client_body_temp  fastcgi_temp  logs        sbin       uwsgi_temp
conf              html          proxy_temp  scgi_temp            
[root@ha01 nginx]# cd conf/
[root@ha01 conf]# vim nginx.conf
复制代码
[root@ha01 conf]# cd /opt/html/
[root@ha01 html]# ls
index.html
[root@ha01 html]# cat index.html 
ACB
[root@ha01 html]# cat /etc/host
cat: /etc/host: 没有那个文件或目录
[root@ha01 html]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.11.11 www.benet.com
192.168.11.12 www.kgc.com

2 去192.168.11.14添加

复制代码
[root@ha02 opt]# cd html/
[root@ha02 html]# ls 
[root@ha02 html]# cat /apps/nginx/conf/nginx.conf

root@ha02 conf.d# vim /etc/hosts

复制代码
[root@ha02 opt]# cd html/
[root@ha02 html]# ls
index.html
[root@ha02 html]# cat index.html 
ABC

给真机添加该访问的域名

3 去浏览器检测:

需要有个缓存时间

相关推荐
用户2986985301441 分钟前
Python 数据处理:XML 与 Excel 互转的实用指南
后端·python·excel
xiaopai94517 小时前
采购系统和Excel表格区别:钢结构项目物资管理的真实较量
excel·建米软件·采购系统
协享科技18 小时前
2026 年 AI 表格工具怎么选:ChatGPT、原生 Copilot/Gemini 与公式助手
人工智能·chatgpt·excel·copilot
用户298698530141 天前
前端实战:在 React 中使用 JavaScript 一键导出 Excel 图表与形状为图片
javascript·react.js·excel
Q一件事1 天前
arcpy实现分区统计到一张excel中
excel
AI刀刀1 天前
deepseek 内容粘贴后符号丢失怎么办?AI 导出鸭实测解决排版乱码问题
android·人工智能·excel·ai导出鸭
圣光SG2 天前
Excel 函数大全
算法·excel
小小的木头人3 天前
Python 批量解析 Excel 经纬度,调用高德地图 API 获取中文地址
开发语言·python·excel
观远数据3 天前
从离线开发到实时同步:DataFlow如何支撑企业级数据治理闭环
java·windows·microsoft·excel
tianyatest3 天前
表格分类统计及排序
java·excel·暖通