TECH运维工具

银河麒麟操作系统运维实战手册

基于银河麒麟 V10(服务器版 / 桌面版)的运维实战手册:版本识别、软件源、故障定位、systemd/网络/存储/Docker 运维、KYSEC 安全机制,并涵盖备份恢复、安全加固、日志监控、国产硬件适配与 FAQ。

#银河麒麟#Kylin#Linux#运维#信创#KYSEC#安全加固#备份恢复#监控

银河麒麟操作系统运维实战手册#

基于银河麒麟 V10(服务器版 / 桌面版)的排障命令、软件源配置、systemd/网络/存储/Docker 运维,以及麒麟独有的 KYSEC 安全机制实战;并扩展备份恢复、安全加固、内核与日志、监控告警、国产硬件适配与 FAQ。

覆盖范围:2 系(服务器 RPM / 桌面 DEB)生态差异、1 套 KYSEC 安全机制、20 章 100+ 核心命令、信创国产化环境适配。

目录#

  1. 版本识别(先看这章)
  2. 软件源与软件包管理
  3. 系统故障定位
  4. systemd 服务管理
  5. 网络排障
  6. 性能分析
  7. 存储与磁盘
  8. 备份与恢复
  9. Shell 脚本规范
  10. Docker 运维
  11. KYSEC 安全机制(麒麟专属)
  12. 通用排障流程
  13. 安全加固清单
  14. 内核与启动管理
  15. 日志管理
  16. 监控与告警
  17. 国产硬件适配
  18. 常用应用部署
  19. 常见问题 FAQ
  20. 命令速查总表

01 版本识别——动手前先分清两套生态#

银河麒麟最大的坑:同一个 V10,服务器版和桌面版是两套完全不同的软件生态,命令体系不能混用。运维第一动作永远是先识别版本。

1.1 产品线速览#

产品软件生态包管理防火墙默认文件系统源位置
高级服务器操作系统 V10(SP1/SP2/SP3)RPM 系(兼容 CentOS/RHEL 8 生态)yum / dnffirewalldxfs/etc/yum.repos.d/
桌面操作系统 V10(SP1/SP2/SP3)DEB 系(基于 Ubuntu 20.04 focal 生态)apt / dpkg(兼容 yum 命令,实际指向 apt)ufwext4/etc/apt/sources.list
V11(桌面/服务器新版)延续各自生态,安全中心界面升级同上同上同上同上

1.2 识别命令(三行定乾坤)#

cat /etc/os-release          # 看 PRETTY_NAME / VERSION,最权威
nkvers                       # 麒麟专用:显示内核与麒麟版本号(服务器版常见)
rpm --version && dpkg --version  # 哪个有输出就是哪套生态:rpm→服务器版,dpkg→桌面版
uname -m                     # 架构:x86_64 / aarch64(arm64),决定用哪个源

⚠️ 千万别做的事:在服务器版上执行 apt、在桌面版上执行 dnf;不要盲目把 Ubuntu 或 CentOS 的源直接搬进麒麟——内核版本与库依赖不同,会产生依赖冲突。桌面版虽然兼容 yum 命令(内部转 apt),但真正排障请用 apt 系命令。


02 软件源与软件包管理#

「There are no enabled repos / 依赖不满足」是麒麟装机后最常遇到的第一坑,90% 是软件源没配好。

2.1 服务器版(RPM 系)#

# 查看现有源(注意文件名随架构:kylin_x86_64.repo / kylin_aarch64.repo)
ls /etc/yum.repos.d/
dnf repolist all

# 配置麒麟官方源(V10 SP3 为例,不同 SP 版本 baseurl 不同!)
cat > /etc/yum.repos.d/kylin.repo <<'EOF'
[ks10-adv-os]
name = Kylin Linux Advanced Server 10 - OS
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/base/$basearch/
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
[ks10-adv-updates]
name = Kylin Linux Advanced Server 10 - Updates
baseurl = https://update.cs2c.com.cn/NS/V10/V10SP3/os/adv/lic/updates/$basearch/
gpgcheck = 1
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin
enabled = 1
EOF
dnf clean all && dnf makecache   # 重建缓存,然后 dnf list 验证

# 信创内网环境常用:挂载 ISO 做本地源
mount /path/Kylin-Server-V10-SP3-xxx-iso /mnt
cat > /etc/yum.repos.d/local.repo <<'EOF'
[local]
name = Kylin Local
baseurl = file:///mnt
gpgcheck = 0
enabled = 1
EOF
dnf clean all && dnf makecache

