ZabbixサーバからCentOSへリモートコマンドを実行した際の備忘録

CentOSにインストールしていたZabbixを久しぶりに起動してみました。
久しぶりなのでyum updateを実行したら、Zabbix2.0.4→2.0.6へアップしちゃいました

ちなみにアップした後、マップやグラフが文字化けしました・・・・・
http://www.checksite.jp/zabbix-japanese-graph/

ちなみに

Zabbixサーバからエージェントに向けてリモートコマンドが実行できるので実際に試してみました。
一応、シナリオを Webサーバ監視→レスポンスNG→Webサーバのhttpdプロセス起動 の流れです。

Zabbixサーバは構築済みで、監視対象のサーバをホストに登録している前提で

1.[設定]→[ウェブ]→[シナリオの作成]
  アプリケーション:TESTサーバhttp監視
  名前      :TESTサーバhttp監視
  認証      :なし(Basic認証などはユーザ・パスワードを入力できる)
  更新間隔    :60(秒)
  エージェント  :IE10
  変数      :ステップで変数を使用したい場合に とりあえずなし
  有効      :チェック済み

2.タブ切替で[ステップ]→[追加]を選択
  名前      :TOPページ参照
  URL       :http://XXX.XXX.XXX.XXX(IPアドレスorドメイン)
  POST      :必要なら入れてください
  タイムアウト  :15
  要求文字列   :URLのページに必ず表示される文字など(日本語はNG)
  要求ステータスコード:200等

3.[監視データ]→[ウェブ]→該当ホストが表示され、ステータスが正常なら監視できています

  ウェブ監視→トリガー(異常検知)→アクション(リモートコマンド)の流れになるので
  次にトリガーを追加します

4.[設定]→[ホスト]→該当ホストの[トリガー]を選択→[トリガーの作成]
  名前      :TESTサーバhttp監視NG
  条件式     :[追加]→[トリガー条件式の状態]
            アイテム  :[選択]→[シナリオ”TESTサーバhttp監視”のステップ失敗]
                 機能      :最新(T秒前/T個前)の値=N(自動で設定されるのか・・)
            最新の(T)   :0(秒)
            タイムシフト:0(秒)
            N           :1
           入力が終わったら[挿入]を選択→条件式に値がセットされる

  障害イベント・・ :チェックすると条件に該当している間アクションが実行されます
  説明      :空白
  URL       :入れておいても
  深刻度     :重度の障害
  有効      :チェック済み
  
    入力が終わったら[保存]を選択 トリガー一覧に設定した項目が表示されステータスが有効であればOK

5.[設定]→[アクション]→[アクションの作成]
  名前                  :TESTサーバhttpプロセスの起動
  デフォルトのアクション実行ステップの期間:3600
  デフォルトの件名            :とりあえず変更していない
  デフォルトのメッセージ         :とりあえず変更していない
  リカバリメッセージ           :チェック済み
  有効                  :チェック済み

6.タブ切替で[アクションの実行条件]
  計算のタイプ    :AND/OR
  アクションの実行条件:(A)    メンテナンスの状態 期間外 “メンテナンス”
                (B)    トリガーの値 = “障害”
  新規条件      :[追加]→[ホスト名][=]→[選択]→該当ホストを選択

7.タブ切替で[アクションの実行内容]→[新規]
  実行内容の詳細:
          ステップ    開始            :1
                        終了            :0 (0 – 無限)
                        ステップの期間    :0 (最小60秒、0 – デフォルト設定を利用)
             実行内容のタイプ:リモートコマンド
            ターゲットリスト:[新規]→[ターゲット]→[ホスト]→[選択]該当のホストを選択→[追加
            タイプ       :カスタムスクリプト
  次で実行       : Zabbixエージェント
    コマンド        :sudo /etc/init.d/httpd start
    アクションの実行条件:空白
  
  以上でアクションの設定が完了

これでZabbixサーバ側のリモートコマンド設定は完了しました。次にエージェント側の設定を行います

参考ページ
http://extstrg.asabiya.net/pukiwiki/index.php?%A5%EA%A5%E2%A1%BC%A5%C8%A5%B3%A5%DE%A5%F3%A5%C9%A4%CE%C0%DF%C4%EA

監視対象側CentOSで下記のファイルを編集
vi /etc/sudoers
コメントアウト
Defaults    requiretty

#Defaults    requiretty

追加
zabbix localhost=(root) NOPASSWD:/etc/init.d/apachectl

これでOK!!

早速httpdのサービスを停止してみます
/etc/init.d/httpd stop

Zabbixサーバ側で監視間隔にもよりますが、ウェブ監視で障害を検知すると思います

もちろん、監視対象側CentOSのWebページが表示できないことも確認しましょう!!

Zabbixサーバ画面 [監視データ]→[イベント]で障害発生が表示された右端のアクション欄に正常と表示されているか確認
Zabbixサーバの別設定で障害検知した際は、メール送信するアクションを設定しているのでメールが受信できました。

監視対象側CentOSのWebページアクセスしてみると・・・ あれ ページが開けない なぜ 原因調査スタート

ログになんか出てないかなぁ
more /var/log/secure
sudo:   zabbix : sorry, you must have a tty to run sudo ; TTY=unknown ; PWD=/ ; USER=ro
ot ; COMMAND=/etc/init.d/httpd restart

Google先生に聞いてみて
vi /etc/sudoers
追加
zabbix ALL=NOPASSWD: ALL

再度httpdを停止してみました
監視対象側CentOSのWebページアクセスしてみると・・・・ 起動してる
more /var/log/secure
16:25:02 ip-XXX-XXX-86-129 sudo:   zabbix : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/etc/init.d/mysqld start

今度は成功してますね

私の環境だとSSL証明書をいれているので、httpd起動時にパスフレーズの入力をしないとhttpdが起動しません
そのため、下記のページを参考にパスフレーズの諸略してみました。
http://dokonoumanohone.blog47.fc2.com/blog-entry-3.html

シェアする

  • このエントリーをはてなブックマークに追加

フォローする