编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

好物推荐 - cockpit(好物推荐背景图)

wxchong 2024-08-30 03:45:08 开源技术 20 ℃ 0 评论

本文永久链接:https://www.xy1413.com/p/goodthings_cockpit/

背景

一直以来,我对于Linux服务器管理都是使用ssh远程登陆服务器,然后通过命令行进行操作。但是这种方式不但繁琐得要死,而且很不直观,很难直观的观察整个服务器的状态。于是我就在网上找服务器web ui,通过不断的努力,终于让我找到了一个不错的开源软件 - cockpit。

其实这里很多人会说宝塔、1panel 之类的,但实际上很多人都有个误区:网站管理 =/= 服务器管理。

cockpit介绍


cockpit是红帽推出的(现在好像是独立开发了)免费开源的Linux服务器web 管理工具,包括查看系统状态、管理存储空间(包括 raid、nfs 等)、查询日志、用户帐户管理、服务管理、软件更新等功能,最重要的是其还自带一个基于 web 的终端,可以实现所有通过 ssh 远程管理服务器的功能。

cockpit不但可以管理单台服务器,还可以通过添加本地或远程其他服务器实现集中式管理,不再需要一一登陆不同服务器,单次登陆即可实现在不同服务器之间无缝切换。

cokcpit简单易用,可以通过插件扩展功能,以实现如虚拟机管理、文件共享等功能。同时由于cockpit 是基本 web 的,所以可以实现在不同终端对服务器进行管理。

cockpit安装

cockpit现在开发比较活跃,版本更新较快,所以系统自带仓库的版本可能比较落后。以我的Ubuntu服务器为例,需要使用backports仓库才能下载最新的版本。

# install cockpit
sudo apt install -t jammy-backports cockpit
# 虚拟机管理
sudo apt install -t jammy-backports cockpit-machines
# 开启服务
sudo systemctl enable cockpit.service cockpit-wsinstance-http.service.service --now

其他Linux发行版本的具体安装方法,可以参考官方文档。

这里有一点可惜的地方,cockpit 不支持 Docker 管理。本来是有个cockpit-docker的插件,但官方将其抛弃了,投入了podman的怀抱。不过没关系,下期我再介绍个 docker 管理工具。

Nginx反向代理

cockpit默认监听9090端口,在上一步安装完成后就可以通过ip:9090访问服务器了,为了更方便对服务器进行管理,同时避免修改端口规则,我们可以通过Ningx反向代理来访问cockpit

子域名访问

这个应该是最简单的

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    server_name <your domain>;

    # ssl设置
    ...

    location / {
        proxy_pass          http://127.0.0.1:9090;
        
        proxy_http_version  1.1;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Connection          "upgrade";
        
        proxy_set_header    Host                $host:$server_port;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Real-PORT         $remote_port;
        
        proxy_set_header    X-Forwarded-Host    $http_host;
        proxy_set_header    X-Forwarded-Proto   $scheme;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;

        # https://github.com/cockpit-project/cockpit/wiki/Proxying-Cockpit-over-NGINX
        proxy_buffering     off;
        gzip off;
    }
}

通过你的子域名直接访问服务器。

子目录访问

添加以下内容到你的server中:

    location /cockpit/ {
        proxy_pass          http://127.0.0.1:9090;
        proxy_http_version  1.1;
        proxy_set_header    Upgrade             $http_upgrade;
        proxy_set_header    Connection          "upgrade";
        
        proxy_set_header    Host                $host:$server_port;
        proxy_set_header    X-Real-IP           $remote_addr;
        proxy_set_header    X-Real-PORT         $remote_port;
        
        proxy_set_header    X-Forwarded-Host    $http_host;
        proxy_set_header    X-Forwarded-Proto   $scheme;
        proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
        
        proxy_buffering off;
        gzip off;
    }

通过<yours domain>/cockpit/即可访问你的服务器了。

集群管理

如果你的服务器是作为集群的一部分,通过其他机器的cockpit访问,则无需配置Ningx反向代理和端口,只需要添加主控机器的 ssh key到服务器即可。

# 生成ssh key,一路回车即可
ssh-keygen
# 将key拷贝到远程服务器
ssh-copy-id -p <ssh 端口> <用户名>@<服务器IP>

然后在主控机器上添加新服务器即可:


结束

剩下的就是好好享受 cockpit 了。

我个人对 cockpit 比较满意的是:

  1. 轻量级、可扩展、大厂出品;
  2. 简单易上手,根本没有学习成本;
  3. 极大的解放双手,同时提高效率;
  4. 集群管理,单点登陆真的很方便;
  5. 集成终端,没有什么是不可能的;

版权声明 ?

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表