2.2 桌面版(DEB 系)#

# 改源前必做:备份(带时间戳,可回滚)
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak.$(date +%s)

# 换国内镜像(以中科大 kylin-cas 源为例;SP 版本不同地址不同)
sudo nano /etc/apt/sources.list
# 内容参考(x86_64):
# deb https://mirrors.ustc.edu.cn/kylin-cas/ kylin main restricted universe multiverse
# deb https://mirrors.ustc.edu.cn/kylin-cas/ kylin-security main restricted universe multiverse
# deb https://mirrors.ustc.edu.cn/kylin-cas/ kylin-updates main restricted universe multiverse

sudo apt update && sudo apt upgrade -y
# 依赖损坏时不要手动强装:
sudo apt --fix-broken install
# deb 包安装缺依赖:
sudo dpkg -i xxx.deb && sudo apt -f install

要点:

  1. 不同 SP 版本的源地址不同,别照抄——先看系统自带源的原始格式,只换域名;
  2. 桌面版部分麒麟定制组件(如 kylin-installer、kylin-upgrade)只在麒麟官方源里有,只配 Ubuntu 源会丢;
  3. 公钥过期导致报错时,重新导入麒麟官方公钥,别盲目加 [trusted=yes]。

03 系统故障定位#

麒麟与主流发行版同源,通用诊断命令直接可用;另需注意麒麟特有的 kysec 与国产硬件驱动问题。

3.1 系统无法启动——分级抢救#

  1. 记录启动画面卡住的位置(挂载 / 服务 / 驱动加载)。
  2. GRUB 启动菜单按 e,在 linux 行末尾追加 systemd.unit=rescue.target,Ctrl+X 进入救援模式(麒麟同 GRUB2,操作一致)。
  3. 进救援模式后先验证 fstab、再读日志。
findmnt --verify          # 校验 fstab("启动卡死"最常见根因)
mount -a
journalctl -xb | tail -80 # 本次启动日志
dmesg -T | tail -50       # 内核日志
systemctl list-units --failed

3.2 麒麟常见”起不来/异常”根因#

现象根因第一动作
启动卡在挂载/进入维护模式fstab 中 UUID/路径错误findmnt —verify,修 fstab(改前备份)
执行程序/脚本提示”权限不足”kysec 执行控制阻止未认证文件getstatus 看状态,见第 11 章
进程 kill 不掉 / 文件删不掉kysec 进程防杀死 / 文件防篡改安全中心关闭对应防护
SSH 失联但机器活着sshd / 防火墙 / 网络ss -tlnp | grep 22、systemctl status sshd
开机后图形界面异常/黑屏国产显卡驱动问题(桌面版高发)journalctl 查 xorg/wayland 日志,重装驱动
系统 OOM / 进程被杀内存耗尽dmesg | grep -i oom

3.3 通用诊断工具箱(麒麟同样适用)#

journalctl -u 服务名 -n 100 --no-pager
journalctl --since "10 minutes ago"
last -x | head -20                      # 重启/崩溃记录
strace -f -o /tmp/svc.log -p 1234       # 进程行为异常时跟踪
lsof -i :3306                           # 端口占用

04 systemd 服务管理#

麒麟服务器版与桌面版均使用 systemd,unit 语法与命令与主流发行版完全一致,可直接套用。

systemctl status 服务名
systemctl enable --now 服务名
systemctl daemon-reload          # 改 unit 后必须执行
systemctl cat 服务名
systemd-analyze blame / critical-chain   # 找启动慢点
# /etc/systemd/system/myapp.service(麒麟可直接使用)
[Unit]
Description=My Application
After=network-online.target

[Service]
Type=simple
User=app
ExecStart=/usr/local/bin/myapp
Restart=on-failure        # 崩溃自愈
RestartSec=5
StartLimitBurst=5         # 防重启风暴,与 Restart 配套
StartLimitIntervalSec=30
MemoryMax=512M
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target

提示:麒麟服务器版上如果服务莫名起不来,除了看 journalctl -u 服务名,还要留神 kysec——服务可执行文件若被安全策略限制,systemd 启动会失败(报权限类错误),排查方法见第 11 章。


05 网络排障#

分层排查:连通性 → DNS → 端口监听 → 防火墙 → 抓包。防火墙命令按版本区分。

5.1 双系命令#

服务器版(RHEL 系风格)

