sql >> データベース >  >> NoSQL >> MongoDB

SlackのChatOpsを使用したMySQL、MongoDB、PostgreSQLの管理

    ChatOpsとは何ですか?

    現在、私たちは複数の通信チャネルを利用して、電子メール、チャット、アプリケーションなどのシステムからの情報を管理または受信しています。これを1つまたはいくつかの異なる可能なアプリケーションに一元化でき、さらに良いことに、現在組織で使用しているツールと統合できれば、プロセスを自動化し、作業のダイナミクスとコミュニケーションを改善できます。システムの現在の状態をより明確に把握できます。多くの企業では、Slackやその他のコラボレーションツールが開発チームと運用チームの中心になりつつあります。

    チャットボットとは何ですか?

    チャットボットは、会話をシミュレートし、ユーザーが作成したエントリを受信し、そのプログラミングに基づいて回答を返すプログラムです。

    一部の製品はこのテクノロジーを使用して開発されており、管理タスクを実行したり、システムの現在のステータスについてチームを最新の状態に保つことができます。

    これにより、とりわけ、私たちが日常的に使用するコミュニケーションツールをシステムと統合することができます。

    CCBot-ClusterControl

    CCBotは、ClusterControlAPIを使用してデータベースクラスターを管理および監視するチャットボットです。新しいクラスターまたはレプリケーションのセットアップを展開し、データベースのステータスと管理ジョブ(バックアップやローリングアップグレードなど)のステータスについてチームを最新の状態に保つことができます。また、障害が発生したノードを再起動したり、新しいノードを追加したり、スレーブをマスターに昇格させたり、ロードバランサーを追加したりすることもできます。 CCBotは、Slack、Flowdock、Hipchatなどの主要なチャットサービスのほとんどをサポートしています。

    CCBotはs9sコマンドラインと統合されているため、このツールで使用できるコマンドがいくつかあります。

    Slackを介したClusterControl通知

    Slackを使用して、ClusterControlからのアラームと通知を処理できることに注意してください。なんで?チャットルームは、インシデントについて話し合うのに適した場所です。 Slackチャネルで実際のアラームを確認すると、チームと話し合うのが簡単になります。これは、すべてのチームメンバーが実際に話し合っていることを知っており、チャイムを鳴らすことができるためです。

    CCBotとSlackを介した通知の統合の主な違いは、CCBotを使用すると、ユーザーが特定のコマンドを介して通信を開始し、システムから応答を生成することです。通知の場合、ClusterControlは、ノード障害に関するメッセージなどのイベントを生成します。このイベントは、通知用に統合したツール(Slackなど)に送信されます。

    Slackに通知を送信するためにClusterControlを構成する方法についてこの投稿を確認できます。

    この後、SlackでClusterControl通知を確認できます:

    ClusterControlSlack統合

    CCBotのインストール

    CCBotをインストールするには、ClusterControlをインストールしたら、次のスクリプトを実行する必要があります。

    $ /var/www/html/clustercontrol/app/tools/install-ccbot.sh

    使用するアダプターを選択します。このブログでは、Slackを選択します。

    -- Supported Hubot Adapters --
    1. slack
    2. hipchat
    3. flowdock
    Select the hubot adapter to install [1-3]: 1

    次に、メール、説明、ボットに付ける名前、ポート、APIトークン、追加するチャネルなどの情報を求められます。

    ? Owner (User <[email protected]>)
    ? Description (A simple helpful robot for your Company)
    Enter your bot's name (ccbot):
    Enter hubot's http events listening port (8081):
    Enter your slack API token:
    Enter your slack message room (general):

    APIトークンを取得するには、Slack-> Apps(Slackウィンドウの左側)に移動し、Hubotを探して[インストール]を選択する必要があります。

    CCBot Hubot

    ボット名と一致する必要があるユーザー名を入力します。

    次のウィンドウで、使用するAPIトークンを確認できます。

    CCBotAPIトークン
    Enter your slack API token: xoxb-111111111111-XXXXXXXXXXXXXXXXXXXXXXXX
    CCBot installation completed!

    最後に、CCBotですべてのs9sコマンドライン機能を使用できるようにするには、ClusterControlからユーザーを作成する必要があります。

    $ s9s user --create --cmon-user=cmon --group=admins  --controller="https://localhost:9501" --generate-key cmon

    ユーザーの管理方法の詳細については、公式ドキュメントを確認してください。

    これで、SlackのCCBotを使用できるようになりました。

    コマンドの例をいくつか示します。

    $ s9s --help
    CCBotヘルプ

    このコマンドを使用すると、s9sCLIのヘルプを確認できます。

    $ s9s cluster --list --long
    CCBotクラスターリスト

    このコマンドを使用すると、クラスターのリストを表示できます。

    $ s9s cluster --cluster-id=17 --stat
    CCBotクラスター統計

    このコマンドを使用すると、1つのクラスター(この場合はクラスターID 17)の統計を確認できます。

    $ s9s node --list --long
    CCBotノードリスト

    このコマンドを使用すると、ノードのリストを表示できます。

    $ s9s job --list
    CCBotジョブリスト

    このコマンドを使用すると、ジョブのリストを表示できます。

    $ s9s backup --create --backup-method=mysqldump --cluster-id=16 --nodes=192.168.100.34:3306 --backup-directory=/backup
    CCBotバックアップ

    このコマンドを使用すると、ノード192.168.100.34にmysqldumpを使用してバックアップを作成できます。バックアップは/backupディレクトリに保存されます。

    次に、より複雑な例をいくつか見てみましょう。

    $ s9s cluster --create --cluster-type=mysqlreplication --nodes="mysql1;mysql2" --vendor="percona" --provider-version="5.7" --template="my.cnf.repl57" --db-admin="root" --db-admin-passwd="root123" --os-user="root" --cluster-name="MySQL1"
    CCBotレプリケーションの作成

    このコマンドを使用して、MySQL5.7バージョン用のPerconaを使用したMySQLマスタースレーブレプリケーションを作成できます。

    CCBotチェックレプリケーションが作成されました

    そして、この新しいクラスターを確認できます。

    ClusterControlトポロジビューでは、1つのマスターノードと1つのスレーブノードで現在のトポロジを確認できます。

    トポロジビューレプリケーション1
    $ s9s cluster --add-node --nodes=mysql3 --cluster-id=24
    CCBotノードの追加

    このコマンドを使用して、現在のクラスターに新しいスレーブを追加できます。

    トポロジビューレプリケーション2

    また、ClusterControlトポロジビューで新しいトポロジを確認できます。

    $ s9s cluster --add-node --cluster-id=24 --nodes="proxysql://proxysql"
    CCBot Add ProxySQL

    このコマンドを使用して、現在のクラスターに「proxysql」という名前の新しいProxySQLノードを追加できます。

    トポロジビューレプリケーション3

    また、ClusterControlトポロジビューで新しいトポロジを確認できます。

    使用可能なコマンドのリストはドキュメントで確認できます。
    SlackチャネルからCCBotを使用する場合は、コマンドの先頭に「@ccbot_name」を追加する必要があります:

    @ccbot s9s backup --create --backup-method=xtrabackupfull --cluster-id=1 --nodes=10.0.0.5:3306 --backup-directory=/storage/backups

    CCBotを使用すると、チームは共同でクラスターを管理しやすくなります。日常的に使用するツールと完全に統合されています。

    ClusterControlでCCBotインストーラーを実行するときに次のエラーが発生した場合:

    -bash: yo: command not found
    nodejsパッケージのバージョンを更新する必要があります。

    結論

    前に述べたように、さまざまな目的のためにいくつかのチャットボットの選択肢があり、独自のチャットボットを作成することもできますが、このテクノロジーはタスクを容易にし、このブログの冒頭で述べたいくつかの利点があるため、輝くものすべてが金であるとは限りません。

    覚えておくべき非常に重要な詳細があります-セキュリティ。それらを使用するときは細心の注意を払い、必要なすべての予防措置を講じて、何を、どのように、いつ、誰に、どこから行うことができるかを知る必要があります。


    1. MongooseはMongodbの`findAndModify`メソッドをサポートしていますか?

    2. findメソッドからMongooseの結果を返す方法は?

    3. ビッグデータHadoopでのHDFSイレイジャーコーディング

    4. mongodb集計で文字列の配列を返す方法