第八周-云计算运维作业
1. 总结日志分类, 优先级别。图文并茂解释应用如何将日志发到rsyslog,并写到目标。
内置分类
auth, authpriv, cron, daemon,ftp,kern, lpr, mail, news, security(auth),
user(default), uucp, syslog
自定义的分类
local0-local7
| 优先级 | 数值 | 描述 |
|---|---|---|
| emerg | 0 | 系统不可用或紧急情况,需要立即通知所有用户 |
| alert | 1 | 需要立即采取行动的情况 |
| crit | 2 | 严重情况,如关键组件或服务出现问题 |
| err | 3 | 错误条件,如服务失败 |
| notice | 5 | 普通但重要的条件,值得注意 |
| info | 6 | 信息性消息,表示正常的操作 |
| debug | 7 | 调试级消息,详细的运行时信息 |
日志发送理解:
应用通过配置rsyslog协议将日志发送到rsyslog,而rsyslog通过加载必要模块$ModLoad imudp;$ModLoad imtcp,设置监听端口udp或tcp:514,发送到指定位置,如果需要转发到远程服务器,还是需要514端口的转发
2.完成功能,sshd应用将日志写到rsyslog的local6分类,过滤所有级别,写入到/var/log/ssh.log。
/etc/ssh/sshd_config
SyslogFacility LOCAL6 # 将 sshd 日志设施设置为 local6
/etc/rsyslog.d/sshd.conf
local6.* /var/log/ssh.log # 捕获 local6 设施的所有日志级别,写入到 /var/log/ssh.log
重启
sudo systemctl restart sshd
sudo systemctl restart rsyslog
3. 完成功能,将3个主机(要求主机名为ip)的ssh日志,通过rsyslog服务将ssh日志写入到集中的主机上的rsyslog服务,写入到/var/log/all-ssh.log文件
系统:centos8
3台主机
/etc/ssh/sshd_config
SyslogFacility local6 # 将 sshd 日志设施设置为 local6
/etc/rsyslog.conf
local6.* @192.168.1.130:514 #在内网,使用udp
192.168.1.130 #日志服务器
#开启模块
module(load="imudp") # needs to be done just once
input(type="imudp" port="514")
local6.* /var/log/all-ssh.log
systemctl restart rsyslog.service sshd #重启rsyslog、shhd
4. 总结/var/log/目录下常用日志文件作用。
/var/log/secure,/var/log/auth.log:系统安全日志,文本格式,应周期性分析
/var/log/btmp:当前系统上,用户的失败尝试登录相关的日志信息,二进制格式,lastb命令进行
查看
/var/log/wtmp:当前系统上,用户正常登录系统的相关日志信息,二进制格式,last命令可以查看
/var/log/lastlog:每一个用户最近一次的登录信息,二进制格式,lastlog命令可以查看
/var/log/dmesg:CentOS7 之前版本系统引导过程中的日志信息,文本格式,开机后的硬件变化
将不再记录,也可以通过专用命令
dmesg查看,可持续记录硬件变化的情况
/var/log/boot.log 系统服务启动的相关信息,文本格式,Ubuntu无此文件
/var/log/messages(红帽系统),/var/log/syslog (Ubuntu) :系统中大部分的信息
/var/log/anaconda : anaconda的日志,Ubuntu无此文件
5. 总结journalctl命令的选项及示例
查看所有日志:
journalctl
按时间倒序查看所有日志:
journalctl -r
查看最新的10条日志:
journalctl -n 10
实时查看新添加的日志条目:
journalctl -f
根据服务名称过滤日志:
journalctl -u nginx
根据时间范围过滤日志:
journalctl --since="2021-07-01" --until="2021-07-31 03:00"
查看特定优先级的日志:
journalctl -p err -b
查看内核日志:
journalctl -k
查看上次启动的日志:
journalctl -b -1
查看指定单元的日志:
journalctl -u sshd
6. 完成将多个主机(要求主机名为ip)的nginx日志集中写入到mysql表中
系统:centos8
nginx 主机
/etc/nginx/nginx.conf
access_log syslog:server=192.168.1.130:514,facility=local7,tag=nginx,severity=info combined;
#事务日志 设施 标志 级别
error_log syslog:server=192.168.1.130:514,facility=local7,tag=nginx,severity=info;
mysql服务器主机
yum -y install rsyslog-mysql #安装rsyslog-mysql,
mysql < /usr/share/doc/rsyslog/mysql-createDB.sql #写入表和数据库
# 加载MySQL模块
module(load="ommysql")
local7.* :ommysql:192.168.1.130,Syslog,Syslog,1234
tcpdump -vv -n -X port 415 #测试
7. 尝试使用logrotate服务切割nginx日志,每天切割一次,要求大于不超过3M, 保存90天的日志, 旧日志以时间为后缀,要求压缩。
/var/log/nginx/*.log {
daily
rotate 90
missingok
notifempty
compress
delaycompress
dateext
dateformat -%Y-%m-%d
maxsize 3M
create 0644 nginx nginx
postrotate
systemctl reload nginx
endscript
}
8.总结 LVS的NAT和DR模型工作原理,并完成DR模型实战。
NAT模型
流程

DR模型
流程

模式区别:
NAT 模式
流程:
客户端发送请求到 LVS。
LVS 将请求转发给后端的真实服务器(RS)。
RS 处理请求后,将响应返回给 LVS。
LVS 再将响应返回给客户端。
特点:
LVS 负责所有的请求和响应的流量。
LVS 改变数据包的 IP 地址。
适合小型网络或需要控制所有流量的场景。
DR 模式
工作流程:
客户端发送请求到 LVS。
LVS 选择一个 RS,并将请求直接发给 RS,不改变目标 IP 地址。
RS 处理请求后,直接将响应发送回客户端,不经过 LVS。
特点:
LVS 只处理请求流量,响应流量由 RS 直接发送给客户端。
LVS 通过修改数据包的 MAC 地址转发请求。
RS 和 LVS 必须在同一个局域网中,且 RS 需要隐藏其 VIP(虚拟 IP)。
DR模型实战:
系统:rock8 #都是rock8
虚拟机模式:NAT(CIP)、主机(RS、LVS)
CIP(模拟用户):
IP:192.168.1.130
GW:192.168.1.132
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.130
PREFIX=24
GATEWAY=192.168.1.132 #有时需要使用命令:ip route add 0.0.0.0/24 via 192.168.1.140 dev eth0 或者重启网卡
ONBOOT=yes
#/etc/sysconfig/network-scripts/ifcfg-eth0
nmcli connection reload #重载网卡
Router(转发路由):
IP:
eth0:10.1.1.44 #主机模式
eth1:192.168.1.132 #NAT
vim /etc/sysctl.conf #将网络设置为可转发
sysctl net.ipv4.ip_forward
sysctl -p
#tcpdump -i eth1 icmp #如果出现问题尝试查看ping的网络如何
#即使RS不可见ip被隐藏,依然可以通过roter去测试用户能否连接RS
RS:
IP:
eth0:10.1.1.55 |eth0:10.1.1.56 #两台
GW:10.1.1.44
lo:10.1.1.100
yum install httpd
hostname -I > /var/www/html/index.html #使用httpd为例子
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce #开启lo不可查,不造成ip冲突
ip addr del 127.0.0.1/8 dev lo label lo
ip addr add 10.1.1.100 dev lo label lo 或者 ip addr add 10.1.1.100 dev lo label lo:1
#修改lo,RS的lo地址需要一致
#arping 10.1.1.100命令,如果需要查看ip是否冲突和lo地址是否隐藏成功
LVS
IP:
eth0:10.1.1.45
GW:10.1.1.44
lo:10.1.1.100
ip addr add 10.1.1.100 dev lo label lo:1 #修改lo,RS的lo地址需要一致
ipvsadm -A -t 10.0.0.100:80 -s rr
ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.55:80 -g
ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.56:80 -g
测试:



浙公网安备 33010602011771号