差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
ja:documentation:07_technical_annexes:02_pandorafms_sms_gateway [2022/04/20 06:34] – [デバイスのインストール] junichi | ja:documentation:07_technical_annexes:02_pandorafms_sms_gateway [Unknown date] (現在) – 削除 - 外部編集 (Unknown date) 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== Pandora FMS と SMS ゲートウェイのインストールと設定 ====== | ||
- | {{indexmenu_n> | ||
- | |||
- | [[ja: | ||
- | |||
- | |||
- | |||
- | ===== GSM デバイスについて ===== | ||
- | シリアルポート(USB) を通して SMS を送信するためには、特別なデバイスを利用します。USB ケーブルで接続することができる GSM モジュールまたは、携帯電話と一般的な USB ケーブルの組み合わせが利用できます。どれであるかはそれほど重要ではなく、ここで利用しているものは、MTX 65 v3 です。以下のウェブサイトでだいたい 100$ くらいで入手できます。 | ||
- | |||
- | * http:// | ||
- | * http:// | ||
- | |||
- | Yutube のものでは、GSM アンテナ(例えばデータセンターが地下にある場合に便利)のようないくつかのオプションとともに小さくて互換性のあるものです。 | ||
- | |||
- | GSM 携帯を利用することも良いオプションです。現在ほとんどの(GSM)携帯は linux でサポートされています。 | ||
- | |||
- | ===== デバイスのインストール ===== | ||
- | 最初にハードウエアの設定を行います。このデバイスにはいくつかのパーツがあります。 | ||
- | |||
- | * 小さいコネクタの通常の USB ケーブル | ||
- | * 電源アダプタ (この例ではヨーロッパの 220v のものです。あまりかであれば 110v のものが必要です。) | ||
- | * SIM カード | ||
- | * Pandora FMS の SMS ゲートウェイデバイス | ||
- | |||
- | {{ : | ||
- | |||
- | Pandora FMS の SMS ゲートウェイデバイスを開きます。 | ||
- | |||
- | {{ : | ||
- | |||
- | SIM カードを挿します。 | ||
- | |||
- | {{ : | ||
- | |||
- | 電源を接続し、SMS ゲートウェイデバイスに USB ケーブルを接続します。 | ||
- | |||
- | {{ : | ||
- | |||
- | さらにそれを Pandora FMS サーバの USB ポートに接続します。 | ||
- | |||
- | {{ : | ||
- | |||
- | サーバへデバイスを接続して数秒したら、コマンドラインから " | ||
- | |||
- | {{ : | ||
- | |||
- | This means your device has been recognized by the kernel and it is ready to accept commands on a device, such as ''/ | ||
- | |||
- | これは、デバイスを kernel が ''/ | ||
- | |||
- | ここまでくればハードウエアの設定は完了です。うまくいってない場合は、次の手順を確認してください。 | ||
- | |||
- | * デバイスが接続され、LED が緑で点滅しているかどうか。 | ||
- | * デバイスが USB ポートに接続されているか。一方が SMS デバイス、他方が Pandora FMS サーバになっているか。 | ||
- | * デバイスに SIM カードが正しく挿入されているかどうか。 | ||
- | |||
- | ===== 新たなデバイスを利用するための SMSTools の設定 ===== | ||
- | このデバイスは、SMSTools というソフトウエアパッケージで制御します。smstools は、Linux ディストリビューションにより提供されているパッケージまたは、Artica が提供している RPM パッケージ(提供はRPMパッケージのみ)を使ってインストールできます。 | ||
- | |||
- | |||
- | ==== RPM を利用しているシステム ==== | ||
- | 我々の RPM を利用するのが簡単です。次のようにインストールするだけです。 | ||
- | |||
- | # rpm -i smstools*.rpm | ||
- | |||
- | ==== SMStools の設定 ==== | ||
- | 基本設定ファイルを編集します。 | ||
- | |||
- | # vi / | ||
- | |||
- | 次の設定を書きます。dmesg の出力が ttyACM0 でない場合は、システムが検出した tty デバイスに応じて変更してください。 | ||
- | |||
- | < | ||
- | # Example smsd.conf. Read the manual for a description | ||
- | |||
- | devices = GSM1 | ||
- | logfile = / | ||
- | loglevel = 10 | ||
- | |||
- | [GSM1] | ||
- | device = / | ||
- | incoming = no | ||
- | pin = 2920 | ||
- | </ | ||
- | |||
- | SIM に設定された暗証番号を定義します。この例では、" | ||
- | |||
- | そして、smstools を手動で起動します。 | ||
- | |||
- | # / | ||
- | |||
- | SMS の送信テストをします。電話番号はプリフィックスを含めて指定することに注意してください。この例では、+34 がスペインで、電話番号が 627934648 です。 | ||
- | |||
- | $ sendsms 34627934648 " | ||
- | |||
- | 数分待って、すべて正常化どうかログを確認します。数秒で SMS を受信します。ネットワークによっては、最初の SMS は 10-20秒遅れるので、それ以上待ってください。次の SMS からすぐに届きます。SMSTools は、メッセージ送信にキューを利用します。たくさん送信したい場合、携帯のネットワークの処理に依存した速さになります。 | ||
- | |||
- | ログの確認は次の通りです。 | ||
- | |||
- | < | ||
- | # cat / | ||
- | 2009-11-12 11:30:12,2, smsd: Smsd v2.2.20 started. | ||
- | 2009-11-12 11:30:12,6, smsd: outgoing file checker has started. | ||
- | 2009-11-12 11:30:12,6, GSM1: Modem handler 0 has started. | ||
- | 2009-11-12 11:30:13,6, smsd: Moved file / | ||
- | 2009-11-12 11:30:13,6, smsd: I have to send 1 short message for / | ||
- | 2009-11-12 11:30:13,6, GSM1: Sending SMS from to 627934648 | ||
- | 2009-11-12 11:30:13,6, GSM1: Checking if modem is ready | ||
- | 2009-11-12 11:30:13,7, GSM1: -> AT | ||
- | 2009-11-12 11:30:13,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:14,7, GSM1: <- AT | ||
- | OK | ||
- | 2009-11-12 11:30:14,6, GSM1: Checking if modem needs PIN | ||
- | 2009-11-12 11:30:14,7, GSM1: -> AT+CPIN? | ||
- | 2009-11-12 11:30:14,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:14,7, GSM1: <- AT+CPIN? | ||
- | +CPIN: SIM PIN | ||
- | OK | ||
- | 2009-11-12 11:30:14,5, GSM1: Modem needs PIN, entering PIN... | ||
- | 2009-11-12 11:30:14,7, GSM1: -> AT+CPIN=" | ||
- | 2009-11-12 11:30:14,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:15,7, GSM1: <- AT+CPIN=" | ||
- | OK | ||
- | 2009-11-12 11:30:15,7, GSM1: -> AT+CPIN? | ||
- | 2009-11-12 11:30:15,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:15,7, GSM1: <- AT+CPIN? | ||
- | +CPIN: READY | ||
- | OK | ||
- | 2009-11-12 11:30:15,6, GSM1: PIN Ready | ||
- | 2009-11-12 11:30:15,6, GSM1: Checking if Modem is registered to the network | ||
- | 2009-11-12 11:30:15,7, GSM1: -> AT+CREG? | ||
- | 2009-11-12 11:30:15,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:16,7, GSM1: <- AT+CREG? | ||
- | +CREG: 0,2 | ||
- | OK | ||
- | 2009-11-12 11:30:16,5, GSM1: Modem is not registered, waiting 10 sec. before retrying | ||
- | |||
- | 2009-11-12 11:30:26,7, GSM1: -> AT+CREG? | ||
- | 2009-11-12 11:30:26,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:26,7, GSM1: <- AT+CREG? | ||
- | +CREG: 0,5 | ||
- | OK | ||
- | 2009-11-12 11:30:26,6, GSM1: Modem is registered to a roaming partner network | ||
- | 2009-11-12 11:30:26,6, GSM1: Selecting PDU mode | ||
- | 2009-11-12 11:30:26,7, GSM1: -> AT+CMGF=0 | ||
- | 2009-11-12 11:30:26,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:26,7, GSM1: <- AT+CMGF=0 | ||
- | OK | ||
- | 2009-11-12 11:30:26,7, GSM1: -> AT+CMGS=94 | ||
- | 2009-11-12 11:30:26,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:27,7, GSM1: <- AT+CMGS=94 | ||
- | > | ||
- | 2009-11-12 11:30:27,7, GSM1: -> 001100099126974346F900F1FF5CC8373BCC0295E7F437A83C07D5DDA076D93D0FABCBA069730A2297417079BD2C0EBB406779789C0ECF41F0B71C44AF83C66FB7391D76EBC32C503B3C46BFE96516081E7693DFF230C8D89C82E4EFF17A0E | ||
- | 2009-11-12 11:30:27,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:31,7, GSM1: <- 001100099126974346F900F1FF5CC8373BCC0295E7F437A83C07D5DDA076D93D0FABCBA069730A2297417079BD2C0EBB406779789C0ECF41F0B71C44AF83C66FB7391D76EBC32C503B3C46BFE96516081E7693DFF230C8D89C82E4EFF17A0E | ||
- | +CMGS: 0 | ||
- | OK | ||
- | 2009-11-12 11:30:31,5, GSM1: SMS sent, To: 627934648 | ||
- | 2009-11-12 11:30:31,6, smsd: Deleted file / | ||
- | 2009-11-12 11:30:32,6, smsd: I have to send 1 short message for / | ||
- | 2009-11-12 11:30:32,6, GSM1: Sending SMS from to 34627934648 | ||
- | 2009-11-12 11:30:32,7, GSM1: -> AT+CMGS=29 | ||
- | 2009-11-12 11:30:32,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:33,7, GSM1: <- AT+CMGS=29 | ||
- | > | ||
- | 2009-11-12 11:30:33,7, GSM1: -> 0011000B914326974346F900F1FF11D0B09BFC968741C6E614247F8FD773 | ||
- | 2009-11-12 11:30:33,7, GSM1: Command is sent, waiting for the answer | ||
- | 2009-11-12 11:30:36,7, GSM1: <- 0011000B914326974346F900F1FF11D0B09BFC968741C6E614247F8FD773 | ||
- | +CMGS: 1 | ||
- | OK | ||
- | 2009-11-12 11:30:36,5, GSM1: SMS sent, To: 34627934648 | ||
- | 2009-11-12 11:30:36,6, smsd: Deleted file / | ||
- | </ | ||
- | |||
- | 最後に、今後のために次の対応をしておきます。 | ||
- | |||
- | **1.** 不必要にログファイルが巨大にならないように、/ | ||
- | |||
- | **2.** システムが再起動したときに smsd が自動起動するように設定(/ | ||
- | |||
- | ===== Pandora FMS アラートの設定 ===== | ||
- | |||
- | This steps reproduce the basic steps to create SMS alerts in Pandora FMS 3.x. For more information see " | ||
- | |||
- | Pandora FMS で SMS アラーとを作成する基本的な手順を示します。より詳細は、" | ||
- | |||
- | コマンドを作成します。 | ||
- | |||
- | {{ : | ||
- | |||
- | アクションを作成します。 | ||
- | |||
- | {{ : | ||
- | |||
- | アクションをアラートテンプレートを使ってモジュールに割り当てます。この場合、モジュールが障害状態になったときに送信するアラートテンプレートです。 | ||
- | |||
- | ===== 一般的なハードウエアおよび Gnokii を使って SMS を送信するためのゲートウェイ ===== | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | It is recommended to keep your systems updated with the [[: | ||
- | </ | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | [[: | ||
- | </ | ||
- | |||
- | ここでは、smstools を利用するのではなく、gnokii を使う別の SMS 送信方法を説明します。これは、Pandora 1.x および 2.x の頃の古い手法です。ここでは 2つ目のオプションとして記載します。上記の smstools を使った手法の方が良いです。 | ||
- | |||
- | この項では、送信キューにもとづいた、SMS 送信ゲートウェイを構築する方法を説明しています。この方法では、携帯を接続し、Gnokii プロジェクトのソフトウエアを通して SMS を送信する SMS 送信サーバを実装します。また、SMS 送信には、別のリモートサーバを利用できます。これにより、異なる Pandora FMS サーバから、それぞれに携帯を接続することなく、メッセージを送信することができます。 | ||
- | |||
- | 最初に、SMS 送信ゲートウェイをインストールしたいマシンに sms ユーザを作成する必要があります。その後、// | ||
- | |||
- | SMS 送信ゲートウェイの仕組みはとても簡単です。送信ファイルを /// | ||
- | < | ||
- | |||
- | Phonenumber|SMSText | ||
- | |||
- | </ | ||
- | |||
- | ==== SMS ゲートウェイの実装 ==== | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | It is recommended to keep your systems updated with the [[: | ||
- | </ | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | [[: | ||
- | </ | ||
- | |||
- | 4つのスクリプトを作成する必要があります。 | ||
- | |||
- | **SMS**: USBケーブルを通して Gnokii を使って SMS を送信するスクリプトです。スクリプトはゲートウェイとして送信するシステム(GSM携帯に接続したシステム)にのみ置きます。 | ||
- | |||
- | **SMS_GATEWAY**: | ||
- | |||
- | **SMS_GATEWAY_LAUNCHER**: | ||
- | |||
- | **COPY_SMS**: | ||
- | |||
- | === sms === | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | It is recommended to keep your systems updated with the [[: | ||
- | </ | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | [[: | ||
- | </ | ||
- | |||
- | これは、Gnokii を使って SMS を送信するスクリプトです。(/// | ||
- | |||
- | < | ||
- | #!/bin/bash | ||
- | texto=$1 | ||
- | number=$2 | ||
- | if [ $# != 2 ]; then | ||
- | echo "I need more parameters" | ||
- | exit 1; | ||
- | fi | ||
- | /bin/echo $1 | / | ||
- | </ | ||
- | |||
- | === sms_gateway === | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | It is recommended to keep your systems updated with the [[: | ||
- | </ | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | [[: | ||
- | </ | ||
- | |||
- | これはゲートウェイデーモンのスクリプトです。 | ||
- | |||
- | < | ||
- | #!/bin/bash | ||
- | |||
- | INCOMING_DIR=/ | ||
- | HOME_DIR=/ | ||
- | |||
- | while [ 1 ] | ||
- | do | ||
- | |||
- | for a in `ls $INCOMING_DIR` | ||
- | do | ||
- | if [ ! -z " | ||
- | then | ||
- | NUMBER=`cat $INCOMING_DIR/ | ||
- | MESSAGE=`cat $INCOMING_DIR/ | ||
- | TIMESTAMP=`date +" | ||
- | echo " | ||
- | $HOME_DIR/ | ||
- | echo " | ||
- | rm -Rf $INCOMING_DIR/ | ||
- | sleep 1 | ||
- | fi | ||
- | done | ||
- | sleep 5 | ||
- | done | ||
- | </ | ||
- | |||
- | === sms_gateway_launcher === | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | It is recommended to keep your systems updated with the [[: | ||
- | </ | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | [[: | ||
- | </ | ||
- | |||
- | This is the launching script form the '' | ||
- | |||
- | これは、'' | ||
- | |||
- | < | ||
- | #!/bin/bash | ||
- | |||
- | # SMS Gateway, startup script | ||
- | # Sancho Lerena, < | ||
- | # Linux Version (generic) | ||
- | |||
- | # Configurable path and filenames | ||
- | SMS_GATEWAY_HOME=/ | ||
- | SMS_PID_DIR=/ | ||
- | SMS_PID=/ | ||
- | |||
- | # Main script | ||
- | |||
- | if [ ! -d " | ||
- | then | ||
- | echo "SMS Gateway cannot write it's PID file in $SMS_PID_DIR. Please create directory or assign appropiate perms" | ||
- | exit | ||
- | fi | ||
- | |||
- | if [ ! -f $SMS_GATEWAY_HOME/ | ||
- | then | ||
- | echo "SMS Gateway not found, please check setup and read manual" | ||
- | exit | ||
- | fi | ||
- | |||
- | case " | ||
- | start) | ||
- | OLD_PATH=" | ||
- | if [ -f $SMS_PID ] | ||
- | then | ||
- | CHECK_PID=`cat $SMS_PID` | ||
- | CHECK_PID_RESULT=`ps aux | grep -v grep | grep " | ||
- | if [ $CHECK_PID_RESULT == 1 ] | ||
- | then | ||
- | echo "SMS Gateway is currently running on this machine with PID ($CHECK_PID). Aborting now..." | ||
- | exit | ||
- | fi | ||
- | fi | ||
- | |||
- | nohup $SMS_GATEWAY_HOME/ | ||
- | sleep 1 | ||
- | |||
- | MYPID=`ps aux | grep " | ||
- | if [ ! -z " | ||
- | then | ||
- | echo $MYPID > $SMS_PID | ||
- | echo "SMS Gateway is now running with PID $MYPID" | ||
- | else | ||
- | echo " | ||
- | fi | ||
- | cd " | ||
- | ;; | ||
- | stop) | ||
- | if [ -f $SMS_PID ] | ||
- | then | ||
- | echo " | ||
- | | ||
- | if [ ! -z "`ps -F -p $PID_2 | grep -v grep | grep ' | ||
- | then | ||
- | kill `cat $SMS_PID` 2> /dev/null > /dev/null | ||
- | else | ||
- | echo "SMS Gateway is not executing with PID $PID_2, skip Killing step" | ||
- | fi | ||
- | rm -f $SMS_PID | ||
- | else | ||
- | echo "SMS Gateway is not running, cannot stop it." | ||
- | fi | ||
- | ;; | ||
- | force-reload|restart) | ||
- | $0 stop | ||
- | $0 start | ||
- | ;; | ||
- | *) | ||
- | echo " | ||
- | exit 1 | ||
- | esac | ||
- | </ | ||
- | |||
- | === copy_sms === | ||
- | |||
- | <WRAP center round important 60%>\\ | ||
- | [[: | ||
- | </ | ||
- | |||
- | これは、クライアントマシンで送信する SMS を作成し、SMS ゲートウェイへ scp を用いてコピーするスクリプトです。 | ||
- | |||
- | < | ||
- | #!/bin/bash | ||
- | |||
- | SERIAL=`date +" | ||
- | SERIAL=`hostname`_$SERIAL | ||
- | |||
- | TEL=$1 | ||
- | TEXT=$2 | ||
- | |||
- | echo $TEL\|$TEXT >> / | ||
- | scp / | ||
- | rm -Rf / | ||
- | </ | ||
- | |||
- | ===== OBSOLETE ===== | ||
- | |||
- | ==== Debian / Ubuntu ==== | ||
- | Debian/ | ||
- | |||
- | 最初に APT リポジトリからパッケージをインストールします。 | ||
- | |||
- | $ sudo apt-get install smstools | ||
- | |||
- | 次に、コマンドラインから sms を送信するためのサンプルスクリプトをカスタマイズします。 | ||
- | |||
- | < | ||
- | cp / | ||
- | chmod 750 / | ||
- | </ | ||
- | |||
- | / | ||
- | |||
- | chmod 666 $FILE | ||