​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具

哪吒监控支持系统状态、HTTP (SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,命令批量执行和计划任务。面板自带三套主题都非常不错,可以说既做到了满足监控运维的需求又得到赏心悦目的审美体验。-> 项目地址

界面预览

​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图 ​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图1

 

一些准备

1、服务器数量不少于两台。
2、准备两个域名可以是子域名,例如 a.xxx.cn(用于面板访问) 与 b.xxx.cn(用于Agent对接Dashboard)
3、防护墙放行端口:8008、5555;

创建 OAuth2 授权服务

打开 https://github.com/settings/developers 注册一个 OAuth ap­pli­ca­tion,所填信息及要求如下:

Application name : (随意取名)
Homepage URL :http://ip:8008 (默认端口8008)
Application description:(可选项可不填)
Authorization callback URL:http://ip:8008/oauth2/callback (默认端口8008)

记录 Client ID 及对应的 Client Secret 安装面板的时候会用到。

​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图2

如果看不到 Client Secret 可以点击 Generate a new client secret 再生成一个。

服务端面板安装

curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh
sudo ./nezha.sh

输入 1 回车,安装面板端

​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图3

按要求正确输入

1.请输入 OAuth2 提供商(gitee/github,默认 github):
(默认,回车)
2.请输入 Oauth2 应用的 Client ID :
(输入之前创建的Client ID)
3.请输入 Oauth2 应用的 Client Secret:
(输入之前创建的Client Secret)
4.请输入 GitHub/Gitee 登录名作为管理员,多个以逗号隔开:
(填写github的用户名)
5.请输入站点标题:
(填写后,回车)
6.请输入站点访问端口: (8008)
(回车)
7.请输入用于 Agent 接入的 RPC 端口: (5555)
(回车)

以上,完成面板安装。

添加监控服务器

浏览器输入 http://ip:8008/login,点击登录会自动跳转到 Github,若 Github 是已登录的状态则会成功跳转回来。
​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图4
点击管理后台 - 添加服务器 - 输入名称确定,添加一个监控机器,并记录下对应的密钥。

​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图5

监控的机器进入 SSH 终端运行安装脚本:

curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh
sudo ./nezha.sh

输入 8 回车,安装监控 Agent。

​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图6

按要求填写下列信息(这里的 b.vvso.cn 用于 Agent 对接 Dash­board 所准备的域名,请替换为自己的):

1.请输入一个解析到面板所在IP的域名(不可套CDN):
(b.vvso.cn,回车)
2.请输入面板RPC端口: (5555)
(回车)
3.请输入Agent 密钥:
(填写后台新增监控服务器对应的密钥)

以上,完成监控端部署,部分设备例如 MT7621 系列路由器暂时需要手动安装 nezha-agent。

 

反向代理

觉得使用 http://ip:8008 访问控制面板太麻烦,可以使用 Ng­inx 反向代理来绑定域名以及使用 https。

server{
    listen 80;
    server_name  a.vvso.cn;
    rewrite ^/(.*)$  https://a.vvso.cn/$1 permanent;
}

server {
    listen 443 ssl http2;
    server_name  a.vvso.cn;
    ssl_certificate /etc/nginx/ssl/fullchain.cer;
    ssl_certificate_key  /etc/nginx/ssl/vvso.cn.key;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_trusted_certificate /etc/nginx/ssl/fullchain.cer;
    resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=3600s;
    resolver_timeout 2s;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000";
    # 反代配置
    location /
    {
        proxy_pass http://127.0.0.1:8008;
        proxy_set_header Host $host;
    }
    location /ws
    {
        proxy_pass http://127.0.0.1:8008;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;
    }
}

然后打开 https://github.com/settings/developers 修改之前创建的 OAuth ap­pli­ca­tion 信息:

Homepage URL :https://a.vvso.cn (替换为面板准备的域名)
Authorization callback URL:https://a.vvso.cn/oauth2/callback (替换为面板准备的域名)

此时可以使用域名直接访问,若后台登录返回 github 的 404 页面,请重启一下面板即可。

 

自定义主题

这一款哪吒监控透明主题,比较好看,搜集自网络

使用方法:用哪吒的默认主题,复制下方主题代码,粘贴到自定义代码里面保存即可

哪吒透明主题代码
​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图7
<style>/* 屏幕适配 */

@media only screen and (min-width: 1200px) {

    .ui.container {

    width: 80% !important;

}

}



@media only screen and (max-width: 767px) {

    .ui.card>.content>.header:not(.ui), .ui.cards>.card>.content>.header:not(.ui) {

        margin-top: 0.4em !important;

    }

}



/* 整体图标 */

i.icon {

    color: #000;

    width: 1.2em !important;

}



/* 背景图片 */

body {

    content: " " !important;

    background: fixed !important;

    z-index: -1 !important;

    top: 0 !important;

    right: 0 !important;

    bottom: 0 !important;

    left: 0 !important;

    background-position: top !important;

    background-repeat: no-repeat !important;

    background-size: cover !important;

    background-image: url(https://gitee.com/darki/img/raw/master/1631081013043.webp) !important;

    font-family: Arial,Helvetica,sans-serif !important;

}



/* 导航栏 */

.ui.large.menu {

    border: 0 !important;

    border-radius: 0px !important;

    background-color: rgba(255, 255, 255, 55%) !important;

}



/* 首页按钮 */

.ui.menu .active.item {

    background-color: transparent !important;

}



/* 导航栏下拉框 */

.ui.dropdown .menu {

    border: 0 !important;

    border-radius: 0 !important;

    background-color: rgba(255, 255, 255, 80%) !important;

}



/* 登陆按钮 */

.nezha-primary-btn {

    background-color: transparent !important;

    color: #000 !important;

}



/* 大卡片 */

#app .ui.fluid.accordion {

    background-color: #fbfbfb26 !important;

    border-radius: 0.4rem !important;

}



/* 小卡片 */

.ui.four.cards>.card {

    border-radius: 0.6rem !important;

    background-color: #fafafaa3 !important;

}



.status.cards .wide.column {

    padding-top: 0 !important;

    padding-bottom: 0 !important;

    height: 3.3rem !important;

}



.status.cards .three.wide.column {

    padding-right: 0rem !important;

}



.status.cards .wide.column:nth-child(1) {

    margin-top: 2rem !important;

}



.status.cards .wide.column:nth-child(2) {

    margin-top: 2rem !important;

}



.status.cards .description {

    padding-bottom: 0 !important;

}



/* 小鸡名 */

.status.cards .flag {

    margin-right: 0.5rem !important;

}



/* 弹出卡片图标 */

.status.cards .header > .info.icon {

    margin-right: 0 !important;

}



.nezha-secondary-font {

    color: #21ba45 !important;

}



/* 进度条 */

.ui.progress {

    border-radius: 50rem !important;

}



.ui.progress .bar {

    min-width: 1.8em !important;

    border-radius: 15px !important;

    line-height: 1.65em !important;

}



.ui.fine.progress> .bar {

    background-color: #21ba45 !important;

}



.ui.progress> .bar {

    background-color: #000 !important;

}



.ui.progress.fine .bar {

    background-color: #21ba45 !important;

}



.ui.progress.warning .bar {

    background-color: #ff9800 !important;

}



.ui.progress.error .bar {

    background-color: #e41e10 !important;

}



.ui.progress.offline .bar {

    background-color: #000 !important;

}



/* 上传下载 */

.status.cards .outline.icon {

    margin-right: 1px !important;

}



i.arrow.alternate.circle.down.outline.icon {

    color: #21ba45 !important;

}



i.arrow.alternate.circle.up.outline.icon {

    color: red !important;

}



/* 弹出卡片小箭头 */

.ui.right.center.popup {

    margin: -3px 0 0 0.914286em !important;

    -webkit-transform-origin: left 50% !important;

    transform-origin: left 50% !important;

}



.ui.bottom.left.popup {

    margin-left: 1px !important;

    margin-top: 3px !important;

}



.ui.top.left.popup {

    margin-left: 0 !important;

    margin-bottom: 10px !important;

}



.ui.top.right.popup {

    margin-right: 0 !important;

    margin-bottom: 8px !important;

}



.ui.left.center.popup {

    margin: -3px .91428571em 0 0 !important;

    -webkit-transform-origin: right 50% !important;

    transform-origin: right 50% !important;

}



.ui.right.center.popup:before,

.ui.left.center.popup:before {

    border: 0px solid #fafafaeb !important;

    background: #fafafaeb !important;

}



.ui.top.popup:before {

    border-color: #fafafaeb transparent transparent !important;

}



.ui.popup:before {

    border-color: #fafafaeb transparent transparent !important;

}



.ui.bottom.left.popup:before {

    border-radius: 0 !important;

    border: 1px solid transparent !important;

    border-color: #fafafaeb transparent transparent !important;

    background: #fafafaeb !important;

    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;

    box-shadow: 0px 0px 0 0 #fafafaeb !important;

    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;

}



.ui.bottom.right.popup:before {

    border-radius: 0 !important;

    border: 1px solid transparent !important;

    border-color: #fafafaeb transparent transparent !important;

    background: #fafafaeb !important

    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;

    box-shadow: 0px 0px 0 0 #fafafaeb !important;

    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;

}



.ui.top.left.popup:before {

    border-radius: 0 !important;

    border: 1px solid transparent !important;

    border-color: #fafafaeb transparent transparent !important;

    background: #fafafaeb !important;

    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;

    box-shadow: 0px 0px 0 0 #fafafaeb !important;

    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;

}



.ui.top.right.popup:before {

    border-radius: 0 !important;

    border: 1px solid transparent !important;

    border-color: #fafafaeb transparent transparent !important;

    background: #fafafaeb !important;

    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;

    box-shadow: 0px 0px 0 0 #fafafaeb !important;

    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;

}



.ui.left.center.popup:before {

    border-radius: 0 !important;

    border: 1px solid transparent !important;

    border-color: #fafafaeb transparent transparent !important;

    background: #fafafaeb !important;

    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;

    box-shadow: 0px 0px 0 0 #fafafaeb !important;

    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;

}



/* 弹出卡片 */

.status.cards .ui.content.popup {

    min-width: 20rem !important;

    line-height: 2rem !important;

    border-radius: 5px !important;

    border: 1px solid transparent !important;

    background-color: #fafafaeb !important;

    font-family: Arial,Helvetica,sans-serif !important;

}



.ui.content {

    margin: 0 !important;

    padding: 1em !important;

}



/* 服务页 */

.ui.table {

    background: RGB(225,225,225,0.6) !important;

}



.ui.table thead th {

    background: transparent !important;

}



/* 服务页进度条 */

.service-status .good {

    background-color: #21ba45 !important;

}



.service-status .danger {

    background-color: red !important;

}



.service-status .warning {

    background-color: orange !important;

}



/* 版权 */

.ui.inverted.segment, .ui.primary.inverted.segment {

    color: #000 !important;

    font-weight: bold !important;

    background-color: #fafafaa3 !important;

}style>


<script>window.onload = function(){

var avatar=document.querySelector(".item img")

var footer=document.querySelector("div.is-size-7")

footer.innerHTML="奶妈监控面板 and 我扒的CSS"

footer.style.visibility="visible"

avatar.src="https://ii.do/favicon.ico"

avatar.style.visibility="visible"

}script>

方案二:

​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具插图8

 <style>
/* 屏幕适配 */
@media only screen and (min-width: 1200px) {
    .ui.container {
    width: 80% !important;
}
}

@media only screen and (max-width: 767px) {
    .ui.card>.content>.header:not(.ui), .ui.cards>.card>.content>.header:not(.ui) {
        margin-top: 0.4em !important;
    }
}

/* 整体图标 */
i.icon {
    color: #000;
    width: 1.2em !important;
}

/* 背景图片 */
body {
    content: " " !important;
    background: fixed !important;
    z-index: -1 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: 0 !important;
    background-position: top !important;
    background-repeat: no-repeat !important;
    background-size: cover !important;
    background-image: url(/monitor/img/yucong-tang-.jpg) !important;
    font-family: Arial,Helvetica,sans-serif !important;
}

/* 导航栏 */
.ui.large.menu {
    border: 0 !important;
    border-radius: 0px !important;
    background-color: rgba(255, 255, 255, 55%) !important;
}

/* 首页按钮 */
.ui.menu .active.item {
    background-color: transparent !important;
}

/* 导航栏下拉框 */
.ui.dropdown .menu {
    border: 0 !important;
    border-radius: 0 !important;
    background-color: rgba(255, 255, 255, 80%) !important;
}

/* 登陆按钮 */
.nezha-primary-btn {
    background-color: transparent !important;
    color: #000 !important;
}

/* 大卡片 */
#app .ui.fluid.accordion {
    background-color: #fbfbfb26 !important;
    border-radius: 0.4rem !important;
}

