日志服务和网络共享服务

总结日志分类, 优先级别。图文并茂解释应用如何将日志发到rsyslog,并写到目标。

常见的分类包括:

内置分类:如auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, security(auth), user(default), uucp, syslog等。

自定义分类:local0-local7,可以根据具体需求进行自定义设置。

优先级别从低到高排序为:debug, info, notice, warn(warning), err(error), crit(critical), alert, emerg(panic)。这些级别帮助管理员快速识别日志的重要性。

将日志发到rsyslog并写到目标

  1. 启用网络日志服务:
    • 确保rsyslog服务已安装并运行。
    • 打开对外接收日志的端口,通常为UDP监听端口514。
  2. 配置应用以发送日志:
    • 修改应用(如sshd)的配置文件(如/etc/ssh/sshd_config),设置SyslogFacility为所需的分类(如LOCAL6)。
    • 重启应用服务以应用配置更改。
  3. 配置rsyslog以接收并处理日志:
    • 编辑rsyslog的配置文件(如/etc/rsyslog.conf)。
    • 添加规则以指定特定分类(如local6)的日志应写入的目标文件(如/var/log/ssh.log)。
      • 示例配置行:local6.* /var/log/ssh.log
    • 重启rsyslog服务以使配置生效。
  4. 测试配置:
    • 使用logger工具发送一个测试日志条目,如logger -p local6.info "hello sshd"
    • 检查目标文件(如/var/log/ssh.log)以确认日志条目已正确写入。

完成功能,sshd应用将日志写到rsyslog的local6分类,过滤所有级别,写入到/var/log/ssh.log。

#修改sshd服务的配置
vim /etc/ssh/sshd_config
syslogFacility local6
#重启sshd服务
systemctl reload sshd.service 
#修改rsyslog的配置
vim /etc/rsyslog.conf
local6.* /var/log/sshd.log
#创建 sshd.log文件
touch /var/log/sshd.log
#重启rsyslog服务
systemctl restart rsyslog
#测试
ssh登录后,查看/var/log/sshd.log
#logger测试
logger -p local6.info "hello sshd"
tail /var/log/sshd.log

完成功能,将3个主机(要求主机名为ip)的ssh日志,通过rsyslog服务将ssh日志写入到集中的主机上的rsyslog服务,写入到/var/log/all-ssh.log文件

要实现这个功能,需要配置三个客户端主机将SSH日志发送到一台集中主机上。以下是详细的步骤:

1. 配置客户端主机

在客户端主机上,需要修改SSH服务的配置,使其使用rsyslog记录日志。编辑SSH的配置文件/etc/ssh/sshd_config,找到#SyslogFacility AUTH这一行,去掉注释并修改为:

SyslogFacility AUTHPRIV

重启SSH服务以应用更改:

sudo systemctl restart sshd

接下来,配置rsyslog将日志发送到集中主机。编辑客户端的rsyslog配置文件/etc/rsyslog.conf,添加以下内容:

# 指定集中主机的IP地址和端口号
*.* @10.0.0.152:514

重启rsyslog服务:

sudo systemctl restart rsyslog
2. 配置集中主机

在集中主机上,配置rsyslog接收来自客户端的日志消息,将其写入到/var/log/all-ssh.log文件中。
然后,编辑集中主机的rsyslog配置文件/etc/rsyslog.conf,添加以下内容:

# 创建一个模板,用于格式化日志
$template SSHFormat,"%TIMESTAMP% %FROMHOST-IP% %syslogtag% %msg%\n"
# 指定使用上述模板的规则
:syslogtag, startswith, "sshd[" -?* |/var/log/all-ssh.log;SSHFormat

重启rsyslog服务:

sudo systemctl restart rsyslog
3. 测试配置

在客户端主机上,通过SSH登录或执行SSH操作,生成日志消息。检查集中主机上的/var/log/all-ssh.log文件,查看是否正确记录日志消息。

总结/var/log/目录下常用日志文件作用。

在Linux系统中,/var/log/目录是系统日志的集中存放地,包含了系统运行期间产生的各种日志文件。这些文件可以帮助识别和解决系统问题,监控系统的健康状况,以及审计系统的活动。以下是/var/log/目录下一些常用日志文件及其作用:

  1. /var/log/messages
    • 内容:这个文件包含了系统启动后的各种信息,包括内核消息、系统服务消息、应用程序日志等。
    • 作用:用于监控系统的整体状态,是系统管理员经常查看的一个文件。
  2. /var/log/syslog
    • 内容:在某些Linux发行版中用于记录与/var/log/messages相似的信息,但在其他发行版中可能不存在或具有不同的用途。通常记录系统级别的消息和事件。
    • 作用:与/var/log/messages类似,但可能因发行版而异。
  3. /var/log/auth.log
    • 内容:记录与身份验证和授权相关的信息,如用户登录、注销以及sudo命令的执行等。
    • 作用:对于安全审计和入侵检测来说,这个文件非常重要。
  4. /var/log/kern.log
    • 内容:记录Linux内核的运行信息、错误信息等。
    • 作用:帮助系统管理员了解内核的运行状态和问题。
  5. /var/log/cron.log
    • 内容:记录与系统定时任务相关的日志。
    • 作用:用于监控cron服务的运行情况和错误。
  6. /var/log/lastlog
    • 内容:记录系统中所有用户最后一次的登录时间的日志(二进制文件)。
    • 作用:用于审计和了解用户的登录历史。
  7. /var/log/wtmp
    • 内容:永久记录所有用户的登录、注销信息,同时记录系统的启动、重启、关机事件(二进制文件)。
    • 作用:用于审计和了解用户的登录活动以及系统启动和关闭事件。
  8. /var/log/btmp
    • 内容:记录错误的登录尝试(二进制文件)。
    • 作用:用于安全审计和入侵检测,识别潜在的恶意登录尝试。
  9. /var/log/secure
    • 内容:记录验证和授权方面的信息,如SSH登录、su切换用户等。
    • 作用:与安全审计和入侵检测相关,确保系统安全性。
  10. /var/log/dmesg
    • 内容:记录了系统在开机时内核自检的信息。
    • 作用:帮助了解系统在启动过程中内核的状态和任何潜在问题。

