Linux集群管理Cockpit

硬件管理可以依赖服务器的IPMI管理口,通过SSH远程执行命令,来获取相应的硬件信息。
业务或者系统的监控可以使用Zabbix,但这需要额外一台机器来搭建zabbix,并且搭建过程还算比较繁琐,配置也比较复杂。如果只想简单的监控一下系统的内存、CPU、磁盘的负载情况,可以使用Centos8自带的Cockpit,当然Centos7也可以安装。

介绍

Cockpit是一个免费且开源的基于web的管理工具,系统管理员可以执行诸如存储管理、网络配置、检查日志、管理容器等任务。通过Cockpit提供的友好的Web前端界面可以轻松地管理Linux服务器,非常轻量级,Web界面也非常简单易用,更重要的是通过Cockpit可以实现集中式管理。

功能和特点

  1. Cockpit使用systemd完成从运行守护进程到服务几乎所有的功能
  2. 集中式管理,通过一个会话窗口管理网络中的所有Linux服务器
  3. 创建和管理Docker容器
  4. 创建和管理KVM、oVirt虚拟机
  5. 包括LVM在内的存储配置
  6. 基本的网络配置管理
  7. 用户user account管理
  8. 基于web的终端
  9. 图形化的系统性能展示
  10. 使用sosreport收集系统配置和诊断信息
  11. 支持Debian, Redhat, CentOS, Fedora, Atomic, Arch Linux, and Ubuntu.

模块

Cockpit的一些软件模块,可以根据自己的需要选择性的安装

  • cockpit-docker:管理Docker容器
  • cockpit-kubernetes:可视化和配置Kubernetes群集
  • cockpit-machines:管理KVM虚拟机
  • cockpit-machines-ovirt:管理oVirt虚拟机
  • cockpit-sosreport:使用sosreport工具创建诊断报告
  • cockpit-selinux:解决SELinux问题
  • cockpit-kdump:配置内核崩溃转储
  • cockpit-subscriptions:管理系统订阅
  • cockpit-pcp:读取PCP指标并加载PCP归档

系统环境介绍

管理节点mgmt-192.168.1.10
被管理节点node1-192.168.1.11
被管理节点node2-192.168.1.12

实施

  1. 首先实现无密码ssh此步非必须,如果不执行此步,后续添加被管理节点时需要输入用户名和密码
# mgmt
ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa -q
ssh-copy-id -i root@192.168.1.11
ssh-copy-id -i root@192.168.1.12
  1. 安装并启动Cockpit
# 所有机器
yum -y install cockpit cockpit-dashboard cockpit-storaged cockpit-packagekit
systemctl enable cockpit.socket
systemctl start cockpit.socket
# 如果开启了防火墙,则需要执行以下命令
# firewall-cmd --permanent --add-service=cockpit
# firewall-cmd --reload
  1. 登陆
# 只需要登陆管理节点,然后用户名和密码为root用户的
https://192.168.1.10:9090
用户名root,密码123456
  1. 添加被管理节点node
    添加被管理节点node
    点击dashboard左侧的仪表盘,点击右下角的加号,添加其他主机,因为前面已经实现了无密码ssh,所以再次只需要填写IP即可,结果如下:
    结果

功能介绍

Cockpit功能选项中的内容取决于都当装有哪些功能模块
功能介绍

  1. 系统
    系统页面提供主机的硬件信息、各类负载和重启等功能,点击硬件名称可以查看系统硬件信息,主要是查看系统的PCI设备
    系统
  2. 日志
    日志查看器Cockpit将日志信息分为错误、警告、注意等不同的分类,可以看出是按事件的级别来分类的
  3. 存储
    Cockpit可以方便地查看硬盘的读写速度,可以查看存储的Journal日志以便进行故障排除和修复。
    在页面中还有一个已用空间的可视化图,在存储页面可以卸载、格式化、删除一块硬盘的某个分区。
    还有类似创建RAID设备、LVM卷组、开启NFS和VDO等功能
    存储
  4. 网络此功能需要开启NetworkManager
    在网络页面可以看到两个可视化发送和接收速度的图,还可以看到可用网卡的列表,可以对网卡进行绑定、桥接以及配置VLAN,点击网卡就可以进行编辑操作,最下面是网络的Journal日志信息
    网络
  5. 账户
    在账号页面中可以添加或删除系统账户,也可以对账号进行编辑
  6. 服务
    服务被分成了5个类别:目标、系统服务、套接字、计时器和路径,单击服务名称可以对其进行更多的管理操作,例如重启、关闭、禁用等
  7. 终端
    Cockpit界面提供实时终端执行任务,这使我们可以根据需求在Web界面和终端之间自由切换,可以快速执行任务,操作非常方便
  8. Diagnostic Report需要安装并启用sosreport utility
    通过cockpit的诊断报告功能,可以快速的生成系统的sosreport,并且可以下载到本地
  9. SELinux需要开启SELinux,但是一般此功能我们在业务机器上都会禁用
  10. 虚拟机
    如果被监控的主机为KVM主机,那么其中运行的虚拟机也可以在cockpit中进行管理操作,在虚拟机页面中会列出当前主机中的所有KVM虚拟机,下面是使用cockpit创建虚拟机的一些注意事项:
    1. Cockpit中只能对虚拟机做简单的配置编辑
    2. 虚拟机创建完成后,不能对内存容量进行修改
    3. 新建虚拟机时,无法对网卡进行配置,它会自动使用KVM中的默认设置;无法选择安装到哪个存储池,它会将VM自动安装到KVM中默认的存储池中
    4. 对于虚拟机的管理,使用中发现如果安装了 oVirt Virtual Machines的模块,Cockpit中就无法对KVM虚拟机进行管理
    5. 在Cockpit中,被管主机可以是物理主机,也可以是虚拟主机,测试中对物理主机、KVM虚拟机和VMware机都进行了测试,都可以正常管理