したがって、この記事では、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通知ログ:
カネルログ:
ケーブルの再接続:
また、通知ログを確認してください:
カネルログ:
最後に、受信者の携帯電話: