- pingを撃つデーモン
- ping対象の指定などはgRPCクライアントから
- 一回のリクエスト内の対象へはpingを並列で撃つ
ping結果を見る箇所と撃ち箇所を別にできるので
PCからのpingが遮断されているときの疎通確認や
AS内部と外部からの疎通確認とかに
クライアント側を見てください
実行
./ping-grpc-server -config '{"UseTLS":false}'
or 設定ファイルを作成
./ping-grpc-server -printConfig >> ping-grpc.conf.json
ping-grpc.conf.json (設定ファイル)を編集
項目 | 意味 | 値 |
---|---|---|
ListenIPAddress | gRPCで待ち受けるアドレス | string `IP`:`port` |
UseTLS | TLSを利用するか | bool |
(TLSを利用する場合) | ||
CACertificatePath | CA証明書のパス | string `file path` |
ServerCertificatePath | サーバー証明書のパス | string `file path` |
ServerPrivateKeyPath | サーバー秘密鍵のパス | string `file path` |
実行
./ping-grpc-server -configPath ping-grpc.conf.json
ここなどを参考に
- CAの証明書
- サーバー証明書と秘密鍵
を作成してください
$ ./ping-grpc-server -help
Usage of ./ping-grpc-server:
-config string
config json string (default "{}")
-configPath string
config file path
-debug
print debug log
-printConfig
show default config
-v show version (shorthand)
-version
show version
ここの
type Config struct
がそのままエンコードされた形です
値の詳細についてはコメントを参照してください
引数 > 設定ファイル > デフォルト値
の優先度で反映されます
- git
- Dockerとか
クローン
git clone --recursive git@github.com:umenosuke/ping-grpc-server.git
cd ping-grpc-server
設定読み込み
source .script/_conf.sh
ビルド用のコンテナを立ち上げ
docker-compose -f .docker/docker-compose.yml up -d
linux&amd64用バイナリを作成(ビルドターゲットは任意で変更してください)
ICMPでraw socketを利用するのでケイパビリティを設定(コマンドをroot権限で実行でも一応大丈夫ですが)
docker exec -it go_build_${_PRJ_NAME} target_data/.script/go_build.sh 'linux' 'amd64' './src' "build/${_PRJ_NAME}"
sudo setcap cap_net_raw=ep "build/${_PRJ_NAME}"
ビルド用のコンテナをお片付け
docker-compose -f .docker/docker-compose.yml down
バイナリはこれ
build/ping-grpc-server