redis clusterで全てのサーバを一挙にmonitorする
redisにはmonitor(Redisサーバが受け取ったすべてのコマンドをリアルタイム表示する)という便利コマンドがありますが、1サーバしか指定できません。
redis clusterを組んでいて、全サーバのmonitorをまとめて見たいケースって多いにあると思います。
調べて作ったのでここに残します。
ソース
#!/bin/bash
trap 'eval "kill -KILL $(jobs -p|tr "\n" " ")"' EXIT
for f in "$@"; do
IFS=':'
set -- $f
redis-cli -c -p $2 -h $1 monitor &
done
wait
※Ctrl+Cで抜けてもゴミプロセスを残しません。後味すっきり。
使い方
$ ./redis-multi-monitor.sh 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
1459331298.605642 [0 127.0.0.1:60922] "set" "aa" "bb"
1459331298.607053 [0 127.0.0.1:7000] "set" "aa" "bb"
↑クラスターはmaster slave構成で作ってあったので2つ出てきます
参考にさせていただいたもの
ご指摘あればよろしくお願いいたし!
Author And Source
この問題について(redis clusterで全てのサーバを一挙にmonitorする), 我々は、より多くの情報をここで見つけました https://qiita.com/hayakawatomoaki/items/76597392126f1e0544e1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .