当前位置: 首页 > news >正文

新人入职,我是怎么快速接手20台服务器的

刚入职新公司,领导说:这20台服务器你来管。

然后甩给我一个Excel表格,里面就写了IP和密码,其他啥都没有。

前任留下的文档?不存在的。

分享一下我是怎么快速上手的。

Day 1:摸清家底

第一步:能登上去

先确认所有服务器都能SSH上去。

# 写个脚本批量测试
for ip in $(cat servers.txt); doecho -n "$ip: "timeout 3 ssh -o ConnectTimeout=3 root@$ip "echo OK" 2>/dev/null || echo "FAILED"
done

跑完发现有3台连不上:

  • 1台IP错了
  • 1台密码错了
  • 1台防火墙没开SSH

找IT把问题解决了,20台都能登了。

第二步:收集信息

登上去了,但不知道每台机器跑的什么。写个脚本收集一下:

#!/bin/bash
# collect_info.shecho "主机名: $(hostname)"
echo "IP: $(hostname -I | awk '{print $1}')"
echo "系统: $(cat /etc/os-release | grep PRETTY_NAME | cut -d'"' -f2)"
echo "内核: $(uname -r)"
echo "CPU: $(nproc) 核"
echo "内存: $(free -h | grep Mem | awk '{print $2}')"
echo "磁盘: $(df -h / | tail -1 | awk '{print $2}')"
echo ""
echo "运行的服务:"
systemctl list-units --type=service --state=running | grep -E "nginx|mysql|redis|docker|java|node|python" | awk '{print $1}'
echo ""
echo "监听端口:"
netstat -tlnp | grep LISTEN | awk '{print $4, $7}' | sort -u
echo ""
echo "定时任务:"
crontab -l 2>/dev/null

批量执行:

for ip in $(cat servers.txt); doecho "========== $ip =========="ssh root@$ip 'bash -s' < collect_info.shecho ""
done > server_info.txt

跑完得到一个大文件,整理成表格:

IP 主机名 配置 服务 用途
192.168.1.10 web-01 4C8G nginx, java Web服务
192.168.1.11 web-02 4C8G nginx, java Web服务
192.168.1.20 db-01 16C64G mysql 数据库主
... ... ... ... ...

Day 2:理清架构

知道每台机器跑什么了,但不知道它们之间的关系。

画架构图

根据收集的信息,大概画出来:

┌─────────────┐│   负载均衡   ││ 192.168.1.1 │└──────┬──────┘│┌──────────────┼──────────────┐│              │              │┌──────┴──────┐┌──────┴──────┐┌──────┴──────┐│   Web-01    ││   Web-02    ││   Web-03    ││    .10      ││    .11      ││    .12      │└──────┬──────┘└──────┬──────┘└──────┬──────┘│              │              │└──────────────┼──────────────┘│┌──────────────┼──────────────┐│              │              │┌──────┴──────┐┌──────┴──────┐┌──────┴──────┐│   MySQL主   ││  MySQL从    ││   Redis     ││    .20      ││    .21      ││    .30      │└─────────────┘└─────────────┘└─────────────┘

确认关键信息

# MySQL主从关系
ssh root@192.168.1.21 "mysql -e 'SHOW SLAVE STATUS\G'" | grep -E "Master_Host|Slave_IO_Running|Slave_SQL_Running"# Redis是单机还是集群
ssh root@192.168.1.30 "redis-cli INFO Replication"# Nginx配置指向哪里
ssh root@192.168.1.10 "cat /etc/nginx/conf.d/*.conf" | grep proxy_pass

Day 3:建立监控

没监控就是瞎子。先搞个简单的。

快速方案:用现有的

问了一下,公司有Zabbix但没接这些服务器。

把Agent装上去:

# 批量安装Zabbix Agent
for ip in $(cat servers.txt); doecho "Installing on $ip..."ssh root@$ip "apt install -y zabbix-agent && systemctl enable zabbix-agent && systemctl start zabbix-agent"
done

