GNU/Linux >> Linux の 問題 >  >> Linux

Kannelを使用したNagiosからのSMS通知

したがって、この記事では、NagiosにSMS通知を追加します。

Nagiosは、最も使用されているオープンソースのネットワークおよびサーバー監視ツールです。そのため、Nagiosを使用して、重要なサービスについて、スイッチ、ルーター、サーバーなどのさまざまなタイプのSNMP対応ホストを監視します。さらに、NagiosはNRPEエージェントを使用してサーバーパフォーマンスデータをフェッチすることもできます。さらに、ビジュアルWebポータルとサウンドアラーム、Nagiosを使用して電子メール通知を送信できます。そこで、KannelSMSGatewayを使用してNagiosからSMS通知を送信します。

すでにNagiosサーバーがインストールされて実行されています。したがって、Nagios Monitoringサーバーをインストールして構成するには、Nagiosのインストールと構成に関する他のトピックを確認してください。

つまり、これがラボ環境になります:

NagiosおよびKannelサーバーIP:192.168.10.38
Kannel送信SMSユーザー:kannel
Kannel Send SMSユーザーパスワード:kannelpasswd

Nagiosの構成:

したがって、このラボ環境では、ソースtarballからデフォルトディレクトリ / usr / local / nagios /にNagiosをインストールしました。

まず、 /usr/local/nagios/etc/objects/commands.cfgでコマンドを定義する必要があります。 オブジェクト構成ファイル。したがって、コマンドを定義するには、 Commands.cfgに以下の行を追加します。 ファイル

# 'notify-host-by-sms' command definition
define command{
       command_name    notify-host-by-sms
       command_line    /usr/bin/printf "%b" "Nagios: *$NOTIFICATIONTYPE$* \n$HOSTALIAS$ is $HOSTSTATE$ Info is: $HOSTOUTPUT$ Time: $SHORTDATETIME$" | /usr/bin/curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=$CONTACTPAGER$" -G --data-urlencode text@-
       }

# 'notify-service-by-sms' command definition
define command{
       command_name     notify-service-by-sms
       command_line    /usr/bin/printf "%b" "Nagios: *$NOTIFICATIONTYPE$*\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nStat: $SERVICESTATE$\nInfo: $SERVICEOUTPUT$\nTime: $SHORTDATETIME$" | /usr/bin/curl "http://192.168.10.38:13013/cgi-bin/sendsms?username=kannel&password=kannelpasswd&to=$CONTACTPAGER$" -G --data-urlencode text@-
       }

次に、通知対象ユーザーの携帯電話番号をNagios連絡先オブジェクト構成ファイルに追加します: /usr/local/nagios/etc/objects/contacts.cfg

サンプル連絡先 定義:

define contact{
       contact_name                    omar
       use                             generic-contact
       alias                           Omar Ali
       service_notification_commands   notify-service-by-sms
       host_notification_commands      notify-host-by-sms
       email                           [email protected]
       pager                           +88017XXXXXXXX
       }

さらに、SMS通知とメールを同じ連絡先に送信できます。 以下の定義を使用して

define contact{
       contact_name                    shamim
       use                             generic-contact
       alias                           Shamim Ahmed
       service_notification_commands   notify-service-by-email,notify-service-by-sms
       host_notification_commands      notify-host-by-email,notify-host-by-sms
       email                           [email protected]
       pager                           +88017YYYYYYYY
       }

その後、連絡先グループを作成します サービスの通知を受け取る人のために。それでは、連絡先グループを定義しましょう。 契約の下 ネットワークサービスに障害が発生した場合に通知を受け取るネットワーク管理者の定義

define contactgroup {
   contactgroup_name       netadmins
  alias                   Network Administrators
   members                 omar,shamim
}

したがって、3つのアップストリームポートを持つMikroTikルーターがあります:sfp1、sfp2、sfp3、これを監視システムに追加します。

次に、オブジェクト構成ファイル /usr/local/nagios/etc/objects/nethosts.cfgを作成します。 以下の内容のネットワークデバイスを監視するため

#### Host Defination ####
define host {
   use                     generic-switch
   host_name               router-1
   alias                   Router-1
   address                 192.168.10.1
   hostgroups              net-hosts
   notifications_enabled   1
   contact_groups          netadmins
}


#### Host Group Defination ####
define hostgroup {
   hostgroup_name          net-hosts
   alias                   Network Hosts
}


#### Service Defination for Network hosts ####
define service {
   use                     generic-service
   host_name               router-1
   service_description     SFP-1
   check_command           check_snmp!-C snmpCommunity -o ifOperStatus.1 -r 1 -m RFC1213-MIB
   check_interval          3
   retry_interval          1
   notifications_enabled   1
   contact_groups          netadmins
}

define service {
   use                     generic-service
   host_name               router-1
   service_description     SFP-2
   check_command           check_snmp!-C snmpCommunity -o ifOperStatus.2 -r 1 -m RFC1213-MIB
   check_interval          3
   retry_interval          1
   notifications_enabled   1
   contact_groups          netadmins
}

define service {
   use                     generic-service
   host_name               router-1
   service_description     SFP-3
   check_command           check_snmp!-C snmpCommunity -o ifOperStatus.3 -r 1 -m RFC1213-MIB
   check_interval          3
   retry_interval          1
   notifications_enabled   1
   contact_groups          netadmins
}

check_snmpの上 コマンドにはMIB:RFC1213-MIBが必要です。これは、システムにプレインストールする必要があります。したがって、システムに存在しない場合は、以下のパッケージを使用してダウンロードしてインストールできます

Debian / Ubuntuの場合: snmp-mibs-downloaderをインストールします 無料から リポジトリを作成してから、 download-mibsを実行します シェルからのコマンド

# apt-get install -y snmp-mibs-downloader
# download-mibs

したがって、CentOS7/8を使用する場合

# yum install net-snmp-libs

また、オブジェクト構成ファイル nethosts.cfgを含めます。 /usr/local/nagios/etc/nagios.cfg

したがって、 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfgを実行します。 構成を確認するには

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

したがって、エラーがない場合は、Nagiosサービスを再起動してください

# systemctl restart nagios.service

Nagios通知:

次に、Nagiosポータルでルーター1ポートのステータスを確認します

したがって、3つのSFPポートすべてが稼働中であることがわかりました。 州。次に、SFP-1ポートを手動で切断します。これにより、ダウン通知がトリガーされ、SMSがネットワーク管理者グループに送信されます

Nagios通知ログ:

カネルログ:

ケーブルの再接続:

また、通知ログを確認してください:

カネルログ:

最後に、受信者の携帯電話:


Linux
  1. コマンドラインからFFMpegを使用してビデオを回転させる方法

  2. 2020年にコンソールからRedditを使用する

  3. XRDPを使用してWindowsからLinuxデスクトップにデスクトップをリモート接続する方法

  1. ターミナルを使用してMacOSXからLinuxに接続する

  2. PuTTYを使用してWindowsからLinuxに接続する

  3. Linux から Windows DLL を使用する

  1. Fedupを使用したFedora21からのFedora22のアップグレード

  2. パテを使用して Windows から Linux に scp する

  3. B の秘密鍵を使用して、A から B を介して C に SSH 接続する