Notre intégration Sendmail monitore les performances de votre agent de transfert de courrier Sendmail, vous aidant à intrumenter et à monitorer rapidement votre agent.

Après avoir configuré l'intégration avec New Relic, visualisez vos données dans un dashboard comme celui-ci, dès la sortie de la boîte.
Suivez les étapes suivantes pour installer l’intégration :
Installer l' agent d'infrastructure
Pour utiliser l’intégration Sendmail, vous devez d’abord installer l’agent d’infrastructure sur le même hôte. L'agent infrastructure monitore l'hôte lui-même, tandis que l'intégration que vous installerez à l'étape suivante étend votre monitoring avec des données spécifiques à Sendmail.
Utilisez NRI-Flex pour capturer des métriques
Flex vous permet de capturer les métriques Apache Zookeeper. Il est fourni avec l’agent New Relic Infrastructure que vous avez installé à l’étape précédente.
Créez un fichier nommé
sendmail-flex-config.yml
dans le chemin/newrelic-infra/integrations.d
.Mettez à jour le
sendmail-flex-config.yml
avec l’exemple de configuration suivant.Assurez-vous de remplacer les références
FAILED_MESSAGES_FILE_NAME
par le nom de votre fichier. Pour trouver ce nom de fichier, accédez à/var/mail/
et vérifiez le fichier qui a été créé pour les messages ayant échoué.---integrations:- name: nri-flexconfig:name: sendmailFlexapis:#check if Sendmail service is up.- event_type: SendmailUpcommands:- run: echo "value:$(systemctl status sendmail | grep 'Active':' active (running)' | wc -l)"split_by: ':'#check if Sendmail service is down.- event_type: SendmailDowncommands:- run: echo "value:$(systemctl status sendmail | grep 'Active':' inactive (dead)' | wc -l)"split_by: ':'#Read the number of times SMTP service is unreachable.- event_type: SendmailSMTPserviceUnreachablecommands:- run: echo "value:$(cat /var/log/mail.log | grep -E 'stat=Service unavailable' | wc -l)"split_by: ':'#Read the count of error message - host not found.- event_type: SendmailHostNotFoundcommands:- run: echo "value:$(cat /var/log/mail.log | grep -c 'host not found')"split_by: ':'#Read the count of error logged.- event_type: SendmailErrorCountcommands:- run: echo "value:$(cat /var/log/mail.err | wc -l)"split_by: ':'#Read the number of messages accepted for delivery.- event_type: SendmailMessageAcceptedForDeliverycommands:- run: echo "value:$(cat /var/log/mail.log | grep -c 'Message accepted for delivery')"split_by: ':'#Read the number of messages sent & deferred.- event_type: SendmailMessageStatuscommands:- run: echo "sent:$(cat /var/log/mail.log | grep 'stat=Sent' | wc -l)"split_by: ':'- run: echo "deferred:$(cat /var/log/mail.log | grep 'stat=Deferred' | wc -l)"split_by: ':'#Read the number of messages held by user.#Go to the path "/var/mail/" and check the file that has been created for failed messages and accordingly update "FAILED_MESSAGES_FILE_NAME" in the below command.- event_type: SendmailHeldMessagecommands:- run: echo "value:$(cat /var/mail/FAILED_MESSAGES_FILE_NAME | grep -c 'Subject:')"split_by: ':'#Read the number of connection timeout.- event_type: SendmailConnectionTimeOutcommands:- run: echo "value:$(cat /var/log/mail.log | grep -c 'timeout')"split_by: ':'#Read the recipients with message count.- event_type: SendmailRecipientsbyMessageCountcommands:- run: cat /var/log/mail.log | grep "to=<.*.>" | awk '{n=split($7,a,"to="); print a[1],a[2]}' | cut -d "<" -f2 |cut -d ">" -f1 | sort | uniq -c | sort -nrsplit: horizontalheader_split_by: \s+(\d+)\s+(.*.)set_header: [msgCount.total, recipients.total]regex_match: truesplit_by: \s+(\d+)\s+(.*.)- run: cat /var/log/mail.log | grep "to=<.*.>" | grep "$(date +'%b %e')" | awk '{n=split($7,a,"to="); print a[1],a[2]}' | cut -d "<" -f2 |cut -d ">" -f1 | sort | uniq -c | sort -nrsplit: horizontalheader_split_by: \s+(\d+)\s+(.*.)set_header: [msgCount.latest, recipients.latest]regex_match: truesplit_by: \s+(\d+)\s+(.*.)#Read the recipients host/domain.- event_type: SendmailRecipientsHostnamecommands:- run: cat /var/log/mail.log | grep "to=<.*.>" | awk '{print $7}' | grep -oE '[^@]+[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}' | sort | uniq -csplit: horizontalheader_split_by: \s+(\d+)\s+(.*.)set_header: [hostCount.total, hostname.total]regex_match: truesplit_by: \s+(\d+)\s+(.*.)- run: cat /var/log/mail.log | grep "to=<.*.>" | grep "$(date +'%b %e')" | awk '{print $7}' | grep -oE '[^@]+[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}' | sort | uniq -csplit: horizontalheader_split_by: \s+(\d+)\s+(.*.)set_header: [hostCount.latest, hostname.latest]regex_match: truesplit_by: \s+(\d+)\s+(.*.)#Read the senders with message count.- event_type: SendmailSendersbyMessageCountcommands:- run: cat /var/log/mail.log | grep "from=<.*@.*>" | awk '{print $7}' | cut -d "<" -f2 |cut -d ">" -f1 | sort | uniq -csplit: horizontalheader_split_by: \s+(\d+)\s+(.*.)set_header: [msg.total, senders.total]regex_match: truesplit_by: \s+(\d+)\s+(.*.)- run: cat /var/log/mail.log | grep "from=<.*@.*>" | grep "$(date +'%b %e')" | awk '{print $7}' | cut -d "<" -f2 |cut -d ">" -f1 | sort | uniq -csplit: horizontalheader_split_by: \s+(\d+)\s+(.*.)set_header: [msg.latest, senders.latest]regex_match: truesplit_by: \s+(\d+)\s+(.*.)#Read the senders host/domain.- event_type: SendmailSendersHostnamecommands:- run: cat /var/log/mail.log | grep "from=<.*.>" | awk '{print $7}' | grep -oE '[^@]+[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}' | sort | uniq -csplit: horizontalheader_split_by: \s+(\d+)\s+(.*.)set_header: [hostCount.total, hostname.total]regex_match: truesplit_by: \s+(\d+)\s+(.*.)- run: cat /var/log/mail.log | grep "from=<.*.>" | grep "$(date +'%b %e')" | awk '{print $7}' | grep -oE '[^@]+[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,}' | sort | uniq -csplit: horizontalheader_split_by: \s+(\d+)\s+(.*.)set_header: [hostCount.latest, hostname.latest]regex_match: truesplit_by: \s+(\d+)\s+(.*.)
Transférez votre log Sendmail vers New Relic
Vous pouvez utiliser notre fonctionnalité de transfert de log pour transférer le log Sendmail vers New Relic.
Ajoutez le script suivant à /etc/newrelic-infra/logging.d/logging.yml
:
logs:- name: mail.log file: /var/log/mail.log attributes: logtype: sendmail_log- name: mail.err file: /var/log/mail.err attributes: logtype: sendmail_error
Redémarrez l'agent New Relic Infrastructure
Avant de pouvoir commencer à lire vos données, utilisez les instructions de notre documentation suragent d'infrastructure pour redémarrer votre agent d'infrastructure.
$sudo systemctl restart newrelic-infra.service
Dans quelques minutes, votre application enverra des métriques à one.newrelic.com.
Trouvez vos données
Vous pouvez choisir notre modèle dashboard prédéfini nommé Sendmail
pour monitorer les métriques de votre application Sendmail. Suivez ces étapes pour utiliser notre modèle dashboard prédéfini :
De one.newrelic.com, aller à la page + Integrations & Agents .
Cliquez sur Dashboards.
Dans la barre de recherche, tapez
sendmail
.Le dashboard Sendmail devrait apparaître. Cliquez dessus pour l'installer.
Votre dashboard Sendmail est considéré comme un dashboard personnalisé et peut être trouvé dans l'UI Dashboards. Pour obtenir des documents sur l'utilisation et la modification du dashboard, consultez notre documentation dashboard .
Voici une requête NRQL pour trouver le statut d'envoi de votre dernier message :
SELECT latest(sent) as 'Sent', latest(deferred) as ‘Deferred’FROM SendmailMessageStatusVoici une requête NRQL pour trouver l'état du service Sendmail :
SELECT latest(value) as 'Service Up'FROM SendmailUpTIMESERIES AUTO
Quelle est la prochaine étape ?
Pour en savoir plus sur la création de requêtes NRQL et la génération de dashboards, consultez ces documents :
- Introduction au générateur de requêtes pour créer des requêtes basiques et avancées.
- Introduction au dashboard pour personnaliser votre dashboard et effectuer différentes actions.
- Gérez votre dashboard pour ajuster votre mode d'affichage ou pour ajouter plus de contenu à votre dashboard.