然后在Zabbix Server上批量添加主机。

自己搞:简单脚本

如果没有现成监控,先用脚本顶一下:

#!/bin/bash
# simple_monitor.shSERVERS="192.168.1.10 192.168.1.11 192.168.1.20 192.168.1.30"
WEBHOOK="https://oapi.dingtalk.com/robot/send?access_token=xxx"for ip in $SERVERS; do# 检测SSHif ! timeout 5 ssh root@$ip "echo" &>/dev/null; thencurl -s -H "Content-Type: application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[告警] $ip SSH连接失败\"}}" $WEBHOOKcontinuefi# 检测磁盘DISK=$(ssh root@$ip "df / | tail -1 | awk '{print \$5}' | tr -d '%'")if [ $DISK -gt 80 ]; thencurl -s -H "Content-Type: application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[告警] $ip 磁盘使用率 ${DISK}%\"}}" $WEBHOOKfi# 检测内存MEM=$(ssh root@$ip "free | grep Mem | awk '{print int(\$3/\$2*100)}'")if [ $MEM -gt 90 ]; thencurl -s -H "Content-Type: application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"[告警] $ip 内存使用率 ${MEM}%\"}}" $WEBHOOKfi
done

加到crontab,每5分钟跑一次:

*/5 * * * * /opt/scripts/simple_monitor.sh

Day 4:统一管理

SSH密钥配置

一个个输密码太烦了,配置密钥登录:

# 生成密钥(如果没有)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""# 分发公钥
for ip in $(cat servers.txt); dossh-copy-id -i ~/.ssh/id_ed25519.pub root@$ip
done

SSH Config配置

# ~/.ssh/config
Host web1HostName 192.168.1.10User rootHost web2HostName 192.168.1.11User rootHost dbHostName 192.168.1.20User rootHost redisHostName 192.168.1.30User root

现在直接 ssh web1 就能连了。

批量管理工具

如果服务器更多,可以用Ansible:

# inventory.yml
all:children:web:hosts:192.168.1.10:192.168.1.11:192.168.1.12:db:hosts:192.168.1.20:192.168.1.21:redis:hosts:192.168.1.30:
# 批量执行命令
ansible all -i inventory.yml -m shell -a "uptime"# 批量安装软件
ansible web -i inventory.yml -m apt -a "name=htop state=present"

Day 5:文档整理

把前面收集的信息整理成文档,方便以后查:

# 服务器清单## 生产环境| 主机名 | IP | 配置 | 服务 | 用途 |
|--------|-----|------|------|------|
| web-01 | 192.168.1.10 | 4C8G | nginx, java | Web |
| web-02 | 192.168.1.11 | 4C8G | nginx, java | Web |
| db-01 | 192.168.1.20 | 16C64G | mysql(主) | 数据库 |
| db-02 | 192.168.1.21 | 16C64G | mysql(从) | 数据库 |
| redis-01 | 192.168.1.30 | 8C32G | redis | 缓存 |## 网络架构(贴架构图)## 关键服务配置(MySQL主从配置、Nginx配置等)## 运维手册(常用命令、故障处理等)

遇到的问题

问题1:有些服务器在不同网段

20台服务器分布在3个网段,有些还在DMZ区,从我的电脑不能直连。

解决方案:

  1. 通过跳板机中转
  2. 或者用组网软件把所有服务器组到一个虚拟网络

我最后选了后者,用星空组网把所有服务器组到一起,直接SSH虚拟IP就能连。

问题2:不知道哪些服务重要

问了一下同事和领导,确认了优先级:

优先级 服务 说明
P0 MySQL主库 挂了业务全完
P0 Web服务 挂了用户访问不了
P1 MySQL从库 挂了影响读性能
P1 Redis 挂了性能下降
P2 其他 影响较小

问题3:不知道部署流程