总结journalctl命令的选项及示例

以下是journalctl命令的一些常用选项及其示例:

选项描述示例
-u--unit=UNIT显示指定服务单元的日志journalctl -u sshd
-p--priority=PRIORITY根据日志的优先级来过滤日志journalctl -p err (显示错误级别的日志)
-b--boot=BOOT_ID显示指定启动ID的日志journalctl -b (显示当前启动的日志)
-k--dmesg仅显示内核消息journalctl -k
-f实时跟踪日志输出(类似于tail命令)journalctl -f
--since=DATE--until=DATE显示指定日期范围内的日志journalctl --since "2023-01-01" --until "2023-01-02"
-n NUMBER显示最近的NUMBER条日志journalctl -n 10 (显示最近的10条日志)
-o export以可移植的事件日志格式导出日志journalctl -o export
-r--reverse反向输出日志,最新的日志会显示在最上面journalctl -r
--grep=PATTERN只显示包含特定模式的日志行journalctl --grep "failed to"
--disk-usage显示当前磁盘空间使用量(用于日志)journalctl --disk-usage
--vacuum-size=SIZE删除旧的日志,限制日志使用的磁盘空间journalctl --vacuum-size=1G (限制为1GB)
--vacuum-time=TIME删除早于指定时间的日志journalctl --vacuum-time=2weeks (删除两周前的日志)
--no-pager不使用分页器直接输出日志journalctl --no-pager

尝试使用logrotate服务切割nginx日志,每天切割一次,要求大于不超过3M, 保存90天的日志, 旧日志以时间为后缀,要求压缩。

首先,创建一个新的logrotate配置文件:

sudo nano /etc/logrotate.d/nginx

然后,添加以下内容到该文件中:

/var/log/nginx/nginx.log {
    daily
    size=3M
    rotate 90
    dateext
    compress
    missingok
    notifempty
    create 640 nginx adm
    sharedscripts
    postrotate
        if [ -f /var/run/nginx.pid ]; then
            kill -USR1 `cat /var/run/nginx.pid`
        fi
    endscript
}

测试转储

#手动转储
logrotate /etc/logrotate.d/nginx
#查看结果
ll /var/log/nginx/

总结 LVS的NAT和DR模型工作原理,并完成DR模型实战。

LVS的NAT模型工作原理

  1. 客户端请求:客户端发送请求,目标地址是LVS(Linux Virtual Server)的公共IP地址(VIP)。
  2. LVS接收与转发:LVS监听特定端口,接收客户端请求,并根据预设的负载均衡算法选择一个后端真实服务器(Real Server)来处理该请求。然后,LVS会修改请求报文的源IP地址和端口号为自身的VIP和相应端口号,再将请求转发给选定的真实服务器。
  3. 真实服务器处理:真实服务器接收到请求后进行处理,并将响应发送回LVS。
  4. LVS响应转发:LVS接收到真实服务器的响应后,会修改响应报文的目标IP地址和端口号为客户端的IP地址和端口号,然后将响应转发给客户端。

NAT模式的关键在于LVS作为中间代理,对客户端和真实服务器之间的通信进行了地址转换,使得客户端无需知道真实服务器的具体地址。

LVS的DR模型工作原理

  1. 客户端请求:客户端向LVS发送请求,目标是LVS的VIP。
  2. LVS接收与转发:LVS接收到请求后,根据负载均衡算法选择一个后端真实服务器。然后,LVS仅修改请求数据包的目的MAC地址为选定真实服务器的MAC地址,并将数据包发送到同一子网内。
  3. 真实服务器处理:真实服务器直接接收到请求(因为数据包的目的MAC地址已被修改为真实服务器的MAC地址),进行处理后,直接向客户端发送响应。响应数据包的源IP地址是真实服务器的IP地址。

DR模式的特点在于负载均衡器仅修改数据包的MAC地址,而不进行IP地址的转换,因此效率更高。真实服务器直接响应客户端,减少了网络延迟和处理开销。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值