Web服务器运维及安全监控
凌晨三点,及安一台Nginx服务器CPU冲到98%,全监流量图陡增。及安登录上去看,全监access.log里同一个IP每秒请求两百多次,及安全是全监POST /login。这不是及安正常用户能干出来的事。直接封IP,全监加fail2ban规则,及安十分钟后流量回落。全监这种事,及安做运维的全监谁没碰过几回。
Web服务器运维,及安说白了就是全监让服务活着,还得活得稳。及安装完系统、配好Nginx或Apache,那只是开始。真正耗精力的是后面那些琐碎事:日志轮转有没有配、连接数超没超、磁盘还剩多少、SSL证书什么时候到期。我见过太多人上线之后就不管了,直到某天网站打不开才慌。
拿Nginx来说,几个参数必须盯紧。worker_connections默认512,并发稍微高一点就顶不住。keepalive_timeout设太长,空闲连接占着资源不放;设太短,频繁握手又浪费CPU。还有client_max_body_size,默认1M,用户传个大点的图直接413。这些不是背出来的,是被坑出来的。
安全监控这块,别指望装个防火墙就万事大吉。WAF能挡常见注入和CC攻击,但规则得调。默认规则太严会误杀正常业务,太松又等于没装。我的做法是先用观察模式跑一周,看日志里哪些请求被标记,确认误报后再开拦截。ModSecurity配上OWASP CRS是个不错的起点,但别直接上生产。
日志分析比想象中重要。不是说把日志丢给ELK就完了。你得知道正常流量长什么样,才能发现异常。比如凌晨两点突然出现大量404,可能是扫描器在探路径。某个接口响应时间从50ms涨到800ms,可能是数据库慢查询拖的。这些信号,监控工具能报警,但判断根因还是靠人。
说个真实案例。之前有个客户,服务器被挖矿程序占了,CPU跑满。查了半天,发现是Redis没设密码,端口还开着公网。攻击者写了个crontab,每十分钟拉一次矿机脚本。清理完漏洞,加了认证,改了端口,上了iptables白名单。前后折腾了四个小时。这种事,一次就够长记性。
监控工具选什么?Prometheus加Grafana是主流,Zabbix也够用。关键不是工具,是监控项。CPU、内存、磁盘、网络这些基础的不说了。Nginx的active connections、requests per second、upstream response time,这些业务指标才真正反映问题。还有证书到期提醒,别等浏览器报红才想起来续。
备份这事,老生常谈,但总有人栽。我习惯用rsync做增量,每周一次全量。数据库单独mysqldump,压缩后传到异地。别放同一台机器上,硬盘挂了全没。恢复演练也要做,不然真出事的时候,备份文件打不开就尴尬了。
最后说个观点:运维不是修电脑的。它需要你对系统有掌控感,知道每个组件在干什么,出了问题能从日志和指标里找到线索。安全监控也不是装个软件就完事,得持续看、持续调。这行没有一劳永逸,只有不断填坑。
(责任编辑:百科)