找之前的同事问了一下大概流程,然后自己部署了几次,把流程文档化了:

# 部署流程
1. 拉取代码:git pull
2. 编译打包:mvn package
3. 备份当前版本:cp app.jar app.jar.bak
4. 替换新版本:cp target/app.jar /opt/app/
5. 重启服务:systemctl restart app
6. 检查日志:tail -f /var/log/app/app.log
7. 检查监控:确认服务正常

总结

接手服务器的步骤:

阶段 事项
Day 1 确认能登录,收集基本信息
Day 2 理清架构关系,画架构图
Day 3 建立监控告警
Day 4 配置统一管理(密钥、Ansible)
Day 5 整理文档

几个建议:

  1. 先能登上去 - 连不上啥都白搭
  2. 画架构图 - 别指望脑子记
  3. 尽快建监控 - 出问题了才知道
  4. 写文档 - 不然下一个接手的人还要再来一遍
  5. 多问 - 有些东西问一句能省几个小时

有接手服务器的经验欢迎评论区分享~


http://www.jsqmd.com/news/123617/

相关文章:

  • Open-AutoGLM与传统医疗AI对比:性能提升90%背后的架构革新
  • 2025鲁南AI搜索优化服务商TOP5权威推荐:看哪家实力强? - myqiye
  • 为什么头部跨境平台都在悄悄接入Open-AutoGLM?真相曝光
  • 2025年有实力的专项审计专业公司推荐:靠谱的专项审计企业有哪些? - mypinpai
  • vxe-table 导入 excel xlsx 时,单元格内容值丢失前面0解决方法
  • 前端错误监控与排查体系实战指南
  • 4.结构型模式
  • 如何搜索学术论文:实用技巧与高效方法指南
  • 【稀缺技术首发】:Open-AutoGLM多模态灾情感知架构深度解读
  • 从报关到结算:如何用Open-AutoGLM压缩跨境流程70%耗时?
  • 密云嘉益园的复式楼,找北京本地的整装公司哪家强?
  • SpringBoot+Spring AI 构建企业知识库
  • JetBrains2023系列软件安装激活通用教程
  • 006_prompt
  • 实用指南:Java集合大调研
  • 【独家深度】解密Open-AutoGLM在国家级碳交易平台中的监控应用
  • 2025年豆包优化排名优质公司推荐:聚焦Geo与AI SEO核心能力 - 品牌推荐排行榜
  • 别再手动清洗星载数据了!Open-AutoGLM一键自动化方案已上线
  • Open-AutoGLM模型调优技巧(性能提升80%的3个关键步骤)
  • 2025年靠谱PP药品柜品牌排行榜,新测评精选实验室存储设备公司推荐 - myqiye
  • 2025年年终国内抛丸机厂家推荐排行榜:五家优质企业综合对比分析 - 十大品牌推荐
  • 【AI】RAG智能问答的三层优化策略
  • Exendin-4;HGEGTFTSDLSKQMEEEAVRLFIEWLKNGGPSSGAPPPS-NH2
  • 2025年齿轮类铸件工厂权威推荐榜单:林业机械类铸件/低合金钢铸件/水泵类铸件源头厂家精选 - 品牌推荐官
  • 收藏!2025年AI行业风口:应用层人才成企业争抢核心,程序员/小白入门指南
  • [故障排查] 应用程序无法正常启动0xc000007b 的技术原理与终极解决方案 - PC修复电脑医生
  • 2025年小泡气泡膜批发厂家权威推荐榜单:气泡膜切片/白色气泡膜/红色气泡膜源头厂家精选 - 品牌推荐官
  • 2025年CIP清洗系统生产商权威推荐榜单:灭活罐/种子罐/配液系统源头厂家精选 - 品牌推荐官
  • 2025年知名的西点培训中心推荐,专业西点培训机构哪家好全解析 - 工业推荐榜
  • 查看npm包的下载量对比