systemctl status firewalld
firewall-cmd --list-all
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
# 底层同样是 nftables
nft list ruleset

桌面版(Ubuntu 系风格)

sudo ufw status verbose
sudo ufw allow 8080/tcp
sudo ufw enable
# 网络管理多为 NetworkManager
nmcli device status
nmcli connection show

5.2 经典场景:端口明明监听,外部连不上#

# 1) 监听地址对不对?(127.0.0.1 则外部连不上)
ss -tlnp | grep 8080
# 2) 本机通不通
curl -v http://127.0.0.1:8080
# 3) 防火墙放行了吗(按版本选命令,见上)
# 4) 还没通就抓包看 SYN
tcpdump -i eth0 port 8080 -nn -c 50

规律:「本机 curl 通、外部不通」→ 优先查监听地址与防火墙;「本机都不通」→ 查服务是否活着;信创环境还要注意国产网卡驱动的 offload 特性偶发丢包问题。


06 性能分析#

分析框架用 USE 方法(使用率 / 饱和度 / 错误),命令与主流发行版一致,仅安装方式分双系。

# 安装 sysstat 工具箱
dnf install -y sysstat    # 服务器版
sudo apt install sysstat  # 桌面版

# CPU
top -c ; mpstat -P ALL 1 ; ps aux --sort=-%cpu | head ; perf top
# 内存(重点看 available 与 swap/si-so,别只看 used)
free -h ; vmstat 1 ; smem -tk | sort -k2 -rn | head
dmesg | grep -i oom
# 磁盘 IO
iostat -x 1 ; iotop
# 网络吞吐
iftop ; nload ; nethogs

误区提醒:buff/cache 大 ≠ 内存不足,看 available 列;swap 持续读写(si/so 非零)+ OOM 日志才是内存压力的实锤。服务器版文件系统为 xfs,分析 IO 时注意 xfs 的缓存行为与 ext4 不同。


07 存储与磁盘#

注意默认文件系统差异:服务器版默认 xfs(只能扩不能缩),桌面版默认 ext4。

