icmp ping を撃ってくれるサーバー
これは何
- pingを撃つデーモン
- ping対象の指定などはgRPCクライアントから
- 一回のリクエスト内の対象へはpingを並列で撃つ
ping結果を見る箇所と撃ち箇所を別にできるので
PCからのpingが遮断されているときの疎通確認や
AS内部と外部からの疎通確認とかに
Demo
クライアント側を見てください
使い方
例
実行
./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
TLS利用する場合
ここなどを参考に
を作成してください
オプションなど
$ ./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 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