首页 > 其他分享 >运维常识

运维常识

时间:2024-12-20 16:08:37浏览次数:4  
标签:场景 服务 运维 预防措施 配置 常识 解决方案 日志

以下是一些常见的运维常识:

  1. 日志分析:快速定位应用崩溃原因

生产场景:一个 Web 应用崩溃,重启后仍然无法恢复。通过查看日志文件,发现 OutOfMemoryError,并且日志中显示 JVM 堆内存不足。

解决方案:

  • 使用 grep 过滤关键字:grep "OutOfMemoryError" /var/log/application.log

  • 确定是内存溢出问题,检查 JVM 配置,增加堆内存大小。修改 JAVA_OPTS 配置:-Xms2g -Xmx4g

预防措施:配置日志轮转,确保日志不会占用过多磁盘空间。

 

  1. 备份与恢复:数据库数据丢失恢复

生产场景:由于误操作,生产环境数据库中的重要表被删除,需要恢复数据。

解决方案:

  • 使用备份文件恢复:mysql -u root -p < /backup/backup_2024-12-01.sql

  • 如果没有备份,通过分析 MySQL 的 binlog 日志恢复增量数据:mysqlbinlog /var/lib/mysql/mysql-bin.000001 | mysql -u root -p

预防措施:定期备份并验证备份文件,配置增量备份,确保能最大程度恢复数据。

 

  1. 磁盘管理:磁盘空间不足

生产场景:生产服务器上的磁盘空间满,导致应用无法写入数据,服务中断。

