がらくたネット


AlertメールのContacts

AlertメールのContacts

Alertメールを送る時に複数に送ったりできないか?という疑問

includes/alert.inc.phpに定義があってその中に GetContacts($results)でContactリストを生成している

これによると…

$config['alert']['default_only'] = true
$config['alerts']['email']['default_only'] = true
の場合
$config['alerts']['email']['default']
$config['alert']['default_mail']
の値が名前 NOC と共に設定される

default_onlyが設定されていない場合
設定してあるユーザ一覧を$usersに代入
次に$resultsを展開して($resultsはalertを挙げたデバイスとかポートとかの情報)

bill_idがある場合
 bill_permsテーブルからuser_idを検索して$uidsに設定
port_idがある場合
 ports_prmsテーブルからuser_idを検索して$uidsに設定
device_idがある場合
 $config['alert']['syscontact'] = trueの場合
  devices_attribsから読み取る?
 そうじゃない場合
  devicesテーブルからsysContactを検索して$uidsに設定

次に$usersを展開して

もし$config['alert']['globals'] = trueで$user['level']が5以上、10未満の場合
 $contactsに$user['email']を設定
または$config['alert']['admins'] = trueで$user['level']が10の場合
 $contactsに$user['email']を設定
または$user['user_id'],$uidsが設定されている場合
 $contactsに$user['email']を設定

こんな風にContactsリストを作成している

WebGUIのAlerting Settingsの「alerts to read only users」ってのは$config['alert']['globals']のこと
なぜ記述文字列が変わっているのかは不明

$user['level']

levelnumber
Normal User1
Global Read5
Administrator10
Demo User11

結論

  • alert default_onlyは無効
  • alert globalsは有効
  • alert adminsは有効
  • alert sysContactは無効
  • administratorレベルのユーザを作成してメールアドレスを適切に設定
  • Normal Userを作成、Permissionsで対象デバイスをアサイン

これによりalert ruleにひっかかった場合、adminsと対象デバイスがアサインされているアカウントにメールが流れる