Linux系统管理
SSH服务概念SSHSecure Shell安全外壳协议替代不安全的 Telnet、rlogin基于加密传输用于远程登录服务器、远程文件传输。默认端口22采用非对称加密账号密码、传输数据全程加密防抓包窃听。两大核心组件服务端 sshd安装在被连接的服务器监听 22 端口接收客户端连接客户端 ssh本地电脑工具主动发起远程连接SSH连接远程终端systemctl status shhd.service #检测SSH服务状态 systemctl start shhd.servicenetstat -antlp|grep :22 #确认22端口状态开启vim /etc/hosts #在双方电脑端编写入对方的IP以及主机名称以便可以连接此时用ping命令测试此时SSH登录需要输入密码。免密访问ssh-keygen #生成秘钥对 ssh-copy-id 主机名 #拷贝公钥到远程主机 ssh 登陆用户远程主机名 #此时登录不需要密码SSH常用参数-p指定 SSH 端口默认 22修改端口后必须加ssh -p 2222 root192.168.1.10-l指定登录用户等价于useripssh -l root 192.168.1.10-i指定私钥文件多密钥场景手动指定私钥ssh -i ~/.ssh/id_rsa_bak root192.168.1.10-o 指定连接参数# 跳过主机密钥确认测试临时用 ssh -o StrictHostKeyCheckingno root192.168.1.10 # 不保存主机信息到known_hosts ssh -o UserKnownHostsFile/dev/null root192.168.1.10 # 关闭密码提示只走密钥失败直接退出 ssh -o PasswordAuthenticationno root192.168.1.10 # 超时时间5秒连不上断开 ssh -o ConnectTimeout5 root192.168.1.10SSH配置文件/etc/sysconfig/sshd.config配置参数Port 2222 #设定端口2222 PermitRootLogin yes|no 是否禁止超级用户登陆 PasswordAuthentication yes|no 是否开启原始密码认证方式 AllowUsers lee 用户白名单 DenyUsers lee 用户黑名单远程文件同步scp概念scp secure copy安全复制命令。底层基于 SSH 协议复用 SSH 的加密通道完成文件传输数据全程加密解决传统 rcp 明文传输、容易被抓包窃取的安全问题。依赖服务远程主机必须正常运行sshdSSH 服务。作用在本地主机 ↔ 远程 Linux 服务器、两台远程服务器之间安全复制文件 / 文件夹。必须是绝对路径。特点传输加密账号、文件内容加密传输安全性远高于 ftp、rcp复用 SSH 认证支持密码登录、密钥私钥登录端口跟随 SSHSSH 改端口后scp 需用大写-P指定端口支持递归传输目录-r参数不支持断点续传、增量同步大文件同步不如 rsync。参数-p保留原文件的修改时间访问时间和访问权限-r 递归复制整个目录。示例复制本机的file文件以fox用户的身份传送到192.168.234.129的DIR目录中# scp file wxh192.168.234.129:DIR注此处DIR必须为绝对路径以fox身份复制远程主机192.168.234.129的PATH到本机的DIR目录中# scp fox192.168.234.129:PATH DIR注PATH必须是绝对路径rsync概念rsync remote sync远程同步工具底层同样基于 SSH 传输是 scp 的升级版。核心特点增量同步—— 只传输文件发生变化的部分相同内容不重复传输支持断点、保留权限、删除多余文件、限速、压缩。适用大量文件、大文件、定时备份、服务器同步。依赖两端无需同时装 rsync 服务默认走 ssh 通道。和 scp 核心区别scp全量覆盖每次完整传文件无增量不支持断点rsync对比文件校验值只传差异块速度更快。参数rsync -r #同步目录 -p #同步权限 -o #同步文件所有人 -g #同步文件所有组 -l #同步链接 -D #同步设备文件 -t #同步文件时间戳系统日志systemd-journald服务systemd-journald是systemd 配套的日志管理服务CentOS7、Ubuntu16.04 及以上系统默认启用。作用统一收集内核、系统服务、用户程序输出的日志以二进制格式存储配套查询工具journalctl。默认存放路径/run/logjournalctl命令journalctl //日志分析命令 journalctl -n 5 //查看最近生成的5条日志 journalctl -p err //查看系统报错 journalctl --since --until //查看某个时间段生成的日志 journalctl -o verbose //查看日志能够使用的条件参数日志持久化systemd日志保存在/run/log/journal中,这意味着系统重启时会被清除,那如果将日志保存在/var/log/journal目录启动后就可以利用历史数据,形成永久日志mkdir /var/log/journal chown root.systemd-journal /var/log/journal/ chmod 2755 /var/log/journal/ systemctl restart systemd-journaldrsyslog服务定义rsyslog是 Linux 系统中增强版 syslog 日志服务程序全称 rocket-fast system for log processing是标准 syslog 的高性能实现。作用统一接收系统、内核、各类应用产生的日志做格式化处理落地保存为文本日志同时支持日志转发、过滤、存储、数据库写入是传统/var/log目录日志的生成来源。和 systemd-journald 的关系systemd-journaldsystemd 自带日志收集器第一手接收内核、服务、程序所有日志二进制缓存rsyslog日志处理转发服务默认监听 journald 输出把二进制日志转成可读文本存入/var/log/westos.lo二者共存分工不同journald 负责采集rsyslog 负责持久化、分发、归档。核心功能本地日志存储将日志分类写入 /var/log/westos.log 下文本文件messages、secure、cron、maillog 等可直接 cat/tail 查看。日志过滤与分类根据设施facility 级别severity 匹配规则区分系统日志、登录安全日志、定时任务日志分开存放。远程日志转发支持将本机日志发送到远端日志服务器内网统一日志平台支持 TCP/UDP 传输。多输出目标日志可存文件、输出到数据库MySQL/PostgreSQL、管道程序、远程主机。高性能高并发相比老旧 syslog支持多线程、队列缓存大量日志不丢失日志类型与级别日志类型 Facility来源分类用来区分这条日志是哪个模块 / 程序产生rsyslog 配置依靠它分流日志。类型含义典型产生日志kern内核日志硬件报错、驱动、内核崩溃、dmesg 内容user用户层普通程序普通用户执行程序输出mail邮件服务sendmail、postfix 收发邮件日志daemon系统后台守护进程各类服务通用nginx、vsftpd 等无专属分类时用auth / authpriv认证安全日志ssh 登录、sudo、密码验证、登录失败authpriv 更私密存/var/log/securesyslogsyslog 服务自身rsyslog、journald 自身报错lpr打印服务日志打印机相关news新闻组服务极少使用uucp老式 UNIX 通信服务基本淘汰cron定时任务crontab 任务执行、报错存/var/log/cronlocal0local7自定义本地日志业务程序自定义使用例nginxlocal7、tomcatlocal0日志级别 Severity严重程度数字越小越严重共 8 级0 最严重7 仅调试信息。级别数字名称说明使用场景0emerg系统崩溃紧急主机宕机、内核 panic所有人需要立刻处理1alert必须马上修复磁盘满、数据库挂掉、关键服务异常2crit严重错误硬件故障、程序核心功能崩溃3err普通错误程序运行报错、连接失败、文件找不到4warn警告不影响运行但存在隐患内存不足、连接超时5notice正常重要事件服务启停、用户登录、定时任务执行6info普通运行信息正常访问、服务启动成功、日常流程记录7debug调试详细日志开发排错生产环境一般关闭日志量极大远程日志同步日志发送方vim /etc/rsyslog.conf #修改文件内容如下 *.* 日志接收方ip日志接收端vim /etc/rsyslog.conf #修改文件内容如下 $ModLoad imudp //加载日志接收功能模块 $UDPServerRun 514 //加载日志接收接口修改后重启日志接收端并查看端口。systemctl restart rsyslog.service netstat -antulp|grep :514测试发送端发送日志接收端动态接收tail -f /var/log/messages问题无法接受对方日志解决检查了防火墙的开关后重启服务发现可以接收系统延时任务at命令概念at用于设置一次性延时任务任务只会执行一次区别于 cron 循环定时。原理atd 服务后台运行扫描任务队列到达指定时间自动执行。依赖服务服务名atd# 查看状态 systemctl status atd # 开机自启、启动 systemctl start atd systemctl enable atd服务没启动at 任务不会运行。时间格式绝对时间# 今天14:30执行 at 14:30 # 2026-07-25 10:00 at 10:00 2026-07-25 # 下午4点 at 16pm相对延时最常用# 5分钟后执行 at now 5 minutes # 2小时后 at now 2 hours # 3天后 at now 3 days # 半小时后 at now 30 min管理定期任务crontab基础概念服务crond后台守护进程每分钟扫描定时任务表到达时间自动执行脚本 / 命令作用循环重复执行任务分钟 / 小时 / 日 / 周 / 月和at一次性任务区分任务文件分类用户级crontab -e编辑存在/var/spool/cron/用户名系统级/etc/crontab、/etc/cron.d/、cron.hourly/daily/weekly/monthly服务管理5systemctl status crond systemctl start crond systemctl enable crond systemctl restart crond定时语法格式* * * * * command #分 时 日 月 周 执行命令字段取值范围分 minute0–59时 hour0–23日 day1–31月 month1–12周 week0–70 和 7 都代表周日特殊符号*所有取值,多个不连续时间1,3,5-连续区间8-12/间隔*/10每 10 单位执行一次。cron权限设定在系统中默认所有用户可以设定 cron#用户黑名单 /etc/cron.deny #用户白名单 /etc/cron.allowNFS服务概念NFSNetwork File System网络文件系统实现 Linux 服务器之间目录共享客户端可像访问本地磁盘一样读写远端共享目录。底层依赖 RPC 远程过程调用协议CentOS7 使用nfs-utils服务套件。核心角色NFS 服务端存放共享目录对外发布共享NFS 客户端挂载服务端共享目录到本地使用服务部署服务端客户端都安装NFS并启动服务关闭防火墙yum install -y nfs-utils systemctl start nfs systemctl stop firewalld服务端配置# vim /etc/exports /nfs *(sync,ro) #对所有人以只读的方式共享目录 # exportfs -rv #重载nfs服务配置 客户端配置查看NFS服务器的共享资源showmount -e 192.168.234.129挂载目录#将server0中路径为/mnt/nfsdata的目录挂载到server2的/nfs目录 mount server0:/mnt/nfsdata /nfs/发现server2无法进行写入文件,检查exports文件并修改只读权限后发现仍无法写入此时发现server0中该目录权限存在问题在server0中给予权限server2中发现可以写入问题server2中无法查询到server0的共享目录解决关闭防火墙后重新加载autofs服务概念作用按需自动挂载 NFS、本地光盘、samba 等共享闲置超时自动卸载。本质监控指定挂载父目录触发 IO 访问时执行挂载操作。依赖搭配 NFS、rpcbind 使用常用于 NFS 自动挂载。配置客户端配置# yum install autofs -y #安装autofs软件包 # systemctl start autofs #启动autofs服务 # vim /etc/auto.master /autofs /etc/auto.nfs #指定自动挂载点的父目录/autofs # vim /etc/auto.nfs demo -ro 192.168.234.129:/nfs 最终挂载点 只读挂载 需要挂载的共享目录 \# systemctl restart autofs #重启autofs服务 iscsi服务基础概念iSCSIInternet Small Computer System Interface基于 TCP/IP 网络传输 SCSI 指令把远端服务器磁盘 / 分区映射成本地块设备。简单理解通过网线共享硬盘客户端识别为/dev/sdb这种裸磁盘可分区、格式化、挂载。角色区分服务端target提供磁盘存储共享块设备软件包targetcli客户端initiator连接远端磁盘本地识别硬盘软件包iscsi-initiator-utils端口默认 3260和 NFS 核心区别NFS文件共享传输文件层级只能直接挂载使用iSCSI块设备共享共享整块硬盘客户端需要分区格式化性能更适合数据库、存储集群。服务配置安装服务端软件# yum install -y targetcli启动服务# systemctl start target # systemctl enable target•配置数据输出# targetcli / ls / /backstores/block create demo /dev/vdb1 / /iscsi create iqn.2019-10.com.example:storage1 / /iscsi/iqn.2019-10.com.example:storage1/tpg1/luns create /backstores/block/demo / /iscsi/iqn.2019-10.com.example:storage1/tpg1/acls create iqn.2019-10.com.example:demokey / /iscsi/iqn.2019-10.com.example:storage1/tpg1/portals create 172.25.0.1 / exit安装客户端软件#yum install -y iscsi-initiator-utils.x86_64修改名称与服务端相同# vim /etc/iscsi/initiatorname.iscsi InitiatorNameiqn.2019-10.com.example:demokey启动服务#systemctl start iscsid发现设备并登录#iscsiadm -m discovery -t st -p 192.168.234.129 #iscsiadm -m node -l配置开机自动挂载时需要添加网络设备参数# vim /etc/fstab UUID设备uuid /demo xfs _netdev 0 0删除iscsi设备#umount /demo #删除 /etc/fstab文件中的自动挂载 iscsiadm -m node -u iscsiadm -m node -o delete系统引导系统引导流程•开机•UEFI/BIOS 唤醒机器•选择第一启动设备•GRUB2 执行•内核加载初始ramdisk加载•内核运行•/usr/lib/systemd/systemd 启动▫/sbin/init - /lib/systemd/systemd - /usr/lib/systemd/systemsystemd 管理所有进程在/boot/grub2/grub.cfg中可以看到使用的系统引导文件grub.cfg被破坏后补救当开启虚拟机时出现以下界面表示虚拟机引导文件被破坏此时可以手动引导进行补救通过引导破坏前的完好的克隆机可知其引导文件所在分区为 /dev/sda1查看破坏前的完整grub.cfg文件进行手动引导输入set roothd0,msdos1 linux16 /vmlinuz-3.10.0-1160.el7.x86_64 root/dev/mapper/centos-root initrd16 /initramfs-3.10.0-1160.el7.x86_64.img #完成后重启 boot重启后恢复正常此时文件在/mnt/目录里手动将其恢复到/boot/grub2/目录中引导文件所在根目录被破坏补救在虚拟机开机页面点击以下按钮在加载页面快速按下FnF2按键进入调整/boot/下的优先级将CD-ROM Drive调整至最优先保存退出出现以下界面选择Troubleshooting选择Rescue a CentOS system继续“countine”输入chroot /mnt/sysimage yum repolist此时查看网卡发现网卡关闭输入nmcli c reload nmcli c up ens33#启用网卡此时发现无法ping通外网vim /etc/sysconfig/network-scripts/ifcfg-ens33vim /etc/resolv.conf此时发现联通yum makecache #重建缓存 yum install -y kernel#重装kernel yum install -y grub2-pc#重装grub2此时grub2是空的需要重新引导grub2 install /dev/sda #修复grub2引导扇区的代码以及/boot/下的一些引导文件此时缺少grub.cfg文件,输入grub2-mkconfig -o /boot/grub2/grub.cfg此时回到以下界面并将Hard Drive调整至优先系统正常引导问题此时登陆系统发现ens33网卡无法正常启动vim /etc/sysconfig/network-scripts/ifcfg-ens33将刚才的修改设置为初始输入systemctl restart NetworkManager#彻底重启网络管理服务 nmcli c up ens33 #启动网卡systemd - System Manager基础定位systemd 是 Linux 现代系统的 PID1 一号进程取代传统/sbin/init(SysVinit)。内核挂载真实根文件系统后执行的第一个用户态程序/usr/lib/systemd/systemd核心目标并行启动服务、统一管理服务 / 挂载 / 网络 / 日志 / 挂载点、实现依赖管理、自动重启守护进程。发行版CentOS7、RHEL7、Ubuntu16.04、Debian9、OpenSUSE 主流全部使用 systemd核心概念Unit单元systemd 所有资源抽象为Unit后缀区分类型文件一般存放路径系统单元/usr/lib/systemd/system/管理员自定义单元/etc/systemd/system/常用 Unit 类型后缀类型作用.service服务单元管理后台程序nginx、sshd.target目标单元启动组相当于运行级别.mount挂载单元文件系统挂载替代 fstab 一部分.socketSocket 单元套接字激活按需启动服务.timer定时器单元替代 cron 定时任务.path路径监控文件变化触发程序.device设备单元内核识别硬件设备.swap交换分区单元管理 swap管理system单元systemctl [--all] 查询所有单元的状态以验证系统启动情况 systemctl --typeservice 仅查询服务单元的状态 systemctl is-active sshd; systemctl is-enabled sshd systemctl list-unit-files [--typeservice] 查看所有单元的启用和禁用设置服务状态systemctl status sshd[.service] loaded: 单元配置文件已处理 active (running): 运行一个或多个持续进程 active (exited): 成功完成一次性配置 active (waiting): 正在运行但等待某个事件 inactive: 未运行 enabled: 将在开机时启动 disabled: 不会在开机时启动启动和停止服务systemctl status sshd.service [check out PID] systemctl stop sshd.service systemctl start sshd.service [check out PID] systemctl restart sshd.service [check out PID] systemctl reload sshd.service [now, check out PID]管理开机自启服务systemctl enable sshd.service systemctl disable sshd.service屏蔽服务有时系统服务会冲突network and NetworkManager iptables and firewalld此时可以屏蔽某项服务systemctl mask firewalld注意禁用的服务不会在启动时或由其他单元文件自动启动但可以手动启动。被屏蔽的服务既不能手动启动也不能自动启动。防火墙firewalld用户空间防火墙服务概念Zone区域把网卡 / 网络划分不同信任等级trusted(全部允许) → home → internal → public(默认) → drop → block一张网卡绑定一个 zone不同 zone 使用不同防火墙策略。特性Service预定义服务http、ssh对应端口临时规则runtime立即生效重启 / 重载丢失永久规则permanent写入配置文件必须--reload加载动态规则更新reload 时不切断已经建立的连接最大优势3.参数区域默认策略使用场景trusted全部允许内网信任网络home/internal允许常用服务家庭 / 内部局域网public默认仅允许少量服务外网、公网网卡默认 zoneblock所有入站拒绝返回拒绝信息不信任网络drop所有入站丢弃不回应最严格直接丢包iptables定义iptables运行在用户空间的命令工具用来向 Linux 内核Netfilter框架下发数据包过滤规则实现防火墙、地址转换功能。Netfilter内核层面的防火墙框架提供 5 个钩子点位真正处理数据包。Iptables 工作原理分类Iptables 工作流程规则自上而下依次匹配匹配成功后执行对应动作不再向下继续匹配数据包遍历所有规则仍未匹配则执行链默认策略。分类主机防火墙防护本机收发报文依托 filter 表 INPUT 链网络防火墙管控内网转发报文依托 nat 表。四张表功能raw 表数据包连接跟踪前预处理mangle 表修改数据包 IP 头部信息nat 表实现源 / 目标网络地址转换filter 表数据包过滤决定放行或丢弃使用最广泛。iptables 概念楼房类比释义表tables一栋楼房根据功能划分不同大楼每栋楼只做一类工作filter、nat、mangle、raw链chains楼房里的房间数据包流转的不同阶段每个房间对应一个数据包必经点位INPUT、OUTPUT、PREROUTING 等规则rule房间内的柜子一条一条匹配条件源 IP、端口、协议等动作 / 策略target/policy柜子上摆放 / 收纳规则匹配成功后执行操作ACCEPT、DROP、REJECT、SNAT 等全部柜子不匹配就执行房间默认收纳规则####五条链链名称核心作用流量场景典型用途INPUT处理、管控进入本机的数据包目标地址为本机的流量主机防火墙核心链过滤外部访问本机的流量禁止未授权访问本机服务filter 表主打OUTPUT处理、管控本机向外发出的数据包本机主动对外发送的流量限制本机出站流量拦截恶意程序、异常配置向外发送不安全报文FORWARD处理经过本机转发的数据包流量不经过本机应用仅通过本机跨网络转发用于路由器、网关设备控制不同网络之间的转发流量实现内网流量管控PREROUTING路由决策之前处理入站数据包所有刚进入网卡的外网流量主要用于DNAT 目标地址转换将外网请求转发至内网指定设备/服务POSTROUTING路由决策之后处理出站数据包所有即将离开网卡的转发、出站流量主要用于SNAT 源地址转换内网主机共享公网IP上网统一修改流量源地址工作顺序PREROUTING 首先处理进入本机的数据包用于目标地址转换 DNAT 。INPUT 如果数据包的目标是本机数据包会进入 INPUT 链决定是否允许本机接受该数据包。 FORWARD 如果数据包不属于本机即目标是其他网络数据包会进入 FORWARD 链决定是否 允许转发。POSTROUTING 在数据包离开本机之前源地址转换 SNAT 会在此链中进行。OUTPUT 如果数据包是从本机发出的数据包会经过 OUTPUT 链决定是否允许本机向外发送该 数据包表名称核心作用典型应用场景内置常用链raw 表在连接跟踪生效前处理数据包设置连接跟踪标记支持跳过连接跟踪流量优化特定流量关闭连接跟踪降低系统开销PREROUTING、OUTPUTmangle 表修改数据包 IP 头部字段为数据包打标记修改 TTL、TOS流量标记、QoS、负载均衡等高级网络管控PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTINGnat 表修改数据包源地址、目标地址实现地址转换SNAT、DNAT、端口转发内网主机共享公网 IP 访问外网PREROUTING、POSTROUTING、OUTPUTfilter 表数据包过滤判定报文是否允许通行防火墙访问控制放行、拒绝、丢弃数据包日常最常用INPUT、FORWARD、OUTPUTiptables 缺点无法防御内网发起的攻击系统漏洞可能被攻击者利用绕过防火墙策略难以识别、拦截内嵌在数据中的病毒。格式iptables -t 表名 动作 [链名] [-p 匹配条件] [-j 控制类型] -j控制类型 通过前面匹配到之后是丢弃还是保留数据包的处理方式: ACCEPT允许 REJECT拒绝 DROP丢弃。 不会给用户返回任何的拒绝消息不推荐使用。参数-L: 列出一个链或所有链中的规则信息 -n 以数字形式显示地址、端口等信息 # 端口 --sport --源端口 --dport --目标端口 -v 以更详细的方式显示规则信息 --line-numbers 查看规则时显示规则的序号方便之处通过需要删除规则-D INPUT 1 -F 清空所有的规则-X是清理自定义的链用的少-Z清零规则序号 -D 删除链内指定序号或内容的一条规则 -P 为指定的链设置默认规则 -A 在链的末尾追加一条规则 -I 在链的开头或指定序号插入一条规则 -t: 指定表名Apache服务概念1. 基本定义Apache全称Apache HTTP Server一款开源、跨平台的Web 网页服务器软件由 Apache 软件基金会维护。作用接收客户端浏览器发起的 HTTP/HTTPS 请求向客户端返回网页、图片、文档等资源实现网站访问。2. 核心功能处理HTTP / HTTPS请求提供静态网页访问支持虚拟主机一台服务器搭建多个独立网站支持模块扩展模块化架构可加载模块实现 PHP、重定向、访问控制、加密等功能具备访问权限控制、日志记录、防盗链、URL 重写等能力。3. 关键特点模块化设计核心程序简洁按需加载模块功能灵活扩展跨平台支持 Linux、Windows 等操作系统开源免费、稳定可靠兼容性强采用多进程 / 多线程模型处理客户端请求。4. 作用监听端口默认 HTTP 80 端口HTTPS 443 端口网站根目录存放网页程序的目录Linux 默认常见/var/www/html主配置文件httpd.confRHEL/CentOS、apache2.confDebian/Ubuntu虚拟主机基于域名 / IP 区分多个站点访问日志 错误日志记录用户访问行为、程序报错方便运维排查。5. 工作流程客户端浏览器 → TCP 连接80 端口 → Apache 服务接收 HTTP 请求→ 查找对应网页资源 → 返回资源给浏览器 → 断开连接Apache服务配置安装httpd # yum install httpd httpd-manual -y 开启服务 # systemctl start httpd # systemctl enable httpd # firewall-cmd --permanent --add-servicehttp # firewall-cmd --reload 默认发布目录 # cd /var/www/html # vim index.html #新建默认发布页面Apache参数参数作用说明ServerRoot /etc/httpdApache 程序根目录存放配置、模块Listen 80监听端口默认 80可写Listen 192.168.1.100:80绑定指定网卡ServerAdmin rootlocalhost网站管理员邮箱出错页面展示ServerName www.test.com:80服务器主机名虚拟主机必备DocumentRoot /var/www/html网站根目录网页文件存放位置DirectoryIndex index.html index.php默认首页文件按顺序查找Timeout 60请求超时时间单位秒KeepAlive On/Off是否开启长连接On 支持一次 TCP 连接多次请求MaxKeepAliveRequests 100单条长连接最大请求数量KeepAliveTimeout 5长连接空闲超时目录权限段 DirectoryDirectory /var/www/html Options Indexes FollowSymLinks AllowOverride None Require all granted /Directory日志参数ErrorLog logs/error_log LogLevel warn CustomLog logs/access_log combinedErrorLog错误日志CustomLog访问日志combined标准日志格式含来源 IP、浏览器、状态码