lsblk -f                  # 磁盘/分区/文件系统/挂载点/UUID 一屏看清
df -hT
blkid
findmnt --verify          # fstab 校验
du -sh /var/log/*         # 找占用大户

7.1 LVM 磁盘扩容全流程(服务器版常见)#

⚠️ 扩容前务必先快照/备份;扩容中断电=数据风险

fdisk -l /dev/sda          # 确认底层盘已扩大(虚拟机/物理机层面先扩)
pvresize /dev/sda2         # 1) PV 吸收新增空间
pvs
lvextend -l +100%FREE /dev/vg/data   # 2) 逻辑卷扩满
# 3) 文件系统扩容——按类型选!
xfs_growfs /mount/point    # xfs(服务器版):按挂载点
resize2fs /dev/vg/data     # ext4(桌面版):按设备
df -hT                     # 4) 验证

⚠️ 高危:xfs 文件系统不支持缩容;ext4 缩容也建议卸载后离线做。任何分区/格式化/缩容操作,先备份,再操作,再验证。


08 备份与恢复#

备份是运维最后一道防线。麒麟支持的主流方式与 RHEL/Ubuntu 一致,这里讲三套方案:系统级打包、LVM 快照(在线一致备份)、文件级恢复。

8.1 系统级打包(最省事)#

# 系统整盘级备份(排除伪文件系统与运行时目录)
tar --numeric-owner -czpvf /backup/kylin-system-$(date +%F).tar.gz \
    --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp \
    --exclude=/run --exclude=/mnt --exclude=/media \
    --exclude=/var/cache --exclude=/backup /
# 更常用:只备份关键目录
tar -czpvf /backup/etc-home-$(date +%F).tar.gz /etc /home /root
# 每天 02:00 备份 /etc 与 /home,保留 7 天
0 2 * * * tar -czpvf /backup/etc-home-$(date +\%F).tar.gz /etc /home \
    && find /backup -name "*.tar.gz" -mtime +7 -delete

8.2 LVM 快照(在线一致备份,服务器版首选)#

# 前提:卷组有剩余空间
vgs
lvcreate -L 10G -s -n snap_data /dev/vg/data   # 创建快照
mount /dev/vg/snap_data /mnt/snap               # 挂载快照(只读)
tar -czpvf /backup/data-snap-$(date +%F).tar.gz /mnt/snap
umount /mnt/snap
lvremove /dev/vg/snap_data                       # 用完即删

8.3 恢复(备份的价值在于能恢复)#

# 文件级恢复
tar -xzpvf /backup/etc-home-2026-10-27.tar.gz -C /
# 只恢复单个文件
tar -xzpvf /backup/etc-home-2026-10-27.tar.gz -C / etc/ssh/sshd_config

⚠️ 提醒:备份必须定期做恢复演练;异地/异盘再存一份;LVM 快照与源数据在同一块盘上,不能替代异地备份。


09 Shell 脚本规范#

与主流发行版一致,唯一注意:麒麟环境(尤其 kysec 开启时)对脚本文件的执行控制更严格。

#!/usr/bin/env bash
set -euo pipefail
LOG=/var/log/myjob.log
log(){ echo "[$(date '+%F %T')] $*" | tee -a "$LOG"; }
die(){ log "FATAL: $*"; exit 1; }

[[ $# -eq 1 ]] || die "用法: $0 <目录>"
[[ -d "$1" ]]  || die "目录不存在: $1"
backup="${1}.bak.$(date +%s)"
cp -r "$1" "$backup" || die "备份失败"
do_something || die "核心步骤失败"
log "完成"
bash -n script.sh          # 语法检查
bash -x script.sh          # 调试
shellcheck script.sh       # 静态检查(服务器版 dnf install shellcheck / 桌面版 apt install shellcheck)

麒麟专属注意:脚本从外部拷贝/下载到麒麟上执行提示”权限不足”时,不是 chmod 问题——是 kysec 执行控制拦截了未认证脚本,处理见第 11 章(改软模式或添加到白名单)。


10 Docker 运维#

麒麟服务器版是信创环境容器化主阵地;注意架构(x86_64 / aarch64)决定镜像与源。

# 安装(优先麒麟源自带的 docker 包;或配置 docker-ce 官方源,注意架构)
dnf install -y docker-ce docker-ce-cli containerd.io   # 服务器版(docker-ce 源)
sudo apt install docker.io docker-compose             # 桌面版
systemctl enable --now docker

# 排障命令(与主流发行版一致)
docker ps -a
docker logs -f --tail 100 容器名
docker inspect -f '{{.State.ExitCode}}' 容器名
docker stats
docker events --since 1h
docker system df
现象排查路径
容器一启动就退(Exited)docker logs 看应用报错;退出码 137=被杀(多为 OOM),1=应用错误
容器被杀 / OOMdmesg | grep -i oom;docker stats 看内存;调 —memory
端口不通docker ps 看映射;进容器 curl 127.0.0.1;宿主机 ss -tlnp;防火墙放行
磁盘被占满docker system df → docker system prune

麒麟专属注意:kysec 的联网控制(netctl)可能拦截容器对外访问;进程防杀死(ppro)可能影响容器内进程管理。容器行为异常且日志无报错时,先查 kysec 状态。


11 KYSEC 安全机制(麒麟专属,运维必修)#

KYSEC 是麒麟安全增强框架,基于安全标记对执行程序、脚本、共享库、内核模块做保护与管控。它造成的故障现象非常像”权限问题”,但根因完全不同——这是麒麟排障最大的分水岭。

11.1 三种安全模式#

模式行为典型影响
normal(强制模式)违规操作被阻止并审计记录外部程序/脚本/新编译的文件直接执行失败
warning(警告模式)弹出麒麟安全授权认证框,授权后可执行频繁弹窗
softmode(软模式)只审计记录,不阻止能跑但留日志

11.2 核心命令#

# 查看当前 kysec 状态(第一动作)
getstatus

# 修改状态(命令形态随版本/架构略有差异,以官方《安全中心用户手册》为准)
# 桌面版常见形式:
sudo setstatus softmode          # 切软模式(只审计不阻止)
sudo setstatus normal            # 切强制模式(默认)
sudo setstatus enable            # 开启安全功能

# 服务器版安全中心手册形式:
setstatus kysec -s permissive    # 切宽松模式
setstatus kysec -s permissive -t # 临时生效(重启恢复原状)
setstatus kysec -s enforcing     # 切强制模式(提示重启才生效)

# 子功能管控(执行/联网/进程/文件/内核模块)
sudo setstatus -f exectl off     # 关闭执行控制(外部程序能跑了)
sudo setstatus -f netctl off     # 关闭联网控制
sudo setstatus -f ppro off       # 关闭进程防杀死
sudo setstatus -f fpro off       # 关闭文件保护(防篡改)
sudo setstatus -f kmod off       # 关闭内核模块防卸载

# 查看/设置安全标记(高级)
kysec_get 文件路径
kysec_set -n exectl -v 标记值 文件路径   # strict 模式下需切 secadm 用户

11.3 麒麟官方 FAQ 中的 KYSEC 典型故障与解法#

现象根因解法
执行程序/脚本提示”权限不够”(chmod 777 也没用)exectl 执行控制阻止未认证/已篡改文件getstatus 查看;切 softmode,或到安全中心→应用防护→执行控制 将文件认证/加白名单
出现执行控制授权弹窗warning 模式下文件被篡改/损坏查安全中心→高级配置中文件状态:被篡改→重新认证;损坏→重装对应包
进程 kill 不掉(kill -9 无效)ppro 进程防杀死安全中心→进程防杀死列表,关闭该进程防护
文件删不掉fpro 文件防篡改安全中心→文件防篡改列表,解除后再删
内核模块无法卸载kmod 防卸载安全中心→内核模块防卸载,关闭开关
无法开启联网控制/执行控制等功能kysec 处于 softmode 时功能项无法开启setstatus enable 后再开启

11.4 KYSEC 排障流程#

  1. getstatus 确认 kysec 模式
  2. 对号入座:权限不足/杀不掉/删不掉/装不上?
  3. 选解法:切模式 or 关子功能 or 加白名单
  4. 验证:程序能跑/进程能杀/文件能删
  5. 恢复策略:业务正常后评估是否恢复强制模式

⚠️ 风险提醒:关闭 kysec 或切软模式会降低系统安全等级,涉及等保合规环境时需评估审批;改动前记录 getstatus 原值,便于回滚;优先选择「加白名单/认证文件」这类最小侵入方案,而不是整体关闭。


12 通用排障流程框架#

无论什么故障,按流程走,避免”拆盲盒式”乱试。

  1. 收集信息:版本/报错/日志/变更
  2. 形成假设:基于日志定根因
  3. 最小验证:只读命令验证
  4. 修复 + 回滚:备份→修改→记原值
  5. 验证生效:确认无副作用
  6. 复盘沉淀:补监控、入库
# 修改-回滚通用范式(以 nginx.conf 为例)
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date +%s)   # 1) 备份
vim /etc/nginx/nginx.conf                                        # 2) 修改
nginx -t                                                         # 3) 语法校验
systemctl reload nginx                                           # 4) reload 优先,不断服务
# 回滚:恢复备份文件再 reload
cp /etc/nginx/nginx.conf.bak.xxx /etc/nginx/nginx.conf
nginx -t && systemctl reload nginx

黄金原则:能 reload 不 restart;能改配置不动数据;改任何东西前想 3 秒”怎么改回去”。麒麟环境额外加一条:业务异常先看 getstatus,再谈其它。


13 安全加固清单#

信创环境常涉及等保合规,以下是通用基线(最小必要),按实际需求启用,别一刀切。

13.1 SSH 加固#

# /etc/ssh/sshd_config 关键项
PermitRootLogin no            # 禁止 root 直接登录
PasswordAuthentication no     # 禁用密码登录(配合密钥)
PubkeyAuthentication yes
MaxAuthTries 3                # 限制尝试次数
AllowUsers ops user1          # 白名单
# 改完先另开一个会话确认能登,再重载
sshd -t && systemctl reload sshd

13.2 密码策略与账户#

# 密码最长有效期(RHEL 系,桌面版路径 /etc/login.defs 同源)
sed -i 's/^PASS_MAX_DAYS.*/PASS_MAX_DAYS   90/' /etc/login.defs
# 强制下次登录改密
chage -d 0 用户名
# 锁定 / 解锁账户
passwd -l 用户名 ; passwd -u 用户名
# 检查空密码账户(安全红线)
awk -F: '($2==""){print $1}' /etc/shadow

