私は以前、卵を一つのバスケットに入れないという方針を持っており、商家がいくつかの活動を行い、年払いのマシンを販売するのが比較的お得だったため、絶えず小さなサーバーを購入していました。手元には最大で 20 台以上のマシンがあり、性能の良いものから普通のものまで様々でした。以前は基本的に小さなサーバーに針を刺すことはなく、手元に一、二十台あってもまとめて管理するのが面倒だと思っていました。あまり役に立たないと思っていたので、せいぜいそのサーバーで特定のプログラムを実行してドメインを掛けて、監視アラートを設定するだけでした。
現在、まだ十数台の小さなサーバーがあり、最近「哪吒探针」を導入しましたが、見た目がなんとなく良い感じです。
去年の初めに CLOUDCONE で購入した数台のゴミのようなサーバーが、今年の初めに自動的にクレジットカードから引き落とされました。年払いなので仕方なく使っていますが、今ではすべて活用しています。
オンライン時間は比較的新しく、使用前にシステムを再インストールするのが好きです。
構築チュートリアル:#
「哪吒探针」公式ドキュメント:https://nezha.wiki/
GitHub:https://github.com/naiba/nezha
まず、パネル用に 1 台の VPS サーバーを準備し、監視用に数台の VPS サーバーを準備します。
2 つのドメインをパネルサーバーに解析します。一つは CDN を通してパネルにアクセスするために使用し、もう一つは通信のための通信端として使用します(サーバーの IP を使うことも可能です)。CDN は WebSocket プロトコルをサポートする必要があります。
ドメインアクセス用に nginx のリバースプロキシを準備し、宝塔パネルを使ってリバースプロキシを設定することも可能です。
パネルサーバーの構築#
GitHub のクライアント ID とシークレットを取得
「哪吒探针」は GitHub、Gitlab、Gitee をバックエンド管理者アカウントとして接続するため、第三者ログインアプリケーションを作成する必要があります。
ここでは GitHub を使用してデモを行います(まず GitHub ページにログインしてください):
次に、https://github.com/settings/developers を開き、「OAuth Apps」 - 「New OAuth App」を選択します。
Application name
- 任意で記入 Homepage URL
- パネルのアクセスドメインを記入
例:"http://cdn.example.com" (あなたのドメイン)Authorization callback URL
- コールバックアドレスを記入
例:"http://cdn.example.com/oauth2/callback" (/oauth2/callback
を忘れないでください)
「Register application」をクリックします。
ページ内のクライアント ID を保存し、「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
もしあなたのパネルサーバーが中国本土にある場合、ミラーを使用できます:
curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
-
Docker のインストールが完了するのを待ち、以下の値を入力します:
-
OAuth プロバイダー - Github、Gitlab、Gitee のいずれかを選択
-
Client ID - 以前に保存したクライアント ID
-
Client Secret - 以前に保存したシークレット
-
ユーザー名 - OAuth プロバイダーのユーザー名
-
サイトタイトル - カスタムサイトタイトル
-
アクセスポート - 公開アクセスポート、カスタマイズ可能、デフォルトは 8008
-
エージェントの通信ポート - エージェントとダッシュボードの通信ポート、デフォルトは 5555
-
入力が完了したら、イメージのプルを待ちます。
-
インストールが終了したら、すべてが正常であれば、ドメイン + ポート番号(例:"http://cdn.example.com:8008")にアクセスしてパネルを確認できます。
-
将来的に再度スクリプトを実行する必要がある場合は、次のコマンドを実行します:
./nezha.sh
管理スクリプトを開くために。
リバースプロキシの設定
宝塔パネルで新しいサイトを作成し、ドメインに公開アクセスドメインを記入します(例:"http://cdn.example.com")。次に、「設定」をクリックしてサイト設定オプションに入り、「リバースプロキシ」 - 「新しいリバースプロキシ」を選択します。
プロキシ名をカスタマイズし、下の「ターゲット URL」に http://127.0.0.1 を入力し、「保存」をクリックします。
先ほど作成したリバースプロキシの右側にある「設定ファイル」を開き、設定ファイルを以下の内容に置き換えて保存します:
#PROXY-START/
location / {
proxy_pass http://127.0.0.1:8008;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
}
location ~ ^/(ws|terminal/.+)$ {
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 $http_host;
}
#PROXY-END/
「保存」をクリックすると、今すぐドメイン(例:"http://cdn.example.com")を使ってパネルにアクセスできるはずです。
監視端の構築#
現在、「哪吒探针」は Windows と Linux でエージェントをワンクリックでインストールすることをサポートしており、サーバーに簡単にデプロイできます。
準備作業#
事前に管理パネルで通信ドメインを設定する必要があります。このドメインは CDN に接続できません。ここでは、例として通信ドメイン「data.example.com」を使用します。
管理パネルに入り、「設定」ページに移動し、「CDN に接続されていないパネルサーバーのドメイン / IP」項目に通信ドメインを入力し、「保存」をクリックします。
Linux でのワンクリックインストール(Ubuntu、Debian、CentOS)#
まず、管理パネルにサーバーを追加します。
新しく追加したサーバーの横にある緑色の Linux アイコンボタンをクリックし、ワンクリックインストールコマンドをコピーします。
制御対象のサーバーでコピーしたワンクリックインストールコマンドを実行し、インストールが完了したらダッシュボードのホームページに戻ってサーバーがオンラインかどうかを確認します。
Windows でのワンクリックインストール#
まず、管理パネルにサーバーを追加します。
新しく追加したサーバーの横にある緑色の Windows アイコンボタンをクリックし、ワンクリックインストールコマンドをコピーします。
Windows サーバーに入り、PowerShell を実行し、PowerShell でコピーしたインストールコマンドを実行します。
「実行ポリシーの変更」を確認する場合は、Y を選択してください。
インストールが完了するまで待ち、ダッシュボードのホームページに戻ってサーバーがオンラインかどうかを確認します。
エージェント(監視端)の他のインストール方法#
Linux でのインストール
まず、管理パネルにサーバーを追加します。
制御対象のサーバーで、スクリプトを実行します(中国本土のサーバーはミラーを使用してください):
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
もしあなたの制御対象サーバーが中国本土にある場合、ミラーを使用できます:
curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
- 「監視エージェントをインストール」を選択します。
- 通信ドメインを入力します(例:"data.example.com")。
- パネル通信ポート(gRPC ポート)を入力します。デフォルトは 5555 です。
- エージェントキーを入力します。エージェントキーは管理パネルでサーバーを追加する際に生成され、管理パネルの「サーバー」ページで見つけることができます。
- インストールが完了するまで待ち、ダッシュボードのホームページに戻ってサーバーがオンラインかどうかを確認します。
Windows での手動インストール#
コミュニティの記事を参照してください:哪吒探针 - Windows クライアントのインストール
国内での監視端のインストールができない場合#
公式のミラースクリプトを使用してインストールすると、私と同じような状況が発生する可能性があります:
以下の内容は nezha.sh からのものです。
NZ_BASE_PATH="/opt/nezha"
NZ_AGENT_PATH="${NZ_BASE_PATH}/agent"
NZ_AGENT_SERVICE="/etc/systemd/system/nezha-agent.service"
- "/opt/nezha" はパネルコアの保存ディレクトリで、Dashboard と Agent を含みます。
- "/opt/nezha/agent" は、上記の文脈に基づき、このディレクトリはエージェントのコアファイルの保存場所です。
- "/etc/systemd/system/nezha-agent.service"
- Linux システムに詳しい方は、このファイルが「哪吒」エージェントの起動時の自動起動を決定することを知っているでしょう。
操作手順#
https://api.github.com/repos/nezhahq/agent/releases/latest から nezha-agent をローカルにダウンロードし、あなたのシステムバージョンの圧縮ファイルを選択して解凍すると、バイナリファイルが得られます。
サーバー上に"/opt/nezha/agent"
ディレクトリを作成し、nezha-agent を配置し、次のコマンドを実行します:
chmod +x nezha-agent
"/etc/systemd/system/"
ディレクトリに新しいnezha-agent.service
ファイルを作成し、以下のコードを置き換えて保存します:
[Unit]
Description=Nezha Agent
After=syslog.target
#After=network.target
#After=nezha-dashboard.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=root
Group=root
WorkingDirectory=/opt/nezha/agent/
ExecStart=/opt/nezha/agent/nezha-agent -s 1.1.1.1:5555 -p 密钥
Restart=always
#Environment=DEBUG=true
# Some distributions may not support these hardening directives. If you cannot start the service due
# to an unknown option, comment out the ones not supported by your version of systemd.
#ProtectSystem=full
#PrivateDevices=yes
#PrivateTmp=yes
#NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
1.1.1.1:5555
と密钥をあなた自身のものに置き換え、最後に次のコマンドを実行します:
systemctl daemon-reload
systemctl enable nezha-agent
systemctl restart nezha-agent
最後に「哪吒探针」のバックエンドを更新すると、小さなサーバーがオンラインになっているのが見えるでしょう。