Categorygithub.com/umenosuke/ping-grpc-server

# README

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 (設定ファイル)を編集

項目意味
ListenIPAddressgRPCで待ち受けるアドレスstring `IP`:`port`
UseTLSTLSを利用するかbool
(TLSを利用する場合)
CACertificatePathCA証明書のパスstring `file path`
ServerCertificatePathサーバー証明書のパスstring `file path`
ServerPrivateKeyPathサーバー秘密鍵のパスstring `file path`

実行

./ping-grpc-server -configPath ping-grpc.conf.json

TLS利用する場合

ここなどを参考に

  • 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 [email protected]: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

# Packages

No description provided by the author
No description provided by the author