怎么在网站上做抽奖如何做地推推广技巧
一、运维工作中的事件
https://www.51cto.com/article/687753.html
二、运维故障排查
一)故障排查步骤

1、明确故障
- 故障现象的直接表现
 - 故障发生的时间、频率
 - 故障发生影响哪些系统
 - 故障发生是否有明确的触发条件
 
故障举例:无法通过ssh登录系统
影响因素
- ssh(用户态应用)登录不到服务器用户态也会报一些信息
 - 网络软件和硬件
 - 操作系统:CPU、内存、磁盘IO等
 
2、信息收集
- 故障发生前后所有与之直接相关的信息,包括但不限于配置、日志、屏显
 - 故障发生前后与之间相关的子模块的信息
 - 尽量区分信息的重要程度,以免信息过载造成对故障产生负面作用
 
重要日志项
- /var/log/messages ---- 多数的系统日志和内核日志
 - /var/log/secure ---- 安全相关日志,如sshd,login,pam
 - /var/log/dmesg ---- 内核日志
 - /var/log/boot.log ---- 启动屏显
 - /var/log/cron ---- 计划任务日志
 - /var/log/btmp ---- last 日志
 - /var/log/sa/ ---- sar 历史性能能日志
 - 应用层日志
 
红帽操作系统特有的
#安装sos软件包 yum install sos#运行sosreport --batch #全面的系统信息tar包位置rhel6:/tmp/sosreport-*rhel7:/var/tmp/sosreport-*
3、提出假设和推断
- 基于对系统的深刻理解,对信息的综合分析,结合症状提出合理的、具体的假设
 - 分解排除 
- 分层模型,自下而上
 - 模快化
 - 发散思维
 - 对比
 
 
4、验证假设
- 一次验证只考虑一种故障因素的组合
 - 记录验证结果,可能产生新的线索
 - 反复验证所有可能的因素组合
 
二)故障解决
- 故障归档: 
- 故障现象
 - 故障环境
 - 根本原因
 - 解决办法等
 
 - 改进方法:避免再发生
 
三)故障排查需要的能力
- 对系统和架构的深入理解
 - 善用工具
 - 严密的逻辑思维
 - 对信息的筛选
 - 发散思维
 - 运气
 
四)寻求帮助
1、以RedHat操作系统为例
- Red Hat Customer Portal - Access to 24x7 support and knowledge 受限
 - 800远程支持:电话交流或提交case,附带sosreport
 - GPS红帽服务和咨询团队
 - Google查询解决办法(有辨别度)
 
man命令介绍
# 安装man包 yum install man-pages# man man # man -k <关键字># man文档类型1 Executable programs or shell commands 可执行工具的使用文档2 System calls (functions provided by the kernel) 系统调用接口文档3 Library calls (functions within program libraries) libc接口文档4 Special files (usually found in /dev) 特殊文件说明文档5 File formats and conventions, e.g. /etc/passwd 配置文件格式说明6 Games7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)8 System administration commands (usually only for root)9 Kernel routines [Non standard]
五)举例一:硬件故障排查
1、硬件故障现象举例
- 磁盘掉盘或者大量IO error
 - 网卡灯不亮,或网卡丢包严重影响到应用层面
 - 硬件日志报警
 
2、识别硬件
读取bios信息 dmidecode识别CPU lscpu /proc/cpuinfo识别内存 dmidecode -t memory free /proc/meminfo识别pci设备 lspci识别scsi设备 lsscsi识别block设备 lsblk
3、驱动程序
列出所有加载模块 lsmod查看模块信息 modinfo模块加载/卸载 modprobe模块日志 dmesg
4、排查手段
- 排查硬件日志,硬件状态,检查bios信息
 - RAS(reliablity(可靠性)、availability(可用性)、serviceability(安全性))特性 
- 需要硬件厂商支持,硬件和驱动
 - rasdaemon(rhel7/8) 
- 日志输出到/var/log/messages
 
 
 - 检查/var/log/messages和dmesg
 - 检查驱动 
- 硬件厂商提供的驱动
 - 操作系统kernel中提供的驱动
 
 
5、常见硬件故障的日志形态
- HBA卡链路故障 
- 日志样例如图: 

 
 - 日志样例如图: 
 - 磁盘IO故障 
- 日志样例如图: 

 
 - 日志样例如图: 
 - MCE故障 
- 日志样例如图: 

 
 - 日志样例如图: 
 
六)举例二:启动故障排查
1、启动故障举例(清楚系统启动的细节(顺序))
- 找不到启动盘
 - 在grub菜单过后 kernel panic
 - 文件系统挂载失败
 - 服务启动阶段长时间卡住
 