/* 小卡片 */
.ui.four.cards>.card {
    border-radius: 0.6rem !important;
    background-color: #fafafaa3 !important;
}

.status.cards .wide.column {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    height: 3.3rem !important;
}

.status.cards .three.wide.column {
    padding-right: 0rem !important;
}

.status.cards .wide.column:nth-child(1) {
    margin-top: 2rem !important;
}

.status.cards .wide.column:nth-child(2) {
    margin-top: 2rem !important;
}

.status.cards .description {
    padding-bottom: 0 !important;
}

/* 小鸡名 */
.status.cards .flag {
    margin-right: 0.5rem !important;
}

/* 弹出卡片图标 */
.status.cards .header > .info.icon {
    margin-right: 0 !important;
}

.nezha-secondary-font {
    color: #21ba45 !important;
}

/* 进度条 */
.ui.progress {
    border-radius: 50rem !important;
}

.ui.progress .bar {
    min-width: 1.8em !important;
    border-radius: 15px !important;
    line-height: 1.65em !important;
}

.ui.fine.progress> .bar {
    background-color: #21ba45 !important;
}

.ui.progress> .bar {
    background-color: #000 !important;
}

.ui.progress.fine .bar {
    background-color: #21ba45 !important;
}

.ui.progress.warning .bar {
    background-color: #ff9800 !important;
}