13.3 sudoers 最小授权#

sudo visudo
# 只给特定命令,别给 ALL
ops ALL=(root) NOPASSWD: /usr/bin/systemctl, /usr/sbin/service
# 检查并删除宽泛规则(NOPASSWD: ALL 这类)
sudo grep -rE "NOPASSWD:\s*ALL" /etc/sudoers /etc/sudoers.d/

13.4 审计(auditd)#

dnf install -y audit audit-libs     # 服务器版
systemctl enable --now auditd
auditctl -a always,exit -F arch=b64 -S execve -k exec_cmd   # 记录命令执行
ausearch -k exec_cmd | tail -20                             # 查看审计

13.5 一分钟自检#

systemctl list-units --failed            # 失败服务
passwd -S 用户名                          # 密码状态
ss -tlnp | grep -E ':(22|3306|6379)'     # 端口暴露面
awk -F: '($2==""){print $1}' /etc/shadow # 空密码账户

14 内核与启动管理#

启动参数、内核模块、多内核回滚,是排障和升级时的常客。

14.1 GRUB 启动参数#

cat /proc/cmdline                          # 当前生效参数
# 永久修改:编辑 /etc/default/grub 的 GRUB_CMDLINE_LINUX
# 例:串口控制台 + 关闭 IPv6
GRUB_CMDLINE_LINUX="... console=ttyS0,115200 ipv6.disable=1"
# 重新生成引导配置(两系路径不同)
grub2-mkconfig -o /boot/grub2/grub.cfg     # 服务器版(UEFI 机器用 /boot/efi/.../grub.cfg)
sudo update-grub                            # 桌面版
# 临时进救援/单用户:GRUB 菜单按 e,改 linux 行

