日常问题收集
- liunx如何快速排除内存或者cpu占用过高问题?
先用top或者htop查看占用最高的应用找到应用进程号,通过top -H -p 查看线程Id PID如果是Java应用,打印堆栈信息 jstack <进程号> | grep -A 20 <线程号:16进制> 线程ID需要转为16进制-
如何检测端口是否被占用
lsof -i :[port] -
如何排查日志问题
tail -f <文件名> | grep --color=always "ERROR\|FATAL" -
平常shell脚本主要解决什么问题?
服务器批量巡检、定时的日志清理、数据自动备份、服务器日常监控 -
如何终端退出进程不终止?
使用nohup + & 符号后台运行,可以自定义输出日志 -
每5秒刷新一次,抓起进程的cpu和内存 使用top命令
top -p <进程号> -d 5每5秒刷新一次进程监控 -
系统故障的排查思路 先进行止损,回滚系统版本,然后排查故障,最后进行总结复盘。具体流程大概是先回滚系统,然后再复现系统故障,然后通过F12定位前后端故障,定位具体报错接口,然后通过日志定位具体代码,排查是逻辑错误、数据库错误、还是代码错误
-
如何用awk统计nginx访问日志中每个IP的访问次数并排序?
参考答案:经典运维考题:
bashawk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10解释:awk提取第一列(IP),sort排序使相同IP相邻,uniq -c去重并统计次数,sort -nr按次数降序排序,head -10取Top 10。
- 运维主要的几个技术方向
- 故障排查
- 监控部署
- 上线更新
- 流程总结
-
你认为自己目前有哪些方面需要加强
之前的项目都是基于tomcat服务器直接部署的,对于云原生比如docker、k8s这块基本都是自己学习,实操经验比较少。 -
之前的项目是怎么搭建监控体系的
最开始是使用的shell脚本进行定时数据收集,然后存储到数据库,再通过邮件进行发送通知;后面改成使用zabbix来进行监控,是使用AI Agent 进行搭建的 -
之前的项目是怎么做的容灾备份?
之前项目是直接在物理机上部署的tomcat,所以当时做容灾的时候只做了双中心和数据库的主从,主要就是双中心放在不同的机房,部署的时候也比较简单,只需要检测下环境和网络。然后数据库是用的国产数据库,所以是专门的数据库厂家负责的,我们只负责检测网络。 -
你能介绍一下之前的项目吗?
第一个项目是高速集团的设备监控项目,是一个Apache+tomcat的应用,部署在window服务器上,我主要负责生产问题处理、自动化脚本开发、中间件开发和值班。第二个项目是移动的项目管理系统,是nginx+tomcat+mysql的经典架构,部署在liunx上,平时工作内容50%是处理客户问题,50%是负责系统优化方面。 -
平时处理客户问题是如何操作的
- 事前
111 - 事后
111
- 系统优化主要是哪些方面
- 硬件方面
CPU cpu是否因为代码逻辑死循环导致占满
内存 根据日志需要的保存时间确定内存是否足够
容灾 物理容灾和系统设计容灾是否可用 - 系统方面
流程优化 根据用户实时反馈,对流程进行增删改
数据清洗 根据数据合规要求,对数据进行清洗
数据同步 根据业务要求,进行数据表同步
页面响应 对系统页面加载速度进行统计汇总
慢sql提取 对系统慢sql进行提取汇总并分发优化任务
报表开发 通过客户实际需求,进行统计报表开发 - 操作方面
运维手册编写 总结常见运维问题并输出手册
bug收集 汇总bug并排期优化
脚本开发 配置脚本开发,比如edge浏览器一键开启ie模式
代码规范 前端须进行ie兼容性测试,后端规范错误代码,sql响应时间要求
安全规范 生产操作规范审批流程、权限控制、密码加密、数据脱敏 - 监控方面
系统监控搭建 最开始是使用的shell脚本进行定时数据收集,然后存储到数据库,再通过邮件进行发送通知;后面改成使用zabbix来进行监控,是使用AI Agent 进行搭建的
业务监控配置 在业务高峰期,例如月末月初,对重点业务进行监控配置;对重要的数据指标进行监控配置
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!