.ui.progress.error .bar {
    background-color: #e41e10 !important;
}

.ui.progress.offline .bar {
    background-color: #000 !important;
}

/* 上传下载 */
.status.cards .outline.icon {
    margin-right: 1px !important;
}

i.arrow.alternate.circle.down.outline.icon {
    color: #21ba45 !important;
}

i.arrow.alternate.circle.up.outline.icon {
    color: red !important;
}

/* 弹出卡片小箭头 */
.ui.right.center.popup {
    margin: -3px 0 0 0.914286em !important;
    -webkit-transform-origin: left 50% !important;
    transform-origin: left 50% !important;
}

.ui.bottom.left.popup {
    margin-left: 1px !important;
    margin-top: 3px !important;
}

.ui.top.left.popup {
    margin-left: 0 !important;
    margin-bottom: 10px !important;
}

.ui.top.right.popup {
    margin-right: 0 !important;
    margin-bottom: 8px !important;
}

.ui.left.center.popup {
    margin: -3px .91428571em 0 0 !important;
    -webkit-transform-origin: right 50% !important;
    transform-origin: right 50% !important;
}

.ui.right.center.popup:before,
.ui.left.center.popup:before {
    border: 0px solid #fafafaeb !important;
    background: #fafafaeb !important;
}

.ui.top.popup:before {
    border-color: #fafafaeb transparent transparent !important;
}