14.2 内核模块管理#

lsmod | grep 模块名        # 已加载
modinfo 模块名             # 模块信息
modprobe 模块名            # 加载
modprobe -r 模块名         # 卸载
# 开机自动加载
echo "模块名" >> /etc/modules-load.d/自定义.conf
# 屏蔽某模块
echo "blacklist 模块名" > /etc/modprobe.d/blacklist-自定义.conf

14.3 多内核管理与回滚#

uname -r                       # 当前内核
rpm -qa | grep kernel          # 已装内核(服务器版)
dpkg --list | grep linux-image # 桌面版
# 设置默认启动内核(服务器版)
grubby --set-default=/boot/vmlinuz-xxx

⚠️ 提醒:升级内核后新内核异常时,重启在 GRUB 选旧内核即可回滚;确认稳定前别急着删旧内核包。


15 日志管理#

journald + rsyslog + logrotate 三者分工:采集、转发、轮转。日志既是排障工具也是审计依据。

15.1 journald 持久化(默认日志只在内存,重启丢失)#

mkdir -p /var/log/journal
systemd-tmpfiles --create --prefix /var/log/journal
# 限制体积:编辑 /etc/systemd/journald.conf
#   SystemMaxUse=2G
systemctl restart systemd-journald

15.2 常用查询#

journalctl -u 服务名 --since today
journalctl -p err -b            # 本次启动的错误级日志
journalctl --list-boots         # 历史启动列表
journalctl -b -1                # 上一次启动的日志

15.3 logrotate 轮转#

# /etc/logrotate.d/自定义
/var/log/myapp/*.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
    copytruncate
}
# 手动测试:-d 为调试(只打印不执行)
logrotate -d /etc/logrotate.conf
logrotate -f /etc/logrotate.conf

16 监控与告警#

轻量方案用 node_exporter + Prometheus + Grafana,重一点直接用 Zabbix。麒麟服务器版都能跑。

16.1 node_exporter(服务器版示例)#

# 下载二进制(按架构选 amd64 / arm64)
wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gz
tar xzf node_exporter-*.tar.gz && cp node_exporter-*/node_exporter /usr/local/bin/

# systemd 托管
cat > /etc/systemd/system/node_exporter.service <<'EOF'
[Unit]
Description=Node Exporter
After=network.target
[Service]
ExecStart=/usr/local/bin/node_exporter --web.listen-address=:9100
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
systemctl enable --now node_exporter
curl http://127.0.0.1:9100/metrics | head   # 验证
  • Prometheus 抓取配置加一个 job,Grafana 导入 1860 号模板即可出大盘。
  • 防火墙记得放行 9100(见第 5 章)。

16.2 Zabbix(备选)#

dnf install -y zabbix-server-mysql zabbix-web-mysql zabbix-agent2
  • 麒麟同源一般带 zabbix 包,或配置官方源(注意 aarch64 架构)。
  • 常用监控项:CPU、内存、磁盘、进程、端口、自定义 key。

⚠️ 提醒:监控只解决”发现”,告警路由(飞书/钉钉/企业微信 webhook)配好才算闭环。


17 国产硬件适配#

信创环境最常踩的坑集中在架构、驱动、固件三块。

17.1 架构识别与选包#

