还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
系统管理培训课件第一章系统管理概述系统管理员的职责与角色定位系统管理的重要性与发展趋势系统管理员作为IT基础设施的守护者,承担着多重角色与职责在数字化时代,系统管理的重要性日益凸显•系统安装与配置负责操作系统及相关软件的安装、配置和优化•业务连续性确保关键业务系统的持续可用,减少故障时间•日常运维与监控确保系统稳定运行,及时发现并解决问题•效率提升优化系统性能,提高资源利用率•安全管理实施安全策略,防范威胁,保护数据安全•风险控制加强安全防护,降低数据泄露和系统入侵风险•用户支持提供技术支持,解决用户问题,确保工作效率发展趋势•资源规划评估需求,合理分配资源,提出升级建议•DevOps整合系统管理与开发流程深度融合•自动化程度提高从手动操作向自动化、智能化转变系统管理的挑战与机遇1复杂多变的IT环境现代系统管理员面临的环境比以往任何时候都更加复杂•异构系统管理同时管理Windows、Linux、Unix等多种操作系统•分布式架构系统组件分散在不同物理位置和虚拟环境•技术快速迭代新技术层出不穷,学习压力大•安全威胁增多网络攻击手段不断升级,防护难度增加•高可用性要求业务系统对零停机的期望越来越高2自动化与智能化管理趋势数字化转型带来新的管理范式•基础设施即代码(IaC)通过代码定义和管理基础设施•AI辅助运维智能分析、预测性维护、自动修复•容器化与微服务轻量级、高度自动化的部署方式•GitOps工作流基于Git的操作和配置管理•SRE实践将软件工程方法应用于系统管理第二章操作系统基础操作系统的组成与功能进程与线程基础概念操作系统作为硬件和应用程序之间的中间层,由以下核心组件组成进程(Process)是操作系统中资源分配的基本单位,具有独立的地址空间和系统资源每个进程包括内核(Kernel)操作系统的核心,直接与硬件交互,提供最基本的功能系统调用接口为应用程序提供访问内核功能的统一接口•程序代码设备驱动程序控制各种硬件设备的软件模块•数据(变量、文件等)文件系统管理和组织数据的存储和检索•进程控制块(PCB)包含进程ID、状态、优先级等信息用户界面包括命令行界面(CLI)和图形用户界面(GUI)线程(Thread)是进程中的执行单元,共享进程的资源特点包括操作系统的主要功能包括资源管理、进程管理、内存管理、文件管理、设备管理、用•轻量级创建和切换开销小户接口和安全管理等•共享性同一进程的线程共享地址空间和资源•并发性多线程可以并发执行,提高效率进程管理详解进程状态与生命周期进程在其生命周期中会经历多种状态转换创建状态(New)进程正在被创建,尚未完成资源分配就绪状态(Ready)进程已获得除处理器外的所有必要资源,等待分配处理器运行状态(Running)进程正在处理器上执行阻塞状态(Blocked/Waiting)进程等待某一事件发生,如I/O操作完成终止状态(Terminated)进程执行完毕或被终止,释放资源进程状态转换由操作系统的调度器控制,基于优先级、时间片和资源可用性等因素Linux中ps命令实战演示ps命令是Linux系统中最常用的进程查看工具,提供丰富的选项#查看所有进程ps-ef#查看特定用户的进程ps-u username#以树形结构显示进程关系ps-ejH#实时监控进程状态top#按CPU使用率排序ps aux--sort=-%cpu#按内存使用率排序ps aux--sort=-%mem内存管理基础虚拟内存与物理内存区别内存分页与交换机制现代操作系统采用虚拟内存技术,建立虚拟地址内存分页(Paging)是虚拟内存实现的核心机到物理地址的映射机制制物理内存(Physical Memory)实际存在的•将虚拟地址空间和物理内存空间划分为固定硬件内存资源,容量有限大小的页(通常为4KB)虚拟内存(Virtual Memory)向进程提供的•通过页表(Page Table)维护虚拟页到物抽象内存空间,容量可超过物理内存理页框的映射关系•页表缓存(TLB)加速地址转换过程虚拟内存的优势内存交换(Swapping)在物理内存不足时将部隔离性每个进程拥有独立的地址空间,互不干分页面临时存储到磁盘扰扩展性突破物理内存容量限制,支持更大的内•交换空间(Swap Space)硬盘上专门用存需求于存放换出页面的区域安全性防止进程直接访问物理内存,提高系统•页面置换算法决定换出哪些页面,如LRU安全性(最近最少使用)、FIFO(先进先出)简化程序设计程序员无需关心物理内存分配细•页面调度根据需求从磁盘调入所需页面节内存管理单元(MMU)负责虚拟地址到物理地址的转换过程第三章用户与权限管理用户、组及权限模型Linux/Unix系统采用精细的用户权限管理机制用户(User)系统的使用者,每个用户有唯一的用户ID(UID)组(Group)用户的集合,便于权限管理,每个组有唯一的组ID(GID)特殊用户root(超级用户,UID=0),具有最高权限系统用户为系统服务而创建的用户,通常无法登录Linux权限模型基于三类用户身份和三种权限类型用户身份文件所有者(u)、所属组(g)、其他用户(o)权限类型读取(r)、写入(w)、执行(x)权限以八进制数字表示r=4,w=2,x=1,组合形成权限数值(如755表示rwxr-xr-x)常用用户管理命令用户创建与修改#创建新用户useradd username#设置或修改密码passwd username#修改用户信息usermod-c FullName username#删除用户userdel-r username组管理#创建新组groupadd groupname#将用户添加到组usermod-aG groupnameusername#查看用户所属组groups username#删除组groupdel groupname权限配置实操文件权限与ACL设置sudo权限管理与安全策略基本权限管理使用chmod命令修改文件权限sudo机制允许普通用户以其他用户(通常是root)的身份执行命令,同时提供细粒度的权限控制和审计功能#符号法设置权限chmod u+x,g+r,o-w file.txt#数字法设置sudo配置通过编辑/etc/sudoers文件(使用visudo命令)权限chmod750file.txt#递归设置目录及其内容的权限chmod-R755directory/#修改文件所有者和所属组chown#允许user1执行所有命令,无需密码user1ALL=ALLuser:group file.txtNOPASSWD:ALL#允许admin组成员执行特定命令%adminALL=ALL/usr/bin/apt,/sbin/reboot#限制user2只能重启服务user2ALL=ALL/bin/systemctl restartservice_namesudo安全最佳实践访问控制列表(ACL)提供更精细的权限控制•严格限制sudo权限,遵循最小权限原则#查看文件ACLgetfacl file.txt#为特定用户设置•开启命令日志记录,便于审计ACLsetfacl-m u:username:rwx file.txt#为特定组设置•定期审查sudoers配置,及时清理不需要的权限ACLsetfacl-m g:groupname:rx file.txt#递归设置目录•避免使用NOPASSWD选项,除非有特殊需求ACLsetfacl-R-m u:user:rwx directory/第四章服务与守护进程管理守护进程概念守护进程(Daemon)是在后台运行的特殊进程,不受终端控制,通常以d结尾(如httpd、sshd)特点包括•没有控制终端,不与用户直接交互•通常在系统启动时自动启动•长期运行,提供持续的服务•以特定用户身份(通常是非root)运行•配置文件通常位于/etc目录启动方式守护进程的启动方式有多种自启动脚本位于/etc/init.d/或/etc/rc.d/inetd/xinetd按需启动网络服务cron作业定时启动的守护进程systemd单元现代Linux系统的主要服务管理方式手动启动通过命令行直接启动systemd与传统init对比systemd是现代Linux发行版的初始化系统和服务管理器,相比传统SysV init有显著优势并行启动加快系统启动速度按需启动支持服务的自动激活依赖管理自动处理服务间的依赖关系状态跟踪精确跟踪进程状态,自动重启失败服务日志管理集成的journald日志系统服务管理实战启动、停止、重启服务命令服务自动启动配置systemd命令(现代Linux系统)systemd自启动配置#启动服务systemctl startservice_name#停止服务systemctl stop#启用服务自启动systemctl enableservice_name#禁用服务自启动service_name#重启服务systemctl restartservice_name#平滑重载配systemctl disableservice_name#检查服务是否配置为自启动systemctl置systemctl reloadservice_name#查看服务状态systemctl statusis-enabled service_name#创建自定义服务单元vimservice_name#查看所有服务状态systemctl list-units--type=service/etc/systemd/system/myservice.service#内容示例[Unit]Description=My CustomServiceAfter=network.target[Service]Type=simpleUser=myuserExecStart=/usr/local/bin/myprogramRestart=on-failure[Install]WantedBy=multi-user.targetSysV init命令(传统Linux系统)#启动服务service service_name start#停止服务serviceservice_name stop#查看状态service service_name status#查看所有服务service--status-all第五章计划任务管理cron与at任务调度介绍Linux系统提供多种任务调度机制,适应不同场景的自动化需求cron周期性执行任务的守护进程•通过crontab文件配置,格式为分时日月周命令•支持系统级(/etc/crontab)和用户级计划任务•特殊时间表达式@yearly,@monthly,@daily,@reboot等at一次性任务执行工具•适合执行不需要重复的任务•支持多种时间格式at10:00pm,at now+1hour等•相关命令at(提交任务)、atq(查看队列)、atrm(删除任务)systemd timer现代Linux系统的定时器机制•基于.timer单元文件配置•支持更精确的定时控制和依赖管理•与systemd服务集成,便于管理和监控编写crontab任务示例编辑用户的crontab文件#编辑当前用户的crontabcrontab-e#查看当前用户的crontabcrontab-l#删除当前用户的所有crontab任务crontab-r常见crontab时间表达式示例计划任务案例分析自动备份脚本调度日志清理任务设计数据备份是系统管理的核心任务,通过计划任务可实现自动化备份日志文件管理对系统健康至关重要,防止磁盘空间耗尽数据库备份案例日志轮转与清理脚本#!/bin/bash#MySQL数据库备份脚本#设置变量DATE=$date#!/bin/bash#日志清理脚本#设置变量LOG_DIR=/var/log/appMAX_SIZE_MB=100RETENTION_DAYS=30#压缩大文件find+%Y%m%dBACKUP_DIR=/backup/mysqlMYSQL_USER=backupMYSQL_PASS=secure_passwordRETENTION_DAYS=7#创建$LOG_DIR-type f-name*.log\-size+${MAX_SIZE_MB}M-not-name*.gz\-exec gzip{}\;#删除过备份目录mkdir-p$BACKUP_DIR/$DATE#备份所有数据库mysqldump-u$MYSQL_USER-p$MYSQL_PASS--all-databases|期日志find$LOG_DIR-type f-name*.log.gz\-mtime+$RETENTION_DAYS-delete#检查磁盘空间并报警\gzip$BACKUP_DIR/$DATE/all_db_$DATE.sql.gz#删除超过保留期的备份find$BACKUP_DIR-type d-mtime DISK_USAGE=$df-h$LOG_DIR|awk NR==2{print$5}|sed s/%//if[$DISK_USAGE-gt90];then+$RETENTION_DAYS|\xargs rm-rf echo警告$LOG_DIR所在磁盘使用率超过90%|\mail-s磁盘空间警告admin@example.comfi计划任务设置(每天凌晨2点执行)02***/usr/local/bin/db_backup.sh计划任务设置(每天凌晨4点和下午4点执行)04,16***/usr/local/bin/log_cleanup.sh第六章系统日志管理常见日志文件介绍Linux系统的主要日志文件集中在/var/log目录,包括/var/log/syslog或/var/log/messages记录系统主要事件,是故障排查的第一参考点/var/log/auth.log或/var/log/secure记录身份验证和授权信息,包括登录尝试/var/log/kern.log内核相关消息,对排查硬件和驱动问题有帮助/var/log/dmesg系统启动时的硬件检测和驱动加载信息/var/log/boot.log系统启动过程的详细记录/var/log/cron计划任务执行记录/var/log/faillog用户登录失败记录/var/log/httpd/或/var/log/apache2/Web服务器日志/var/log/mysqld.log MySQL数据库日志日志查看与分析工具有效分析日志需要掌握多种工具基本命令行工具#实时查看日志尾部tail-f/var/log/syslog#查看最近100行tail-n100/var/log/messages#查找包含error的行grep error/var/log/apache2/error.log#组合使用grep和tailtail-f/var/log/syslog|grep--color warningjournalctl(systemd日志查询工具)#查看所有日志journalctl#查看特定服务的日志journalctl-u nginx.service#查看特定时间范围的日志journalctl--since2023-10-01--until2023-10-0203:00#查看特定优先级的日志journalctl-p err日志安全与审计日志轮转机制审计日志配置与合规要求日志轮转(Log Rotation)是防止日志文件无限增长的重要机制,通常由Linux审计系统(auditd)记录系统调用和安全相关事件logrotate工具实现#安装审计系统apt installauditd audispd-plugins#启动服务logrotate配置位于/etc/logrotate.conf和/etc/logrotate.d/目录systemctl enableauditdsystemctl startauditd#配置文件位置#/etc/audit/auditd.conf#主配置文件#/etc/audit/audit.rules#典型的logrotate配置示例/var/log/app/*.log{daily#审计规则#每天轮转missingok#如果日志不存在,不报错rotate14#保留14个轮转后的日志compress#压缩旧日志delaycompress#延迟压缩直到下次轮转notifempty#空文件不轮转create0640app adm#创建新日志,设置权限和所有者sharedscripts#脚本仅执行一次postrotate#轮转后执行的脚本systemctl reloadappendscript}常见审计规则示例#监控文件访问-w/etc/passwd-p wa-k identity-w/etc/shadow-pwa-k identity#监控用户执行sudo命令-w/usr/bin/sudo-p x-ksudo_usage#监控网络配置更改-w/etc/sysconfig/network-p wa-knetwork_changes轮转策略考虑因素•日志增长速度和总量•存储空间限制•法规和合规性要求•数据保留策略•备份和归档需求合规性要求不同行业有特定的日志管理规范PCI DSS要求保留至少1年的审计日志HIPAA医疗行业数据保护要求SOX财务报告相关IT控制GDPR欧盟数据保护法规第七章文件系统管理挂载管理挂载是将存储设备连接到目录树的过程#手动挂载mount/dev/sdb1/mnt/data#查看已挂载的文件系统文件系统类型mountdf-h#卸载文件系统umount/mnt/data#开机自动挂载Linux支持多种文件系统类型,各有特点(/etc/fstab)/dev/sdb1/mnt/data ext4defaults02ext4Linux的默认文件系统,稳定可靠XFS高性能文件系统,适合大文件和大容量存储Btrfs新一代文件系统,支持快照、校验和等高级功能ZFS高级存储平台,提供数据完整性保护NTFS/FAT32Windows兼容性文件系统磁盘分区分区工具和命令#查看磁盘分区fdisk-lparted-l#创建分区fdisk/dev/sdb#或LVM基础parted/dev/sdb#格式化分区mkfs.ext4/dev/sdb1mkfs.xfs/dev/sdb2逻辑卷管理(LVM)提供灵活的存储管理物理卷(PV)物理磁盘或分区卷组(VG)多个物理卷的集合逻辑卷(LV)从卷组分配的虚拟分区文件系统维护实操磁盘使用监控文件系统检查与修复工具监控磁盘使用情况是系统管理的日常工作文件系统检查是维护数据完整性的关键步骤磁盘空间监控命令ext4文件系统检查#查看文件系统使用情况df-h#查看目录占用空间du-sh/path/to/directory#按大小排序显示目录内容du-h--max-depth=1/var|sort-hr##检查文件系统(非挂载状态)fsck.ext4-f/dev/sdb1#自动修复问题fsck.ext4-y/dev/sdb1#在维护模式下检查根文件系统#
1.系统启动时进入查找大文件find/-type f-size+100M-exec ls-lh{}\;#实时监控I/O活动iotopiostat-x1单用户模式#
2.以只读方式重新挂载根分区mount-o remount,ro/#
3.执行检查fsck.ext4-f/dev/sda1XFS文件系统工具#检查XFS文件系统xfs_repair/dev/sdc1#查看XFS文件系统信息xfs_info/dev/sdc1#备份XFS元数据xfs_metadump/dev/sdc1磁盘空间警报设置/root/sdc1_metadata.dump#!/bin/bash#磁盘空间监控脚本THRESHOLD=90EMAIL=admin@example.comfor mountin$df-h|grep-v tmpfs|grep-v Filesystem|awk{print$6}do usage=$df-h$mount|tail-1|awk{print$5}|sed s/%//if[$usage-ge$THRESHOLD];thenecho警告:$mount使用率达到$usage%|\mail-s磁盘空间警告$EMAIL fidoneSMART磁盘健康监控第八章网络管理基础网络接口配置常用网络诊断命令网络配置是系统连接外部世界的基础连通性测试临时配置命令#ICMP测试ping
8.
8.
8.8#跟踪路由traceroute
8.
8.
8.8mtr
8.
8.
8.8#DNS解析测试dig example.comnslookup example.com#查看网络接口ip addrshowifconfig#启用/禁用网络接口ip linkset eth0upip linkset eth0down#配置IP地址ip addradd
192.
168.
1.100/24dev eth0ip addrdel
192.
168.
1.100/24dev eth0#配置默认网关ip routeadd defaultvia
192.
168.
1.1端口和连接状态#查看开放端口netstat-tulnss-tulnlsof-i#查看活动连接netstat-tanss-tan#查看特定端口状态netstat-tuln|grep80lsof-i:80永久配置方法Debian/Ubuntu(/etc/network/interfaces):auto eth0iface eth0inet staticaddress
192.
168.
1.100netmask
255.
255.
255.0gateway
192.
168.
1.1dns-nameservers
8.
8.
8.
88.
8.
4.4网络性能测试RHEL/CentOS(/etc/sysconfig/network-scripts/ifcfg-eth0):TYPE=EthernetBOOTPROTO=staticIPADDR=
192.
168.
1.100NETMASK=
255.
255.
255.0GATEWAY=
192.
168.
1.1DNS1=
8.
8.
8.8DNS2=
8.
8.
4.4ONBOOT=yes网络安全基础防火墙配置SSH安全加固iptables防火墙传统的Linux防火墙工具SSH是系统远程管理的主要工具,需要特别注意安全性配置文件/etc/ssh/sshd_config#查看当前规则iptables-L-n#允许SSH连接iptables-A INPUT-p tcp--dport22-j ACCEPT#允许已建立的连接iptables-A INPUT-m state--state ESTABLISHED,RELATED-j ACCEPT#默认拒绝其他入站流量iptables-A INPUT-j DROP#保存规则iptables-save安全加固措施/etc/iptables/rules.v4#禁用root直接登录PermitRootLogin no#使用密钥认证,禁用密码认证PasswordAuthentication noPubkeyAuthenticationyes#限制允许登录的用户AllowUsers user1user2#更改默认端口Port2222#启用登录失败限制MaxAuthTries3#空闲超时设置ClientAliveInterval300ClientAliveCountMax0#禁用不安全的算法Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.comfirewalld新一代防火墙管理工具#查看状态firewall-cmd--state#查看区域信息firewall-cmd--list-all#开放服务firewall-cmd--permanent--add-service=httpfirewall-cmd--permanent--add-service=https#开放端口firewall-cmd--permanent--add-port=8080/tcp#重新加载firewall-cmd--reloadSSH密钥管理第九章系统安全管理密码策略与账户安全账户安全是系统防护的第一道防线密码策略配置通过PAM模块实现#编辑/etc/pam.d/common-password或/etc/pam.d/system-authpassword requisitepam_pwquality.so retry=3minlen=12\dcredit=1ucredit=1ocredit=1lcredit=1difok=3\reject_username enforce_for_root参数说明minlen=12最小密码长度为12dcredit=1至少包含1个数字ucredit=1至少包含1个大写字母lcredit=1至少包含1个小写字母ocredit=1至少包含1个特殊字符difok=3与上一个密码至少有3个字符不同密码过期设置/etc/login.defsPASS_MAX_DAYS90#密码最长有效期PASS_MIN_DAYS7#两次修改密码的最小间隔PASS_WARN_AGE7#过期前警告天数账户锁定策略防止暴力破解#安装配置fail2banapt installfail2ban#配置文件/etc/fail2ban/jail.local常见安全威胁与防范措施权限提升漏洞•定期更新系统和应用程序•限制SUID/SGID文件权限•实施最小权限原则恶意软件与病毒•安装防病毒软件(如ClamAV)•限制可执行文件的来源安全事件响应流程入侵检测基础恶意软件防护与恢复入侵检测系统(IDS)是主动安全防御的重要组成部分安全事件响应流程常用开源IDS工具准备Snort网络入侵检测系统(NIDS),基于规则匹配建立响应团队、制定计划、配置工具和培训人员Suricata高性能网络IDS,支持多线程OSSEC主机入侵检测系统(HIDS),监控日志和文件变化检测与分析Wazuh OSSEC的增强版,提供更好的可视化和分析能力入侵迹象(IoC)识别事件、确定影响范围和严重程度•异常的登录尝试遏制•意外的网络连接或流量•系统文件修改隔离受影响系统,阻止进一步损害•未授权的用户或进程•日志异常或删除根除•资源使用异常(CPU、内存、硬盘)移除恶意软件,修复漏洞监控实施恢复#检查登录失败记录grep Failedpassword/var/log/auth.log#检查当前活动用户wwho#查找异常进程ps aux|grep-v^$whoami\|^root从备份恢复系统,验证系统功能总结教训记录事件,分析原因,改进流程恶意软件清除工具第十章备份与恢复策略备份类型与工具介绍备份类型完全备份(Full Backup)备份所有数据,恢复简单但占用空间大增量备份(Incremental Backup)只备份上次备份后的变化,节省空间但恢复复杂差异备份(Differential Backup)备份自上次完全备份后的所有变化,平衡了空间和恢复复杂度备份级别文件级备份备份单个文件和目录映像级备份备份整个磁盘或分区的完整映像应用级备份备份特定应用程序的数据(如数据库)常用备份工具rsync高效的文件同步工具,支持增量传输tar打包多个文件为单个归档文件dd低级别的磁盘复制工具Bacula企业级网络备份解决方案Amanda开源备份系统,支持多种备份介质Duplicity加密增量备份工具Borg重复数据删除、压缩和加密备份工具制定合理的备份计划备份策略设计考虑因素RPO(恢复点目标)能够容忍的最大数据丢失量,决定备份频率RTO(恢复时间目标)系统恢复所需的最长时间,影响备份和恢复方法数据重要性不同数据可能需要不同的备份策略数据变化率数据变化快慢影响备份类型和频率存储限制可用备份存储空间的限制带宽限制网络备份时的带宽考量备份计划示例#分层备份策略-关键数据每小时增量,每天完全-重要数据每天增量,每周完全-一般数据每周增量,每月完全#备份轮转-保留最近7天的每日备份-保留最近4周的每周备份-保留最近12个月的每月备份-永久保存每年年底的年度备份恢复演练与案例分享恢复流程实操真实故障案例分析系统级恢复步骤案例一数据库服务器故障准备恢复环境引导至救援模式或使用LiveCD故障描述生产环境MySQL数据库服务器突然无法访问,业务系统报告连接错误评估损坏情况确定故障范围和类型恢复系统文件从备份还原或重新安装故障分析恢复用户数据从备份媒介还原•系统日志显示磁盘I/O错误验证恢复结果检查文件完整性和系统功能•数据目录所在磁盘出现多个坏扇区更新系统应用最新补丁和更新•部分数据文件损坏记录过程详细记录恢复步骤和结果恢复过程文件级恢复示例
1.立即切换到备用服务器#使用tar恢复文件tar-xvf backup.tar-C
2.从前一天的全量备份还原基础数据/restore/path#使用rsync恢复目录rsync-av
3.应用二进制日志恢复最新事务backup_server:/backup/dir/restore/path#从快
4.执行数据一致性检查照恢复LVM卷lvcreate-s-n backup_snap-L5G
5.启动数据库服务并验证功能/dev/vg0/datamount/dev/vg0/backup_snap/mnt/snapcp-a/mnt/snap/important_file经验教训/home/user/umount/mnt/snaplvremove•实施RAID和磁盘监控,提前发现硬件问题/dev/vg0/backup_snap•改进备份策略,增加备份频率•建立完整的高可用方案,减少切换时间•定期执行恢复演练,熟悉恢复流程第十一章自动化运维工具脚本编写基础(Shell)脚本编写基础(Python)配置管理工具简介Shell脚本是系统管理员的基本工具Python提供更强大的功能和更简洁的语法Ansible简单高效的自动化工具•无客户端架构,通过SSH连接#!/bin/bash#基本Shell脚本结构#变量定义SERVER_NAME=web-serverTHRESHOLD=90#条#!/usr/bin/env python3#基本Python脚本示例import osimportsysimport•使用YAML语法的playbook件判断if[$THRESHOLD-gt80];then echo阈值过高fi#循环结构for server in subprocessimportdatetime#变量和函数servers=[server1,server2,•丰富的模块库server1server2server3;do ping-c1$server/dev/null if[$-eq0];server3]log_file=/var/log/server_check.logdef check_serverserver:then echo$server可访问else echo$server不可访问fidone#函数定义检查服务器连通性try:response=•易于学习和使用check_service{systemctl is-active$1/dev/null return$}#函数调用subprocess.run[ping,-c,1,server],check_service nginxif[$-eq0];then echoNginx运行中fi capture_output=True,text=True,timeout=5#Ansible Playbook示例----name:配置Web服务器hosts:webservers become:yesreturn response.returncode==0except Exceptionas e:return False#tasks:-name:安装Nginx apt:name:nginx state:present主逻辑now=datetime.datetime.nowwith openlog_file,a aslog:-name:启动Nginx服务service:name:nginx state:startedlog.writef===检查开始:{now}===\n forserverinservers:enabled:yesstatus=在线if check_serverserver else离线log.writef{server}:{status}\n printf{server}:{status}log.writef===检查结束===\n\n其他配置管理工具Puppet成熟的配置管理平台,使用自己的DSL语言Chef使用Ruby编写的自动化平台,强大但学习曲线较陡SaltStack高速、可扩展的系统管理平台Terraform基础设施即代码(IaC)工具,专注于云资源管理常用Shell脚本应用•系统监控和报警•批量用户和权限管理Python优势•日志分析和处理•丰富的标准库和第三方模块•定期维护任务•更好的错误处理机制自动化实践示例自动化部署流程监控报警自动化配置使用Ansible实现Web应用的自动化部署使用Python脚本配置Prometheus监控和Alertmanager报警#Ansible Playbook:deploy_webapp.yml----name:部署Web应用hosts:web_servers become:yes vars:app_name:myapp#!/usr/bin/env python3#监控配置自动化脚本import yamlimportosimport subprocessimportargparse#命令行参数parser=app_version:
1.
2.3app_port:8080db_host:db.example.com tasks:-name:安装依赖包apt:name:argparse.ArgumentParserdescription=配置监控和报警parser.add_argument--target,required=True,help=监控目标-nginx-nodejs-npm state:present update_cache:yes-name:创建应用目录parser.add_argument--email,required=True,help=报警邮箱args=parser.parse_args#Prometheus监控配置prometheus_configfile:path:/opt/{{app_name}}state:directory owner:www-data group:www-data-={global:{scrape_interval:15s,evaluation_interval:15s,},rule_files:[/etc/prometheus/rules/*.yml,],name:从Git仓库克隆代码git:repo:https://github.com/example/{{app_name}}.git dest:alerting:{alertmanagers:[{static_configs:[{targets:[localhost:9093],}]}]},scrape_configs:/opt/{{app_name}}version:v{{app_version}}-name:安装Node.js依赖npm:path:[{job_name:prometheus,static_configs:[{targets:[localhost:9090],}]},{job_name:node,/opt/{{app_name}}state:present-name:配置应用环境变量template:src:env.j2dest:static_configs:[{targets:[f{args.target}:9100],labels:{instance:args.target}}]}]}#Alertmanager配置/opt/{{app_name}}/.env owner:www-data group:www-data mode:0600-name:配置Nginx虚拟主alertmanager_config={global:{smtp_smarthost:smtp.example.com:587,smtp_from:alertmanager@example.com,机template:src:nginx_vhost.j2dest:/etc/nginx/sites-available/{{app_name}}notify:restart smtp_auth_username:alertmanager,smtp_auth_password:password,},route:{group_by:[alertname,instance],nginx-name:启用Nginx站点file:src:/etc/nginx/sites-available/{{app_name}}dest:group_wait:30s,group_interval:5m,repeat_interval:4h,receiver:email,},receivers:[{name:email,/etc/nginx/sites-enabled/{{app_name}}state:link notify:restart nginx-name:创建systemd服务单元email_configs:[{to:args.email,send_resolved:True,}]}]}#告警规则alert_rules={groups:[{name:template:src:systemd_service.j2dest:/etc/systemd/system/{{app_name}}.service notify:reload systemdn ode_alerts,rules:[{alert:HighCPULoad,expr:node_load
10.8,for:5m,labels:{severity:-name:启动应用服务service:name:{{app_name}}state:started enabled:yes handlers:warning,},annotations:{summary:{{$labels.instance}}:高CPU负载,description:{{$labels.instance}}CPU负载超-name:restart nginxservice:name:nginx state:restarted-name:reload systemdsystemd:过80%,}},{alert:LowDiskSpace,expr:node_filesystem_free_bytes/node_filesystem_size_bytes*10010,for:daemon_reload:yes5m,labels:{severity:critical,},annotations:{summary:{{$labels.instance}}:磁盘空间不足,description:{{$labels.instance}}{{$labels.mountpoint}}剩余空间不足10%,}}]}]}#写入配置文件withopen/etc/prometheus/prometheus.yml,w asf:yaml.dumpprometheus_config,f,default_flow_style=Falsewithopen/etc/alertmanager/alertmanager.yml,w asf:yaml.dumpalertmanager_config,f,default_flow_style=Falseos.makedirs/etc/prometheus/rules,exist_ok=Truewith open/etc/prometheus/rules/node_alerts.yml,w asf:yaml.dumpalert_rules,f,default_flow_style=False#重启服务subprocess.run[systemctl,restart,prometheus]subprocess.run[systemctl,restart,alertmanager]printf监控配置已完成目标:{args.target},报警邮箱:{args.email}第十二章性能监控与优化CPU性能指标CPU是系统处理能力的核心指标CPU使用率整体和各类型(用户、系统、IO等)使用率负载平均值1分钟、5分钟、15分钟系统负载运行队列长度等待CPU处理的进程数上下文切换进程/线程切换频率中断处理硬/软中断处理频率监控工具#CPU使用情况tophtopmpstat-P ALL2#进程CPU使用详情pidstat-u1内存性能指标内存管理直接影响系统稳定性和响应速度物理内存使用率已用内存百分比可用内存系统可分配的内存量缓存/缓冲区使用用于提升性能的内存交换空间使用率虚拟内存使用情况页面调度页面换入/换出频率监控工具#内存使用概况free-hvmstat2#详细内存统计cat/proc/meminfo#进程内存使用ps aux--sort=-%mempmap-x[PID]IO性能指标性能瓶颈诊断与调优资源使用分析优化方案与实施性能分析方法论CPU优化建立基准记录正常工作负载下的性能指标•优化进程优先级(使用nice和renice)识别症状确定问题的表现形式(响应慢、高负载等)•启用CPU亲和性(使用taskset)收集数据使用监控工具收集相关指标•控制进程数量,避免过度调度分析瓶颈确定限制性能的资源和原因•升级至多核处理器或增加CPU核心验证假设通过测试确认瓶颈原因•优化应用程序算法和代码效率应用优化实施改进措施内存优化验证结果比较优化前后的性能差异•调整交换空间使用策略(vm.swappiness)常见瓶颈诊断工具•优化内存分配和回收(sysctl参数)SAR(System ActivityReporter)全面的系统性能历史数据•控制应用程序内存泄漏Perf Linux性能分析工具,支持硬件性能计数器•增加物理内存容量Strace跟踪进程的系统调用和信号•使用内存缓存加速应用(如Redis)Ltrace跟踪进程的库调用磁盘I/O优化Flame Graphs直观显示CPU使用的层次结构•使用适当的I/O调度器(deadline,noop,cfq)#使用perf分析CPU事件perf record-a-g sleep30perf•调整文件系统参数(noatime等)report#跟踪进程系统调用strace-p[PID]#监控一段时间的•使用SSD替代机械硬盘系统活动sar-A-o/tmp/sar.data512•实施RAID提高性能和可靠性•优化数据库存储引擎和配置网络优化•调整TCP/IP堆栈参数•使用内容分发网络(CDN)•实施负载均衡•优化应用协议和数据传输•升级网络设备和带宽第十三章云平台与虚拟化管理12虚拟机基础容器基础虚拟机(VM)是在物理硬件上模拟完整计算机系统的技术容器是轻量级的虚拟化技术,共享主机内核虚拟化类型容器与虚拟机对比全虚拟化完全模拟硬件,客户机操作系统无需修改资源效率容器开销小,启动快,密度高半虚拟化客户机知道自己运行在虚拟环境中,需要特殊驱动隔离级别虚拟机提供更强的隔离保证硬件辅助虚拟化利用CPU虚拟化扩展(如Intel VT-x、AMD-V)操作系统容器共享主机内核,虚拟机有独立的客户机内核常用虚拟化平台可移植性容器更易于在不同环境间移动VMware ESXi/vSphere企业级虚拟化平台主要容器技术Microsoft Hyper-V Windows环境虚拟化解决方案Docker最流行的容器平台KVM(Kernel-based VirtualMachine)Linux内核集成的虚拟化技术Kubernetes容器编排和管理平台Xen开源的虚拟机监视器containerd高级容器运行时VirtualBox适合桌面和测试环境的虚拟化软件Podman无守护进程的容器引擎虚拟机管理LXC/LXD Linux容器技术容器管理基础命令#使用virsh管理KVM虚拟机virsh list--allvirsh startvm_namevirshshutdown vm_namevirsh destroyvm_name#强制关闭virsh consolevm_name#Docker基本命令docker ps-a#列出所有容器docker#连接到虚拟机控制台images#列出镜像docker run-d-p80:80nginx#启动Nginx容器docker stopcontainer_id#停止容器docker exec-itcontainer_id bash#进入容器3云资源管理概述云计算为系统管理带来新的范式云服务模型IaaS(基础设施即服务)提供虚拟机、存储、网络等基础设施PaaS(平台即服务)提供应用开发和运行的平台环境SaaS(软件即服务)提供直接可用的应用软件FaaS(函数即服务)无服务器计算,按需执行代码主要云服务提供商阿里云中国最大的云服务提供商腾讯云游戏和社交网络巨头的云平台华为云电信设备制造商的云服务AWS(亚马逊云服务)全球最大的云服务提供商云环境下的系统管理挑战弹性伸缩与自动化安全合规与成本控制云环境弹性伸缩云安全挑战弹性伸缩是云计算的核心优势,允许资源随需求自动调整云环境带来新的安全考量水平扩展(Scale Out)增加实例数量共享责任模型明确云提供商和用户的安全责任边界垂直扩展(Scale Up)增加单实例的资源配置身份和访问管理精细控制对云资源的访问自动伸缩组根据负载或时间表自动调整资源数据加密传输中和静态数据的加密网络安全安全组、VPC、防火墙等措施实现弹性伸缩的核心技术合规认证满足行业标准和法规要求负载均衡器分发流量到多个实例云成本管理健康检查监控实例状态伸缩策略定义何时扩展或收缩控制云环境成本的策略镜像和模板快速创建一致的新实例资源优化选择合适的实例类型和规格自动化部署管道自动关闭闲置资源定时关闭非生产环境预留实例和承诺使用折扣长期使用承诺换取折扣自动化是云环境管理的关键自动扩缩容按实际需求调整资源CI/CD管道持续集成和持续部署成本分析和预算监控支出并设置预算限制基础设施即代码(IaC)使用代码定义和管理基础设施标签和成本分配跟踪不同部门和项目的成本配置管理自动化软件安装和配置实施最佳实践蓝绿部署/金丝雀发布降低部署风险的策略#使用标签进行成本分配resource alicloud_instance web{#...其他配置...tags={Environment=Production,Department=IT,Project=WebApp}}#设置自动关闭非生产环境的定时任务resourcealicloud_scheduled_task stop_dev{name=stop-dev-envscheduled_action=ecs StopInstance--InstanceId${alicloud_instance.dev.id}launch_time=018**1-5#工作日下午6点}课程总结与未来展望系统管理员的职业发展路径随着技术演进,系统管理员角色正在转型DevOps工程师整合开发和运维,关注自动化和持续交付SRE(站点可靠性工程师)专注于系统可靠性和可用性云架构师设计和实施云基础设施和迁移策略安全运维专家将安全实践融入系统运维流程平台工程师构建和维护开发者使用的内部平台关键技能发展方向未来系统管理员需要掌握的核心能力自动化和编程Python、Go、基础设施即代码工具容器和编排Docker、Kubernetes、服务网格云原生技术无服务器架构、微服务、云服务集成监控和可观测性分布式跟踪、日志聚合、指标分析安全实践DevSecOps、威胁建模、安全自动化数据管理数据库管理、备份策略、数据治理技术趋势展望影响系统管理未来的技术趋势AI辅助运维机器学习辅助问题检测和自动修复GitOps以Git为中心的操作模型混合云和多云管理跨平台资源编排和管理不可变基础设施替换而非修改的部署模式零信任安全模型不再依赖网络边界的安全架构边缘计算将计算推向网络边缘的分布式架构持续学习策略保持技术敏锐度的方法实践学习动手实验和个人项目技术认证AWS/阿里云/Azure认证、Linux专业认证等开源贡献参与开源项目,拓展视野技术社区参与技术交流和分享持续阅读博客、书籍、论文和最新研究多样化项目接触不同类型和规模的系统致谢与问答感谢参与现场答疑与交流感谢各位参加本次系统管理培训课程希望这些内容对您的日常工作和职业发展有所帮助现在进入问答环节,欢迎提出关于系统管理的任何问题特别感谢•操作系统配置与优化•网络与安全管理•各位讲师和技术顾问提供的专业知识支持•自动化运维实践•技术团队在课程准备过程中的辛勤工作•云平台迁移策略•所有参与者的积极提问和互动•性能调优方法培训资料将通过以下方式提供•职业发展路径•培训平台在线下载提问方式•内部知识库归档•现场直接举手提问•相关代码示例将上传至内部Git仓库•通过会议聊天功能发送问题我们将定期更新培训内容,确保材料与技术发展保持同步•扫描屏幕上的二维码加入技术交流群课后交流与支持我们将建立系统管理技术交流群,欢迎加入讨论,分享经验和问题我们的技术团队将定期在群内解答问题,并分享行业最新动态。
个人认证
优秀文档
获得点赞 0