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']
level | number |
---|---|
Normal User | 1 |
Global Read | 5 |
Administrator | 10 |
Demo User | 11 |
結論
これによりalert ruleにひっかかった場合、adminsと対象デバイスがアサインされているアカウントにメールが流れる