uname -m                                  # x86_64 / aarch64 / loongarch64 等
lscpu | grep -E "Architecture|Model name"
  • 常见芯片:鲲鹏 920(arm64)、飞腾 FT-2000/D2000(arm64)、海光(x86 兼容)、兆芯(x86 兼容)、龙芯(loongarch64,生态最窄)。
  • 选软件、容器镜像、驱动一律先看架构,别把 amd64 当通用。

17.2 网卡 / 显卡驱动#

lspci -nnk | grep -iA2 vga       # 显卡是否识别、用哪个驱动
lspci -nnk | grep -iA2 ethernet  # 网卡是否识别、用哪个驱动
  • 网卡(兆芯/中兴/盛科等):先看 lspci -nnk 是否识别,缺失再装厂商 rpm/deb。
  • 显卡(桌面版高发):journalctl 查 xorg/wayland 报错;优先装系统源里的驱动包,别从官网乱装。

17.3 固件 / 散热类问题#

sensors                                   # 温度(需安装 lm_sensors)
cat /sys/class/thermal/thermal_zone*/temp # 温度原始值
  • 开机黑屏/不引导:先确认 BIOS 相关开关(CSM、Secure Boot),arm 机型注意引导方式。
  • 异常降频:优先查温度和电源策略。

18 常用应用部署#

信创环境最常见的三类应用部署速查(Nginx / MySQL / Redis),两系命令都给出。

18.1 Nginx#

dnf install -y nginx && systemctl enable --now nginx        # 服务器版
sudo apt install -y nginx && sudo systemctl enable --now nginx  # 桌面版
# 配置校验 + 重载(不改动也不断服务)
nginx -t && systemctl reload nginx

18.2 MySQL / MariaDB#

dnf install -y mariadb-server
systemctl enable --now mariadb
mysql_secure_installation          # 初始化安全设置
# 建库建用户
mysql -uroot -p -e "CREATE DATABASE appdb CHARACTER SET utf8mb4; CREATE USER 'app'@'localhost' IDENTIFIED BY 'StrongPass123'; GRANT ALL ON appdb.* TO 'app'@'localhost';"

18.3 Redis#

dnf install -y redis
systemctl enable --now redis
redis-cli ping                     # 验证 PONG
# 生产必改:/etc/redis/redis.conf
#   bind 127.0.0.1
#   requirepass 你的强密码
systemctl restart redis

⚠️ 部署原则:默认最小开放、端口防火墙只放内网来源、服务用 systemd 托管并设 Restart。


19 常见问题 FAQ#

Q1 安装软件报 “There are no enabled repos”? 软件源未配置。先 dnf repolist / apt update 看源状态,按第 2 章配置。

Q2 程序提示”权限不足”,chmod 777 也没用? 大概率是 KYSEC 执行控制。getstatus 确认,优先加白名单,见第 11 章。

Q3 服务器版能用 apt 吗 / 桌面版能用 dnf 吗? 不能混用。桌面版兼容 yum 命令(内部转 apt),但真正排障用 apt 系命令,见第 1 章。

Q4 启动卡在挂载 / 进维护模式怎么办? findmnt --verify 查 fstab,改前备份,见第 3 章。

Q5 端口监听了但外部连不上? 查监听地址(127.0.0.1 vs 0.0.0.0)和防火墙,见第 5 章。

Q6 xfs 能缩容吗? 不能,xfs 只支持扩容;缩容要重建文件系统,先备份,见第 7 章。

Q7 Docker 容器一启动就退出? docker logs 看应用报错;退出码 137 多为 OOM,见第 10 章。

Q8 怎么知道系统是 x86 还是 arm? uname -m,x86_64 / aarch64 决定软件源与软件包架构,见第 1 章、第 17 章。

Q9 升级内核后系统起不来? GRUB 选旧内核回滚,确认稳定再删旧包,见第 14 章。

Q10 日志重启后就丢了? journald 默认不持久化,配置持久化目录,见第 15 章。

Q11 新程序每次执行都弹安全授权框? KYSEC 处于 warning 模式,将程序认证或加白名单,见第 11 章。

Q12 备份恢复后没效果 / 报错? 先确认恢复路径与权限;备份要定期做恢复演练,见第 8 章。


20 命令速查总表#