2、启动流程
- BIOS POST开机自检
 - BIOS扫描启动盘(直通、阵列卡、网卡、光纤卡、CD)
 - 感知到MBR( 主引导记录(MBR,Master Boot Record)),以及bootable分区
 - stage 1(MBR) > stage 1.5(boot文件系统驱动) > stage 2 (grub boot loader启动读取grub.conf)
 - 载入vmlinuz和initramfs
 - 载入硬件驱动,初始化磁盘,lvm和根文件系统
 - sysV/systemd启动管理器开始运行,挂载文件系统,初始化网络,继续进行服务启动
 
3、排查手段
- 单用户模式 
- 适合排查初始引导过后的sytemd启动阶段故障
 
 - 救援模式 
- 适合排查引导盘存储故障
 
 - rd.break模式 
- 适合排查初始化引导阶段故障
 
 - 云环境,将主机的系统盘挂载到其他云主机上,修改文件内容
 
4、常见的启动故障的日志形态
- 根盘LVM故障 
 -  
 - boot image故障 
 -  
 - fstab故障 
 -  
 
七)举例三:文件系统故障
1、文件系统故障
- 文件系统满
 - 文件系统只读
 - 文件系统空间未释放 
- lsof | grep -i deleted
 - 若是误删的情况,可以通过cp /proc/$pid/fd/删除内容到指定目录下
 
 - 文件系统脏
 
2、关于空间未释放问题
- 文件的open与close
 - df vs du
 - 释放空间的小技巧 
- echo > /path/to/file
 - true > /path/to/file
 
 - 误删文件后恢复的小技巧 
- 文件仍被open状态,文件会保存到/proc/$pid/fd
 
 
3、常见文件系统故障的日志形态
xfs元数据故障

八)举例四:网络性能分析
1、网络性能分析项
- 主机侧 
- 网络配置查看
 - 监控
 
 - 网络链路 
- 包转发时延
 - 吞吐量
 - 带宽
 - 等指标
 
 
2、性能分析工具
-  
ping:测试网络连通性
 -  
ifconfig:接口配置
 -  
ip:网络接口统计信息
 -  
netsat:多种网络栈和接口统计信息
 -  
ifstat:接口网络流量监控工具
 -  
netcat (nc):快速构建网络连接
 -  
tcpdump:抓包工具
 - Wireshark:网络封包分析工具
 -  
sar:统计信息历史
 -  
traceroute:测试网络路由
 -  
pathchar:确定网络路径特征
 - trace:跟踪进程执行时的系统调用和所接收的信号 linux trace命令详解-CSDN博客
 -  
dtrace:TCP/IP 栈跟踪
 -  
iperf / netperf / netserver:网络性能测试工具
 -  
perf 性能分析神器
 
详见:Linux中如何进行网络性能分析 - 系统运维 - 亿速云
九)举例五:应用debug的方法
1、shell
bash -x 断点
2、python
pdb
3、Java
Jvm heap dump Thread dump
4、C/C++
操作系统的核心
gdb
十)举例六:操作系统崩溃分析
1、kexec vs kdump
- kexec是一种热启动机制,能够跳过耗时较长的BIOS启动阶段,直接启动新的内核,这个新的内核叫capture kernel
 - kdump是利用了kexec的特性,通过在内存预留区域放置了capture kernel的image,在特定条件下触发启动capture kerne,并把crash的诶村镜像抽取保存
 - 不是所有的crash都触发kdump,需要在内核执行路径上执行panic()
 
2、kdump配置
- grub.cfg中指明内存预留空间 
- “crashkernel=xxM”:让crashkernel运行起来(机器越大,硬件(外设)越多,使用的内存越多,建议值256/512M)
 - “crashkernel=auto”:虚拟机设置设置此值没问题
 
 - 指定dump文件的存放位置,默认在/var/crash,支持nfs,ssh或外部存储
 - dump文件并非把整个内存都收集,而是必须必要数据,剔除多余数据,并运行适当压缩
 
3、kdump测试
利用kernel的sysrq特性产生kernel dump
- 配置:sysctl.conf 中 kernel.sysrq=1
 - 测试方法: 
- echo c > /proc/sysrq-trigger #机器立即宕机(c是crash)
 
 -  
- 键盘可操作:Alt+prtsc+c
 - 硬件bmc触发dump(硬件厂商:硬件安装bmc的驱动程序)
 
 
4、kdump触发事件
什么情况下会触发kdump?
sysctl -a|grep panic
- oom:内存溢出,将机器干掉
 - Hung process:进程120s hang住
 - Nmi:硬件不可信(不可屏蔽故障)
 - Soft lookup:死锁的环境
 - other oops
 


