skillup

技術ブログ

サーバー・ネットワーク

監視検知処理に関して

投稿日:2018年4月28日 更新日:

実務で監視のスクリプトを書くことがあったんでメモしときます。

監視検知とは例えばあるディレクリに変化(ファイルの作成・更新・削除など)があった時に、それをトリガーにして何らかの処理を行うと言う仕組みになります。

私が行ったのはあるディレクリを監視しておき、画像がダウンロードされたら、自動的にあるシェルスクリプトを走らせて、他の画像と合成すると言う処理です。

色々と調べたので(私ではなくて上司に相当する人ですが(汗))ここでメモります。

incrond

Linuxには標準で入っているようです。名前の通り、cronが時間でトリガーになるように、こちらはイベントでトリガーになります。

簡単に使えそうだったのですが、いかんせん再帰処理ができず、特定フォルダを監視してもその最下部まで監視できないと言う欠陥があるため、ボツに。

incronを使って見た

inotify

これまでLinux標準で入ってます。

情報もそこそこあり、簡単に使えそうですが、主にサーバー監視などに使われる用途(変更されたファイルの統計情報などをだす)で今回の用途にそぐわなかったので却下。

inotify-toolsでファイルやディレクトリを監視する

Watcher

採用したのはこれです。

  • 起動までのスクリプトが簡単
  • 再帰処理ができる(あるディレクトリを監視したらその下まで全て対象)
  • 変更されたファイルを引数として任意のスクリプトを稼働させられる

Python2.7が必須要件なようです。

再帰的にフォルダを監視できるincronライクなコマンド『Watcher』

基本的にはずっと起動させて置くだけで自然に検知処理が走ります。ログがちょっと見にくいかな・・・

Gitのソース

https://github.com/splitbrain/Watcher

注意点

監視するフォルダに制限数があり、ディフォでは8192個でした。増やすこともできますが、メモリ諸費など何らかの負荷がかかる可能性があるので要注意です。

インストール手順

init_watcher.sh(インストール用)

start_watcher.sh(起動スクリプト)

watcher.ini(設定ファイル)

stop_watcher.ini

起動プロセス

sclに関しては下記リンクを参照のこと
CentOSでRuby 1.9.3やPython 2.7、Python 3.3などを使う簡単な方法

主に古いOSで新しいversionを入れる時に使うようです。

yumなどで一気にインストールしてしまうと他のライブラリとの整合性が崩れてしまうこともあるため(参考例:pythonのアップグレードに関して)、一時的に使うような感じだと思う。

-サーバー・ネットワーク
-, ,

執筆者:


  1. […] slc 監視検知処理に関して […]

  2. […] 監視検知処理に関して […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

nginxまとめ

10~11月はデータベースをちょっと勉強しておりましたが、12,1ぐらいはサーバーインフラ系の強化月間としようかと思います。 しばらくはnginxについてです。 Contents1 nginxの概要2 …

no image

AWSセキュリティグループについて

AWSのセキュリティグループに関して。 AWSには標準でセキュリティグループという概念があり、それぞれのインスタンスに対して、アクセスするパケットをポート番号で制御でき、この定義をセキュリティグループ …

no image

ドメイン取得とメール送信

現在ではメール配信サービスなどが充実しており、メールサーバーを立てる機会なんぞは少ないかとしれません。 そもそも一般的なレンタルサーバー会社の場合、レジストラとセットになっていることが多いですよね。そ …

no image

docker-composeに関して

dockerで環境構築する場合は基本的に下記のような流れをとると思います。 それぞれの出来合いのイメージをpull イメージに様々なライブラリをインストール それらをコンテナとして起動&連携 …

no image

ログ抽出コマンド特集 その3 データの収集や抽出にかかわるコマンド群(sort ,tr,cut)

サーバーの負荷を見る場合、unixコマンドでログを抽出できたりすると何かと便利です。 いままでも下記の記事でこれらの出力を行いました。 ログ抽出コマンド特集 その1 cat+grep+sort 私が本 …