场景服务器版(RPM)桌面版(DEB)
查版本cat /etc/os-release · nkverscat /etc/os-release
装软件dnf install 包sudo apt install 包
查/配源/etc/yum.repos.d/ · dnf makecache/etc/apt/sources.list · apt update
防火墙firewall-cmd —list-allsudo ufw status
失败服务systemctl list-units —failed(两系一致)
引导日志journalctl -xb · dmesg -T
端口/监听ss -tlnp · lsof -i :端口
抓包tcpdump -i eth0 port 80 -nn
CPU/内存top · mpstat -P ALL 1 · free -h · vmstat 1
磁盘/分区lsblk -f · df -hT · blkid
LVM 扩容pvresize→lvextend→xfs_growfspvresize→lvextend→resize2fs
脚本检查bash -n · bash -x · shellcheck
Dockerdocker ps -a · docker logs -f · docker inspect
KYSEC 状态getstatus · setstatus(两系均有,命令形态见第 11 章)
备份恢复tar -czpvf · lvcreate -s 快照 · tar -xzpvf(两系通用)
安全加固sshd -t · auditctl · ausearchsudo visudo · sudo passwd
内核参数grub2-mkconfig -o …sudo update-grub
日志管理journalctl —list-boots · logrotate -f(两系一致)
监控告警curl :9100/metrics · zabbix_get(两系一致)
架构识别uname -m · lspci -nnkuname -m
应用部署dnf install nginx/mariadb/redisapt install nginx/mariadb-server/redis

官方资源(建议收藏)#

  • 麒麟软件官网:kylinos.cn(产品文档、安全中心用户手册、常见问题 PDF)
  • 官方软件源:update.cs2c.com.cn / archive.kylinos.cn / archive2.kylinos.cn
  • 社区:openKylin(openkylin.top)开源社区

《银河麒麟操作系统运维实战手册》· 基于 Linux Ops Expert 实战经验 + 麒麟官方文档整理 · 命令形态随版本/架构略有差异,以官方手册与实际输出为准

📑 文章目录(58 节)
  1. 目录#
  2. 01 版本识别——动手前先分清两套生态#
  3. 1.1 产品线速览#
  4. 1.2 识别命令(三行定乾坤)#
  5. 02 软件源与软件包管理#
  6. 2.1 服务器版(RPM 系)#
  7. 2.2 桌面版(DEB 系)#
  8. 03 系统故障定位#
  9. 3.1 系统无法启动——分级抢救#
  10. 3.2 麒麟常见”起不来/异常”根因#
  11. 3.3 通用诊断工具箱(麒麟同样适用)#
  12. 04 systemd 服务管理#
  13. 05 网络排障#
  14. 5.1 双系命令#
  15. 5.2 经典场景:端口明明监听,外部连不上#
  16. 06 性能分析#
  17. 07 存储与磁盘#
  18. 7.1 LVM 磁盘扩容全流程(服务器版常见)#
  19. 08 备份与恢复#
  20. 8.1 系统级打包(最省事)#
  21. 8.2 LVM 快照(在线一致备份,服务器版首选)#
  22. 8.3 恢复(备份的价值在于能恢复)#
  23. 09 Shell 脚本规范#
  24. 10 Docker 运维#
  25. 11 KYSEC 安全机制(麒麟专属,运维必修)#
  26. 11.1 三种安全模式#
  27. 11.2 核心命令#
  28. 11.3 麒麟官方 FAQ 中的 KYSEC 典型故障与解法#
  29. 11.4 KYSEC 排障流程#
  30. 12 通用排障流程框架#
  31. 13 安全加固清单#
  32. 13.1 SSH 加固#
  33. 13.2 密码策略与账户#
  34. 13.3 sudoers 最小授权#
  35. 13.4 审计(auditd)#
  36. 13.5 一分钟自检#
  37. 14 内核与启动管理#
  38. 14.1 GRUB 启动参数#
  39. 14.2 内核模块管理#
  40. 14.3 多内核管理与回滚#
  41. 15 日志管理#
  42. 15.1 journald 持久化(默认日志只在内存,重启丢失)#
  43. 15.2 常用查询#
  44. 15.3 logrotate 轮转#
  45. 16 监控与告警#
  46. 16.1 node_exporter(服务器版示例)#
  47. 16.2 Zabbix(备选)#
  48. 17 国产硬件适配#
  49. 17.1 架构识别与选包#
  50. 17.2 网卡 / 显卡驱动#
  51. 17.3 固件 / 散热类问题#
  52. 18 常用应用部署#
  53. 18.1 Nginx#
  54. 18.2 MySQL / MariaDB#
  55. 18.3 Redis#
  56. 19 常见问题 FAQ#
  57. 20 命令速查总表#
  58. 官方资源(建议收藏)#

← 回到首页

评论

评论加载中…