潮流有货 2025-09-28 23:35 采纳率: 98.6%
浏览 0
已采纳

麒麟服务器版系统监控服务启动失败

麒麟服务器版系统监控服务启动失败常见问题:在部署或重启过程中,`kylin-monitor-service` 服务无法正常启动,系统日志提示“Failed to start Monitoring Service: unit not found”或“Dependency failed”。该问题多因服务单元文件缺失、路径配置错误或依赖组件(如 systemctl 服务注册异常、Java 环境未就绪)未正确安装所致。此外,SELinux 或防火墙策略限制、监控服务权限不足亦可能导致启动中断。需检查 `/etc/systemd/system/kylin-monitor.service` 文件完整性,确认服务注册状态,并通过 `journalctl -u kylin-monitor-service` 定位具体错误。
  • 写回答

1条回答 默认 最新

  • 小丸子书单 2025-09-28 23:35
    关注

    1. 问题现象与初步排查

    在麒麟服务器版系统部署或重启过程中,常出现 kylin-monitor-service 启动失败的情况。典型错误日志包括:

    • Failed to start Monitoring Service: unit not found
    • Dependency failed
    • Unit kylin-monitor.service not loaded: Bad message

    此类提示通常表明 systemd 无法识别该服务单元,首要检查点为服务文件是否存在及路径是否正确。应确认 /etc/systemd/system/kylin-monitor.service 文件存在且具备可读权限。

    2. 深层原因分析:从配置到依赖链

    服务启动失败的根本原因可分为以下几类,按影响层级递进分析:

    类别具体原因检测方式
    配置缺失服务单元文件未创建或路径错误ls /etc/systemd/system/kylin-monitor.service
    注册异常systemd 未加载服务定义systemctl list-unit-files | grep kylin-monitor
    环境依赖Java 运行时未安装或版本不兼容java -version, 查看服务脚本中 JAVA_HOME 配置
    权限限制SELinux 策略阻止执行,或文件权限不足sestatus, ls -l /opt/kylin-monitor/
    网络策略防火墙阻断监控端口(如 9090)firewall-cmd --list-ports

    3. 故障诊断流程图

    ```mermaid
    graph TD
        A[服务启动失败] --> B{kylin-monitor.service 存在?}
        B -- 否 --> C[重建服务单元文件]
        B -- 是 --> D[systemctl daemon-reload]
        D --> E{服务注册成功?}
        E -- 否 --> F[检查语法错误]
        E -- 是 --> G[检查 Java 环境]
        G --> H{java -version 正常?}
        H -- 否 --> I[安装 JDK 并配置环境变量]
        H -- 是 --> J[查看 journal 日志]
        J --> K[journalctl -u kylin-monitor-service]
        K --> L{是否存在 Permission denied?}
        L -- 是 --> M[调整 SELinux 或 chmod]
        L -- 否 --> N[检查依赖服务状态]
    ```
    

    4. 解决方案实施步骤

    1. 确认服务文件存在:
      sudo ls -l /etc/systemd/system/kylin-monitor.service
    2. 若文件缺失,需重新生成标准 unit 文件:
    [Unit]
    Description=Kylin Monitoring Service
    After=network.target
    
    [Service]
    Type=simple
    User=monitor
    ExecStart=/opt/kylin-monitor/bin/start.sh
    Restart=on-failure
    Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk
    
    [Install]
    WantedBy=multi-user.target
    
    1. 重载 systemd 配置:
      sudo systemctl daemon-reload
    2. 启用并尝试启动服务:
      sudo systemctl enable kylin-monitor.service && sudo systemctl start kylin-monitor.service
    3. 使用日志工具追踪具体错误:
      journalctl -u kylin-monitor-service -f --since "5 minutes ago"
    4. 若日志显示 Permission denied,检查 SELinux 状态:
      getenforce,临时设为 Permissive:
      sudo setenforce 0
    5. 验证 Java 环境就绪:
      确保 JAVA_HOME 在启动脚本中正确定义,并测试可执行性。
    6. 开放必要端口(如 9090):
      sudo firewall-cmd --add-port=9090/tcp --permanent && firewall-cmd --reload
    7. 最后验证服务状态:
      systemctl status kylin-monitor-service
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 9月28日