さまざまなシステムイベントの電子メールアラートを設定する

このノートでは、メールボックスを煩雑にしたり、複雑な監視システムをセットアップしたりすることなく、サーバー上のさまざまな問題を事前に学習するためのいくつかの簡単な方法を示します。 カテゴリから「何かをチェックして設定するのが面倒なら、少なくともそれを設定してチェックしてください。」

以下にリストされているユーティリティの中には、個別に電子メール通知を送信できるものもありますが、それ以外の場合は単純なシェルラッパーが提供されます。

受信者として、追加のローカル管理者メーリングリストが使用されます。これには、ローカルルートと外部admin@example.ruが含まれます。 ローカルルートが代わりに再定義されないのはなぜですか?

第一に、rootはデフォルトで、すでに_発見された_問題の原因を理解するのに役立つ多くのニュースレターを受け入れることができます。 これらは重要ですが、これらのすべての文字を外部に送信する場合は、フィルタリングを構成する必要があります。または、「detect_ another _ unknown_ problem」を許可するストリームで文字をスキップする可能性が高くなります。

第二に、なぜなら adminsは一般的なLinux / Unixシステムでは標準のアカウントまたはグループではないため、「 grep -r admins /etc /usr/local/etc使用すると、どのユーティリティの設定が既に完了しているかをすばやく判断できます。

メールサーバーの構成



使用されるサーバーの定義:
  1. dpkg-query -S /usr/sbin/sendmail (Debianベース)
  2. rpm -qf /usr/sbin/sendmail (RPMベース)
  3. sudo netstat -ntlp | grep :25 sudo netstat -ntlp | grep :25 (すべてのLinux)
  4. sockstat -4l | grep :25 sockstat -4l | grep :25 (FreeBSD)

DebianおよびUbuntuで可能なオプション: http : //packages.debian.org/file :/ usr /sbin/ sendmail

さらに、Linuxには存在しないFreeBSD用のユーティリティを除き、Debianにはすべてのパスとコマンドキーがリストされています。

Exim


/ etc /エイリアス:
admins: root, admin@example.ru

後置


  1. /etc/postfix/main.cf:virtual_alias_maps virtual_alias_maps = hash:/etc/postfix/virtual
  2. / etc / postfix / virtual: admins root admin@example.ru
  3. cd / etc / postfix && postmap virtual && cd / etc && postalias aliases && /etc/init.d/postfix restart

完全な最小main.cf:
 #relayhost = mx.example.ru mynetworks_style = host inet_interfaces = loopback-only #inet_protocols = ipv4 virtual_alias_maps = hash:/etc/postfix/virtual 


SSMTP、MSMTP、ESMTP


本格的なMTAと比較した正式な利点:
  1. RAMのスペースを占有しないでください。
  2. 設定が簡単
  3. 脆弱性が少ない 呼び出し元のユーザーの権限で作業し、ネットワーク接続を受け入れません。

実際の欠点:
  1. 何らかの理由でレターを送信するときに、外部SMTPサーバーとの接続がない場合、またはSMTPサーバーが受け入れを拒否した場合、レターは消えます。
  2. 受信者アドレスは、SMTPサーバーが誰に、どこに配信すべきかを正しく判断できないという奇妙なルールに従って形成されることがあります。
  3. 上記のルート@リダイレクトの考慮事項を参照してください

したがって、imhoがそれらを使用する意味がある唯一の場所は、ホストOS上で実行されているSMTPサーバーに転送するための軽量仮想コンテナです。

監視サービスを構成する



サーバー有効化


予定外の再起動などの重要なイベントであっても、一部の管理者は、アップタイムまたは最後に誤ってチェックすることでそれを見つけます。 /etc/rc.localの 「exit」の上にある次の行は、すぐに知るのに役立ちます。
 M="Booting complete on $(hostname)."; echo $M | mail -s "$M" admins 


Linux SoftRAID(mdraid)


  1. /etc/mdadm/mdadm.conf:MAILADDR MAILADDR admins
  2. /etc/init.d/mdadm restart


スマート


  1. /etc/smartd.conf:DEVICESCAN DEVICESCAN ... -m admins ...
  2. /etc/init.d/smartmontools restart

完全な最小限のsmartd.conf:
DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner

lm_sensors


  1. rc.localから実行: /usr/local/sbin/healthd.sh &
  2. Healthd.shコード:
     #!/bin/sh test -z "$(which sensors)" && { echo "No sensors binary, exit."; exit 1; } while : ; do sensors | grep -q ALARM || { sleep 15; continue; } sensors | grep -q ALARM | logger -s -t "sensors" -p local0.crit sensors | mail -s "Hardware Health Warning" "admins" sleep 600 done 

その他のオプション:
  1. healthd.sh-lm-sensors.org/browser/lm-sensors/trunk/prog/daemon/healthd.sh
  2. sensormon-www.lm-sensors.org/attachment/ticket/2133/sensormon
  3. lm-monitor-sourceforge.net/projects/lm-monitor


Adaptec RAID



その他のオプション:
  1. quad3datwork-www.sysadmintalk.net/forums/thread-1062.html
  2. aacraid-status-hwraid.le-vert.net/wiki/Adaptec#a3.3.aacraid-status


FreeBSDでのIntel MatrixRAID


  1. 実行:/ usr / local / etc / periodic / daily / raidcheck
  2. コード:
     #!/bin/sh cd /dev for n in ar?; do test "$n" = 'ar?' && exit # ..no ATA RAID #echo "Check $n..." atacontrol status $n | egrep -qv '(READY|ONLINE|subdisks:)' || continue atacontrol status $n | mail -s 'ATA RAID Warning' admins atacontrol status $n | logger -p local4.crit -t RAIDCheck -s done 


Openvz


コンテナのクォータのオーバーフローを毎日チェック-sources.homelink.ru/openvz


PS


メモの90%はローカルWikiからのコピーアンドペーストです。 誰かが重宝する場合-良い。 役に立たない-大丈夫です;-))

Source: https://habr.com/ru/post/J147698/


All Articles