La classe NsServerAlert représente une condition critique surveillée par le serveur de sauvegarde. Lorsqu'une alerte est déclenchée, cela signifie que la condition a éé rencontrée. Toute alerte déclenchée doit être réinitialisée manuellement afin que la surveillance de la condition soit relancée. La réinitialisation des alertes peut se faire depuis la console d'administration ou par code.
Les alertes serveur permettent de prévenir d'une défaillance ou d'une situation inhabituelle. Elles peuvent être appliquées à de nombreux objets du serveur de sauvegarde : utilisateurs, groupes, sauvegardes, etc. Le déclenchement d'une alerte engendre une notification dans la console d'administration du logiciel et suivant les paramètres de reporting choisis, un e-mail peut etre envoyé à l'administrateur du serveur de de sauvegarde.
Un système d'héritage permet de définir au niveau du groupe d'utilisateurs (NsUserGroup) les alertes qui devront être automatiquement injectées par le serveur lors de la création de nouvelles sauvegardes et de nouveaux groupes. Un utilisateur connecté avec des droits administrateur peut également créer, modifier et réinitialiser des alertes.
L'identificateur numérique de l'alerte. Les constantes suivantes peuvent-être utilisées :
La date de création de l'alerte, au format UTC.
La classe de l'alerte.
La sous-classe de l'alerte.
Le type de l'objet sur lequel porte l'alerte.
L'identificateur unique de l'objet sur lequel porte l'alerte.
Une valeur booléenne indiquant si l'alerte est déclenchée ou non.
Le mode de notification à utiliser lorsque l'alerte est déclenchée.
La date de déclenchement de l'alerte au format UTC, le cas échéant.
Charge en mémoire l'alerte d'identificateur AlertID.
Créée ou met à jour l'alerte décrite par l'objet.
Supprime l'alerte représentée par l'objet.
Réinitialise l'alerte, si elle est déclenchée.
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") const nsAlertClassCheckMaxAuthAttempts = 11 const aotUser = 2 const nsAlertNotifyServerAdmin = 1 if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") usersCount = 0 ' Compte les utilisateurs du serveur existingAlertsCount = 0 ' Compte le nombre d'alertes nsAlertClassCheckMaxAuthAttempts déjà créées createdAlertsCount = 0 ' Compte le nombre d'alertes nsAlertClassCheckMaxAuthAttempts créées par ce script if server.Load(connection) then ' Charger les informations serveur set groups = server.UserGroups(connection) ' Récupérer les groupes paramétrés for each group in groups ' Pour chaque groupe set users = group.Users(connection) ' Récupérer les utilisateurs du groupe for each user in users ' Pour chaque utilisateur set alerts = user.alerts(connection, false) ' Récupérer toutes les alertes qui lui sont associées usersCount = usersCount + 1 index = alerts.FindByClass(nsAlertClassCheckMaxAuthAttempts) ' Chercher la position dans la liste de l'alerte nsAlertClassCheckMaxAuthAttempts if index = -1 then ' L'alerte n'exite pas ! set newAlert = CreateObject("NsAPI.NsServerAlert") newAlert.ID = -1 ' Constante nécessaire pour créer l'alerte newAlert.AlertClass = nsAlertClassCheckMaxAuthAttempts newAlert.AlertSubclass = 0 newAlert.ObjectType = aotUser ' Associer à un objet Utilisateur newAlert.ObjectID = user.ID ' L'ID de l'utilisateur newAlert.NotifyMode = nsAlertNotifyServerAdmin ' Envoyer un mail à l'admin serveur if newAlert.update(connection) then ' Créer l'alerte createdAlertsCount = createdAlertsCount + 1 ' Incrémenter le nombre d'alertes créées else MsgBox "Impossible de créer une alerte. Consultez les journaux serveur pour en savoir plus." ' Erreur end if else ' L'alerte existe déjà. On ne fait rien, à part incrémenter le nombre d'alertes existantes. existingAlertsCount = existingAlertsCount + 1 end if next next ' Afficher un joli résumé MsgBox usersCount & " utilisateurs ont été analysés." & vbCrLf & existingAlertsCount & " alertes existaient déjà." & vbCrLf & createdAlertsCount & " alertes ont été crées." else MsgBox "Impossible de charger les informations serveur." end if connection.Disconnect else MsgBox "Connexion au serveur local impossible." end if
Set connection = CreateObject("NsAPI.NsConnection") Set sysutils = CreateObject("NsAPI.NsScriptUtils") if connection.ConnectToLocalServer then set server = CreateObject("NsAPI.NsServer") raisedAlertsCount = 0 if server.Load(connection) then ' Charger les informations serveur set alerts = server.Alerts(connection, true) ' Obtenir la liste des alertes déclenchées for each alert in alerts ' Pour chaque alerte if alert.Reset(connection) then ' Réinitialisation de l'alerte... raisedAlertsCount = raisedAlertsCount + 1 ' Succès : on incrémente le compteur else MsgBox "Impossible de réinitialiser l'alerte #" & alert.ID ' Echec : on notifie l'erreur end if next else MsgBox "Impossible de charger les informations serveur." end if if raisedAlertsCount = 0 then MsgBox "Aucune alerte n'a été réinitialisée." else MsgBox raisedAlertsCount & " alertes ont été réinitialisées." end if connection.Disconnect else MsgBox "Connexion au serveur local impossible." end if