.ui.popup:before {
    border-color: #fafafaeb transparent transparent !important;
}

.ui.bottom.left.popup:before {
    border-radius: 0 !important;
    border: 1px solid transparent !important;
    border-color: #fafafaeb transparent transparent !important;
    background: #fafafaeb !important;
    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;
    box-shadow: 0px 0px 0 0 #fafafaeb !important;
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
}

.ui.bottom.right.popup:before {
    border-radius: 0 !important;
    border: 1px solid transparent !important;
    border-color: #fafafaeb transparent transparent !important;
    background: #fafafaeb !important
    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;
    box-shadow: 0px 0px 0 0 #fafafaeb !important;
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
}

.ui.top.left.popup:before {
    border-radius: 0 !important;
    border: 1px solid transparent !important;
    border-color: #fafafaeb transparent transparent !important;
    background: #fafafaeb !important;
    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;
    box-shadow: 0px 0px 0 0 #fafafaeb !important;
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
}

.ui.top.right.popup:before {
    border-radius: 0 !important;
    border: 1px solid transparent !important;
    border-color: #fafafaeb transparent transparent !important;
    background: #fafafaeb !important;
    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;
    box-shadow: 0px 0px 0 0 #fafafaeb !important;
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
}

.ui.left.center.popup:before {
    border-radius: 0 !important;
    border: 1px solid transparent !important;
    border-color: #fafafaeb transparent transparent !important;
    background: #fafafaeb !important;
    -webkit-box-shadow: 0px 0px 0 0 #fafafaeb !important;
    box-shadow: 0px 0px 0 0 #fafafaeb !important;
    -webkit-tap-highlight-color: rgba(0,0,0,0) !important;
}