解决方案:

  • 使用 df -h 查看磁盘使用情况,使用 du -sh /var/log/* 查找日志文件占用的空间。

  • 删除过期的日志或临时文件,清理 /tmp 目录。

  • 配置 logrotate 自动轮转日志文件,避免磁盘占满。

预防措施:设置磁盘空间监控,及时告警,避免手动清理遗漏。

 

  1. 权限管理:避免滥用权限

生产场景:开发人员拥有 root 权限,误操作导致生产环境服务宕机。

解决方案:

  • 使用 sudo 配置最小权限,确保开发人员只对特定操作具有权限:user ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx

  • 通过 visudo 配置审计规则,限制不必要的权限。

预防措施:定期审查权限设置,确保用户仅能执行必要的命令。

 

  1. 网络故障排查:服务器无法访问外网

生产场景:服务器无法访问外部网络,导致无法进行软件更新或 API 请求。

解决方案:

  • 使用 ping 检查服务器与外网的连通性:ping 8.8.8.8

  • 使用 traceroute 确定网络中断位置。

  • 检查防火墙配置,使用 iptables -L 查看当前规则,确认是否有误拦截外部请求。

预防措施:配置网络监控工具,确保网络连接稳定。

 

  1. 进程管理:高负载导致服务响应慢

生产场景:Web 应用由于高并发请求,导致某些进程占用大量 CPU 资源,系统负载过高,影响响应速度。

解决方案:

  • 使用 top 或 htop 查看 CPU 占用情况:top -o %CPU

  • 调整进程的优先级,使用 renice 降低低优先级进程的 CPU 使用率:renice -n 10 -p <PID>

  • 如果应用性能瓶颈是数据库,可以优化 SQL 查询或增加数据库索引。

预防措施:配置自动化监控,提前告警并调整资源分配。

 

  1. 定时任务:漏掉定期备份任务

生产场景:定时任务(如数据库备份)未成功执行,导致数据丢失。

解决方案:

  • 使用 crontab -l 检查当前定时任务配置,确保任务已正确设置:crontab -l

  • 查看 /var/log/cron 日志,确保任务执行无误。

预防措施:配置监控工具(如 Prometheus)实时监控定时任务执行情况,确保任务成功执行。

 

  1. 服务管理:服务崩溃无法自动重启

生产场景:关键服务(如 Nginx 或 MySQL)崩溃后没有自动重启,导致系统无法提供服务。

解决方案:

  • 配置 systemd 确保服务崩溃后自动重启:systemctl enable nginxsystemctl restart nginx

  • 设置 Restart=always 在服务配置文件中,确保服务在失败后自动重启。

预防措施:配置服务监控,确保服务始终在运行状态。

 

  1. 高可用性:负载均衡器故障

生产场景:负载均衡器故障,导致流量无法正确分发,部分用户无法访问服务。

解决方案:

  • 配置 Nginx 或 HAProxy 作为负载均衡器,确保多个实例能够均衡分配流量。

  • 使用健康检查来确保实例健康状态:upstream backend {server backend1.example.com check;server backend2.example.com check;}

预防措施:配置健康检查,确保负载均衡器始终能检测到健康的后端服务。

 

10.数据库性能优化:查询慢导致应用性能下降

生产场景:数据库查询响应时间过长,导致前端页面加载缓慢,影响用户体验。

解决方案:

  • 使用 EXPLAIN 分析慢查询,优化查询语句:EXPLAIN SELECT * FROM orders WHERE order_date = '2024-12-20';

  • 添加索引以加速查询:CREATE INDEX idx_order_date ON orders(order_date);

预防措施:配置慢查询日志,定期审查和优化数据库查询。

 

11.容器化:Docker 容器资源泄漏

生产场景:某 Docker 容器由于内存泄漏导致资源消耗过大,影响系统稳定性。

解决方案:

  • 使用 docker stats 查看容器的资源消耗情况。

  • 使用 docker logs 查看容器输出日志,确定是否有内存泄漏问题。

预防措施:设置 Docker 容器的内存限制,避免容器资源过度占用:docker run -m 512m --memory-swap 1g my-container

 

12.网络安全:防止 DDoS 攻击

生产场景:服务器遭遇 DDoS 攻击,导致网络带宽消耗殆尽,应用服务不可用。

解决方案:

  • 配置防火墙规则,限制每个 IP 地址的请求频率:iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/min -j ACCEPT

  • 使用 Cloudflare 或 AWS Shield 等服务防止 DDoS 攻击。

预防措施:设置流量监控,及时发现异常流量,防止 DDoS 攻击。

 

13.SSL/TLS 配置:确保 HTTPS 安全

生产场景:网站未启用 HTTPS,导致用户数据未加密传输,容易遭受中间人攻击。

解决方案:

  • 配置 Let’s Encrypt 证书并启用 HTTPS:certbot --nginx -d example.com

  • 强制 HTTP 请求重定向到 HTTPS:server {listen 80;server_name example.com;return 301 https://$host$request_uri;}

预防措施:定期检查证书有效性,避免证书过期。

 

14.服务依赖:微服务依赖中断

生产场景:微服务架构下的一个服务无法启动,导致依赖的其他服务也无法正常工作。

解决方案:

  • 使用 docker-compose 管理多个服务的依赖,确保服务按顺序启动。

  • 配置服务健康检查,确保每个服务健康时才能进行下游服务的启动。

预防措施:定期测试微服务的高可用性和容错性,确保系统具备较强的抗压能力。

 

15.自动化运维:批量配置管理

生产场景:新增一批服务器,需统一配置防火墙规则、软件包等。

解决方案:

  • 使用 Ansible 或 Puppet 自动化配置管理工具,批量配置所有服务器。ansible-playbook -i inventory setup.yml

预防措施:配置持续集成(CI/CD)流水线,确保所有服务器配置的一致性和安全性。

 

16.内存泄漏:查找并解决内存泄漏

生产场景:应用长期运行后,内存使用量不断增加,最终导致系统崩溃。

解决方案:

  • 使用 top 和 free -h 检查内存使用情况。

  • 配合 valgrind 或 jmap 查找内存泄漏:jmap -histo:live <pid>

预防措施:定期检查内存使用情况,定期重启服务避免内存泄漏积累。

 

17.日志存储:集中式日志管理

生产场景:多台服务器生成大量日志文件,手动查看日志困难,难以定位问题。

解决方案:

  • 配置 ELK(Elasticsearch, Logstash, Kibana)堆栈收集和分析日志。

  • 配置 Filebeat 收集日志并发送至 Logstash 进行处理:filebeat.yml

预防措施:配置日志分类和实时监控,避免日志过大导致性能问题。

 

18.虚拟化管理:KVM 主机性能优化

生产场景:KVM 虚拟化环境下虚拟机性能不佳,导致主机资源不足。

解决方案:

  • 调整虚拟机内存和 CPU 配置。

  • 配置 KVM 的 cpu pinning 和 hugepages 来优化性能。

预防措施:定期分析虚拟化主机性能,优化资源分配。

 

19.备份恢复:云存储数据恢复

生产场景:存储在云端的数据库或文件丢失,需从云存储恢复。

解决方案:

  • 使用 AWS S3、Google Cloud Storage 或其他云服务提供的备份恢复功能。

预防措施:配置云服务自动备份并定期验证备份文件。

 

20.服务调度:Kubernetes 集群调度优化

生产场景:Kubernetes 集群资源分配不均,导致部分容器因资源不足而无法启动。

解决方案:

  • 使用 kubectl 查看 pod 和 node 的资源分配:kubectl describe pod <pod_name>

  • 配置合理的资源请求和限制(如 resources.requests 和 resources.limits)。

预防措施:定期调整集群资源,避免资源过度集中在某一节点,导致负载不均。

 

引用自:

https://mp.weixin.qq.com/s/hAzU_epkZ_uSNTdQQheD-A

标签:场景,服务,运维,预防措施,配置,常识,解决方案,日志
From: https://www.cnblogs.com/yangmeichong/p/18619494

相关文章

  • 【运维发布】蓝绿部署滚动更新金丝雀发布授权策略敏感数据保护内置监控功能外部监控工
    【运维发布】蓝绿部署滚动更新金丝雀发布前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站部署策略(续)蓝绿部署(Blue-GreenDeployment)蓝绿部署是一种零停机的发布策略,它通过维护两个完全相同的生产环境来实现。一个环境......
  • 2024年山东省17届网络建设与运维Linux部分
    目录1,系统安装(1)!(由于系统安装没有可演示性就此省略)(2)修改ip为10.6.20.100/24,SSH服务端口为2025(3)安装qemu-kvm、libvirt、virt-install、sshpass(重要)(4)虚拟机存储目录有默认目录改为/home/vmfs/(5)创建桥网卡名字为br0,root用户密码为Key-1122(6)创建快照(7)克隆虚拟机并......
  • 运维工程师40岁以后出路,零基础入门到精通,收藏这篇就够了
    随着云计算、大数据、人工智能、网络安全等技术的飞速发展,运维领域最吃香的方向也逐渐清晰。以下是对当前运维实际工作进行分析后,总结出的10个热门方向,供参考。1.云计算与云运维随着云计算的普及,越来越多的企业选择将业务部署在云端,如AWS、Azure、阿里云等。云运维因此成......
  • SqlServer运维——查询阻塞
    目录0.演示阻塞1.基于sys.dm_exec_requests视图2.在MSSM中通过“活动和监视器”查看3.完整脚本查询阻塞0.演示阻塞首先MSSM中打开一个查询会话,这个是进程68执行一个更新操作,但是不提交事务BEGINTRANSACTIONUPDATEdbo.AAMyTestMsgSET Mes='1'WHERECreateTime='202......
  • 摄影常识 全画幅 照相机 等效焦距 All In One
    摄影常识全画幅照相机等效焦距AllInOne35mm等效焦距,全画幅相机......
  • 软件项目文档大全:开发至交付,运维、安全、实施资料整备
    前言:在软件项目管理中,每个阶段都有其特定的目标和活动,确保项目的顺利进行和最终的成功交付。以下是软件项目管理各个阶段的详细资料:软件项目管理部分文档清单: 工作安排任务书,可行性分析报告,立项申请审批表,产品需求规格说明书,需求调研计划,用户需求调查单,用户需求说明书,概要......
  • 机器学习在运维中的实时分析应用:新时代的智能运维
    随着信息化和互联网技术的迅猛发展,运维工作的复杂性和重要性不断提升。传统的运维方法已经无法满足现代企业对于系统高效、稳定运行的需求。借助机器学习技术,实时分析在运维中的应用为智能运维带来了新的契机。本文将详细探讨机器学习在运维中的实时分析应用,并通过具体代码......
  • 做运维工程师辛苦吗?
    你要知道做那一块的运维网络运维(确保网络稳定安全)应用运维(应用软件进程监控、服务和端口相应情况、故障处理等)系统运维(操作系统监控恢复等)、桌面和外围设备运维(计算机终端、外围输入输出设备等的维护)、基础环境运维(比如机房环境、电力系统、消防等)、主机和存储设备......
  • 运维神器!Docker 可视化管理面板!
    大家好,我是Java陈序员。在开发中,Docker作为优秀的容器引擎,能快速实现应用的部署,以及安装各种中间件,大大提高了开发效率。今天,给大家介绍一个开源的Docker可视化管理面板工具,帮助你更好的管理Docker!关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经......
  • 运维必备--生产环境系统更新时必用的md5校验
    在生产环境下做更新的时候,为了不必要的扯皮以及更新的严谨性,一致性。更新前后需要md5文件校验。1.开发传代码包过来让他做好校验,更新包连同md5文件一起发送。2.运维接收代码包做一次文件校验,生成的md5文件跟开发提供的做对比,一致则没问题。3.更新到服务器后,再做一次文件的校......