/* 弹出卡片 */
.status.cards .ui.content.popup {
    min-width: 20rem !important;
    line-height: 2rem !important;
    border-radius: 5px !important;
    border: 1px solid transparent !important;
    background-color: #fafafaeb !important;
    font-family: Arial,Helvetica,sans-serif !important;
}

.ui.content {
    margin: 0 !important;
    padding: 1em !important;
}

/* 服务页 */
.ui.table {
    background: RGB(225,225,225,0.6) !important;
}

.ui.table thead th {
    background: transparent !important;
}

/* 服务页进度条 */
.service-status .good {
    background-color: #21ba45 !important;
}

.service-status .danger {
    background-color: red !important;
}

.service-status .warning {
    background-color: orange !important;
}

/* 版权 */
.ui.inverted.segment, .ui.primary.inverted.segment {
    color: #000 !important;
    font-weight: bold !important;
    background-color: #fafafaa3 !important;
}
</style>

<!--Logo和版权-->
<script>
window.onload = function(){
var avatar=document.querySelector(".item img")
var footer=document.querySelector("div.is-size-7")
footer.innerHTML="稻草人的服务器监控面板"
footer.style.visibility="visible"
avatar.src="/monitor/img/favicon.ico"
avatar.style.visibility="visible"
}
</script> 

 

温馨提示:
本文最后更新于:2023-05-16 ,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
版权声明 1. 本网站名称:稻草人笔记   永久网址:https://www.facekun.com
2. 本文链接:​​哪吒监控:一个开源、轻量的服务器和网站监控、运维工具: https://www.facekun.com/arts/179.html
3. 部分文章内容来源于网络,仅作为学习展示之用,版权归原作者所有
4. 因部分文章网络流转次数较多,已无法追溯至原作者,若遗漏导致侵犯了您的权益,请您来信告知我,确认后会尽快删除。
5. 本站禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6. 如无特别声明本文即为原创文章仅代表个人观点,版权归《稻草人笔记》所有,欢迎转载,转载请保留原文链接。
THE END
分享
二维码
< <上一篇
下一篇>>