జింబ్రా OSE లాగ్‌లతో ఎలా పని చేయాలి

సంభవించే అన్ని ఈవెంట్‌లను లాగిన్ చేయడం అనేది ఏదైనా కార్పొరేట్ సిస్టమ్ యొక్క అత్యంత ముఖ్యమైన విధుల్లో ఒకటి. లాగ్‌లు ఉద్భవిస్తున్న సమస్యలను పరిష్కరించడానికి, సమాచార వ్యవస్థల ఆపరేషన్‌ను ఆడిట్ చేయడానికి మరియు సమాచార భద్రతా సంఘటనలను పరిశోధించడానికి మిమ్మల్ని అనుమతిస్తాయి. జింబ్రా OSE దాని ఆపరేషన్ యొక్క వివరణాత్మక లాగ్‌లను కూడా ఉంచుతుంది. అవి సర్వర్ పనితీరు నుండి వినియోగదారుల ద్వారా ఇమెయిల్‌లను పంపడం మరియు స్వీకరించడం వరకు మొత్తం డేటాను కలిగి ఉంటాయి. అయినప్పటికీ, జింబ్రా OSE ద్వారా రూపొందించబడిన లాగ్‌లను చదవడం అనేది చిన్నవిషయం కాని పని. ఈ వ్యాసంలో, ఒక నిర్దిష్ట ఉదాహరణను ఉపయోగించి, జింబ్రా OSE లాగ్‌లను ఎలా చదవాలో, అలాగే వాటిని ఎలా కేంద్రీకృతం చేయాలో మేము మీకు తెలియజేస్తాము.

జింబ్రా OSE లాగ్‌లతో ఎలా పని చేయాలి
Zimbra OSE అన్ని స్థానిక లాగ్‌లను /opt/zimbra/log ఫోల్డర్‌లో నిల్వ చేస్తుంది మరియు లాగ్‌లను /var/log/zimbra.log ఫైల్‌లో కూడా కనుగొనవచ్చు. వీటిలో ముఖ్యమైనది mailbox.log. ఇది మెయిల్ సర్వర్‌లో జరిగే అన్ని చర్యలను రికార్డ్ చేస్తుంది. వీటిలో ఇమెయిల్‌ల ప్రసారం, వినియోగదారు ప్రామాణీకరణ డేటా, విఫలమైన లాగిన్ ప్రయత్నాలు మరియు ఇతరాలు ఉన్నాయి. mailbox.logలోని ఎంట్రీలు ఈవెంట్ సంభవించిన సమయం, ఈవెంట్ యొక్క స్థాయి, ఈవెంట్ సంభవించిన థ్రెడ్ నంబర్, వినియోగదారు పేరు మరియు IP చిరునామా, అలాగే ఈవెంట్ యొక్క వచన వివరణను కలిగి ఉన్న టెక్స్ట్ స్ట్రింగ్. .

జింబ్రా OSE లాగ్‌లతో ఎలా పని చేయాలి

లాగ్ స్థాయి సర్వర్ యొక్క ఆపరేషన్‌పై ఈవెంట్ యొక్క ప్రభావం స్థాయిని సూచిస్తుంది. డిఫాల్ట్‌గా 4 ఈవెంట్ స్థాయిలు ఉన్నాయి: సమాచారం, వార్న్, ఎర్రర్ మరియు ఫాటల్. తీవ్రతను పెంచే క్రమంలో అన్ని స్థాయిలను చూద్దాం.

  • సమాచారం - ఈ స్థాయిలో ఈవెంట్‌లు సాధారణంగా జింబ్రా OSE యొక్క పురోగతి గురించి తెలియజేయడానికి ఉద్దేశించబడ్డాయి. ఈ స్థాయి సందేశాలలో మెయిల్‌బాక్స్‌ని సృష్టించడం లేదా తొలగించడం మొదలైన వాటిపై నివేదికలు ఉంటాయి.
  • హెచ్చరిక - ఈ స్థాయి సంఘటనలు సంభావ్య ప్రమాదకరమైన పరిస్థితుల గురించి తెలియజేస్తాయి, కానీ సర్వర్ ఆపరేషన్‌ను ప్రభావితం చేయవు. ఉదాహరణకు, WARN స్థాయి విఫలమైన వినియోగదారు లాగిన్ ప్రయత్నం గురించి సందేశాన్ని సూచిస్తుంది.
  • లోపం - లాగ్‌లోని ఈ ఈవెంట్ స్థాయి స్థానిక స్వభావం మరియు సర్వర్ యొక్క ఆపరేషన్‌లో జోక్యం చేసుకోని లోపం సంభవించినట్లు తెలియజేస్తుంది. ఈ స్థాయి వ్యక్తిగత వినియోగదారు సూచిక డేటా పాడైపోయిన దోషాన్ని ఫ్లాగ్ చేయవచ్చు.
  • FATAL - ఈ స్థాయి లోపాలను సూచిస్తుంది, దీని కారణంగా సర్వర్ సాధారణంగా పనిచేయడం కొనసాగించదు. ఉదాహరణకు, DBMSకి కనెక్ట్ చేయడంలో అసమర్థతను సూచించే రికార్డ్ కోసం FATAL స్థాయి ఉంటుంది.

మెయిల్ సర్వర్ లాగ్ ఫైల్ ప్రతిరోజూ నవీకరించబడుతుంది. ఫైల్ యొక్క తాజా సంస్కరణ ఎల్లప్పుడూ Mailbox.log అనే పేరును కలిగి ఉంటుంది, అయితే నిర్దిష్ట తేదీకి సంబంధించిన లాగ్‌లు పేరులో తేదీని కలిగి ఉంటాయి మరియు ఆర్కైవ్‌లో ఉంటాయి. ఉదాహరణకు mailbox.log.2020-09-29.tar.gz. ఇది కార్యాచరణ లాగ్‌లను బ్యాకప్ చేయడం మరియు లాగ్‌ల ద్వారా శోధించడం చాలా సులభం చేస్తుంది.

సిస్టమ్ అడ్మినిస్ట్రేటర్ సౌలభ్యం కోసం, /opt/zimbra/log/ ఫోల్డర్ ఇతర లాగ్‌లను కలిగి ఉంటుంది. అవి నిర్దిష్ట జింబ్రా OSE మూలకాలకు సంబంధించిన ఎంట్రీలను మాత్రమే కలిగి ఉంటాయి. ఉదాహరణకు, audit.log వినియోగదారు ప్రామాణీకరణ గురించిన రికార్డులను మాత్రమే కలిగి ఉంటుంది, clamd.log యాంటీవైరస్ యొక్క ఆపరేషన్ గురించి డేటాను కలిగి ఉంటుంది మరియు మొదలైనవి. మార్గం ద్వారా, చొరబాటుదారుల నుండి జింబ్రా OSE సర్వర్‌ను రక్షించే అద్భుతమైన పద్ధతి Fail2Ban ఉపయోగించి సర్వర్ రక్షణ, ఇది కేవలం audit.log ఆధారంగా పని చేస్తుంది. కమాండ్‌ను అమలు చేయడానికి క్రాన్ టాస్క్‌ను జోడించడం కూడా మంచి పద్ధతి grep -ir "చెల్లని పాస్‌వర్డ్" /opt/zimbra/log/audit.logరోజువారీ లాగిన్ వైఫల్య సమాచారాన్ని స్వీకరించడానికి.

జింబ్రా OSE లాగ్‌లతో ఎలా పని చేయాలి
audit.log రెండుసార్లు తప్పుగా నమోదు చేసిన పాస్‌వర్డ్‌ను మరియు విజయవంతమైన లాగిన్ ప్రయత్నాన్ని ఎలా చూపిస్తుంది అనేదానికి ఉదాహరణ.

జింబ్రా OSEలోని లాగ్‌లు వివిధ క్లిష్టమైన వైఫల్యాల కారణాలను గుర్తించడంలో చాలా ఉపయోగకరంగా ఉంటాయి. క్లిష్టమైన లోపం సంభవించినప్పుడు, నిర్వాహకుడికి సాధారణంగా లాగ్‌లను చదవడానికి సమయం ఉండదు. వీలైనంత త్వరగా సర్వర్‌ని పునరుద్ధరించడం అవసరం. అయితే, తర్వాత, సర్వర్ బ్యాకప్ అయినప్పుడు మరియు చాలా లాగ్‌లను రూపొందించినప్పుడు, పెద్ద ఫైల్‌లో అవసరమైన ఎంట్రీని కనుగొనడం కష్టం. ఎర్రర్ రికార్డ్‌ను త్వరగా కనుగొనడానికి, సర్వర్ పునఃప్రారంభించబడిన సమయాన్ని తెలుసుకోవడం మరియు ఈ సమయం నుండి డేటింగ్ లాగ్‌లలో ఒక ఎంట్రీని కనుగొనడం సరిపోతుంది. మునుపటి నమోదు సంభవించిన లోపం యొక్క రికార్డ్ అవుతుంది. FATAL అనే కీవర్డ్ కోసం వెతకడం ద్వారా మీరు దోష సందేశాన్ని కూడా కనుగొనవచ్చు.

జింబ్రా OSE లాగ్‌లు క్లిష్టమైన వైఫల్యాలను గుర్తించడానికి కూడా మిమ్మల్ని అనుమతిస్తాయి. ఉదాహరణకు, హ్యాండ్లర్ మినహాయింపులను కనుగొనడానికి, మీరు హ్యాండ్లర్ మినహాయింపు కోసం శోధించవచ్చు. తరచుగా, హ్యాండ్లర్ల ద్వారా ఉత్పన్నమయ్యే లోపాలు స్టాక్ ట్రేస్‌తో కలిసి ఉంటాయి, అది మినహాయింపుకు కారణమేమిటో వివరిస్తుంది. మెయిల్ డెలివరీతో లోపాల విషయంలో, మీరు మీ శోధనను LmtpServer కీవర్డ్‌తో ప్రారంభించాలి మరియు POP లేదా IMAP ప్రోటోకాల్‌లకు సంబంధించిన లోపాల కోసం శోధించడానికి, మీరు ImapServer మరియు Pop3Server కీలకపదాలను ఉపయోగించవచ్చు.

సమాచార భద్రతా సంఘటనలను పరిశోధించేటప్పుడు కూడా లాగ్‌లు సహాయపడతాయి. ఒక నిర్దిష్ట ఉదాహరణ చూద్దాం. సెప్టెంబర్ 20న, ఉద్యోగుల్లో ఒకరు క్లయింట్‌కు వైరస్ సోకిన లేఖను పంపారు. ఫలితంగా, క్లయింట్ కంప్యూటర్‌లోని డేటా ఎన్‌క్రిప్ట్ చేయబడింది. అయితే తానేమీ పంపలేదని సదరు ఉద్యోగి వాపోయాడు. ఈ సంఘటనపై విచారణలో భాగంగా, ఎంటర్‌ప్రైజ్ సెక్యూరిటీ సర్వీస్ సిస్టమ్ అడ్మినిస్ట్రేటర్ నుండి మెయిల్ సర్వర్ లాగ్‌లను సెప్టెంబర్ 20న దర్యాప్తు చేయబడుతున్న వినియోగదారుతో అనుబంధించబడిందని అభ్యర్థిస్తుంది. టైమ్ స్టాంప్‌కు ధన్యవాదాలు, సిస్టమ్ అడ్మినిస్ట్రేటర్ అవసరమైన లాగ్ ఫైల్‌ను కనుగొంటాడు, అవసరమైన సమాచారాన్ని సంగ్రహించి భద్రతా నిపుణులకు బదిలీ చేస్తాడు. వారు, దాని ద్వారా చూడండి మరియు ఈ లేఖ పంపబడిన IP చిరునామా వినియోగదారు కంప్యూటర్ యొక్క IP చిరునామాకు అనుగుణంగా ఉందని కనుగొనండి. లేఖ పంపిన సమయంలో ఉద్యోగి తన కార్యాలయంలో ఉన్నట్లు సీసీటీవీ ఫుటేజీ నిర్ధారించింది. అతను సమాచార భద్రతా నియమాలను ఉల్లంఘించాడని మరియు అతనిని తొలగించాడని ఆరోపించడానికి ఈ డేటా సరిపోతుంది. 

జింబ్రా OSE లాగ్‌లతో ఎలా పని చేయాలి
Mailbox.log లాగ్ నుండి ప్రత్యేక ఫైల్‌లోకి ఖాతాలలో ఒకదాని గురించి రికార్డ్‌లను సంగ్రహించే ఉదాహరణ

మల్టీ-సర్వర్ ఇన్‌ఫ్రాస్ట్రక్చర్ విషయానికి వస్తే ప్రతిదీ చాలా క్లిష్టంగా మారుతుంది. లాగ్‌లు స్థానికంగా సేకరించబడినందున, బహుళ-సర్వర్ అవస్థాపనలో వారితో పనిచేయడం చాలా అసౌకర్యంగా ఉంటుంది మరియు అందువల్ల లాగ్‌ల సేకరణను కేంద్రీకరించాల్సిన అవసరం ఉంది. లాగ్‌లను సేకరించడానికి హోస్ట్‌ని సెటప్ చేయడం ద్వారా ఇది చేయవచ్చు. మౌలిక సదుపాయాలకు ప్రత్యేక హోస్ట్‌ను జోడించాల్సిన అవసరం లేదు. ఏదైనా మెయిల్ సర్వర్ లాగ్‌లను సేకరించడానికి నోడ్‌గా పని చేస్తుంది. మా విషయంలో, ఇది Mailstore01 నోడ్ అవుతుంది.

ఈ సర్వర్‌లో మనం కింది ఆదేశాలను నమోదు చేయాలి:

sudo su – zimbra 
zmcontrol stop
exit
sudo /opt/zimbra/libexec/zmfixperms -e -v

/etc/sysconfig/rsyslog ఫైల్‌ను సవరించండి మరియు SYSLOGD_OPTIONS=”-r -c 2″ని సెట్ చేయండి

/etc/rsyslog.conf సవరించండి మరియు క్రింది పంక్తులను తీసివేయండి:
$ModLoad imudp
$UDPServerRun 514

కింది ఆదేశాలను నమోదు చేయండి:

sudo /etc/init.d/rsyslog stop
sudo /etc/init.d/rsyslog start
sudo su – zimbra
zmcontrol start
exit
sudo /opt/zimbra/libexec/zmloggerinit
sudo /opt/zimbra/bin/zmsshkeygen
sudo /opt/zimbra/bin/zmupdateauthkeys

మీరు zmprov gacf | కమాండ్ ఉపయోగించి ప్రతిదీ పని చేస్తుందో లేదో తనిఖీ చేయవచ్చు grep zimbraLogHostname. ఆదేశాన్ని అమలు చేసిన తర్వాత, లాగ్‌లను సేకరించే హోస్ట్ పేరు ప్రదర్శించబడాలి. దీన్ని మార్చడానికి, మీరు తప్పనిసరిగా zmprov mcf zimbraLogHostname mailstore01.company.ru ఆదేశాన్ని నమోదు చేయాలి.

అన్ని ఇతర ఇన్‌ఫ్రాస్ట్రక్చర్ సర్వర్‌లలో (LDAP, MTA మరియు ఇతర మెయిల్ స్టోర్‌లు), లాగ్‌లు పంపబడిన హోస్ట్ పేరును చూడటానికి zmprov gacf |grep zimbraLogHostname ఆదేశాన్ని అమలు చేయండి. దీన్ని మార్చడానికి, మీరు ఆదేశాన్ని కూడా నమోదు చేయవచ్చు zmprov mcf zimbraLogHostname mailstore01.company.ru

మీరు ప్రతి సర్వర్‌లో కింది ఆదేశాలను కూడా నమోదు చేయాలి:

sudo su - zimbra
/opt/zimbra/bin/zmsshkeygen
/opt/zimbra/bin/zmupdateauthkeys
exit
sudo /opt/zimbra/libexec/zmsyslogsetup
sudo service rsyslog restart
sudo su - zimbra
zmcontrol restart

దీని తర్వాత, మీరు పేర్కొన్న సర్వర్‌లో అన్ని లాగ్‌లు రికార్డ్ చేయబడతాయి, అక్కడ వాటిని సౌకర్యవంతంగా వీక్షించవచ్చు. అలాగే, జింబ్రా OSE అడ్మినిస్ట్రేటర్ కన్సోల్‌లో, సర్వర్‌ల స్థితి గురించిన సమాచారంతో స్క్రీన్‌పై, నడుస్తున్న లాగర్ సేవ mailstore01 సర్వర్ కోసం మాత్రమే ప్రదర్శించబడుతుంది.

జింబ్రా OSE లాగ్‌లతో ఎలా పని చేయాలి

అడ్మినిస్ట్రేటర్‌కి మరొక తలనొప్పి నిర్దిష్ట ఇమెయిల్‌ను ట్రాక్ చేయడం. జింబ్రా OSEలోని ఇమెయిల్‌లు ఒకేసారి అనేక విభిన్న ఈవెంట్‌ల ద్వారా వెళతాయి కాబట్టి: యాంటీవైరస్, యాంటిస్పామ్ మరియు మొదలైన వాటి ద్వారా స్కానింగ్ చేయడం, ఆమోదించడానికి లేదా పంపడానికి ముందు, నిర్వాహకులకు, ఇమెయిల్ రాకపోతే, ఏ దశలో ట్రేస్ చేయడం చాలా సమస్యాత్మకంగా ఉంటుంది. అది పోయింది .

ఈ సమస్యను పరిష్కరించడానికి, మీరు ప్రత్యేక స్క్రిప్ట్‌ను ఉపయోగించవచ్చు, ఇది సమాచార భద్రతా నిపుణుడు విక్టర్ దుఖోవ్నీచే అభివృద్ధి చేయబడింది మరియు పోస్ట్‌ఫిక్స్ డెవలపర్‌లచే ఉపయోగం కోసం సిఫార్సు చేయబడింది. ఈ స్క్రిప్ట్ ఒక నిర్దిష్ట ప్రక్రియ కోసం లాగ్‌ల నుండి ఎంట్రీలను సంగ్రహిస్తుంది మరియు దీని కారణంగా, దాని ఐడెంటిఫైయర్ ఆధారంగా నిర్దిష్ట అక్షరాన్ని పంపడానికి సంబంధించిన అన్ని ఎంట్రీలను త్వరగా ప్రదర్శించడానికి మిమ్మల్ని అనుమతిస్తుంది. దీని పని 8.7 నుండి ప్రారంభించి జింబ్రా OSE యొక్క అన్ని వెర్షన్లలో పరీక్షించబడింది. స్క్రిప్ట్ యొక్క వచనం ఇక్కడ ఉంది.

#! /usr/bin/perl

use strict;
use warnings;

# Postfix delivery agents
my @agents = qw(discard error lmtp local pipe smtp virtual);

my $instre = qr{(?x)
	A			# Absolute line start
	(?:S+ s+){3} 		# Timestamp, adjust for other time formats
	S+ s+ 		# Hostname
	(postfix(?:-[^/s]+)?)	# Capture instance name stopping before first '/'
	(?:/S+)*		# Optional non-captured '/'-delimited qualifiers
	/			# Final '/' before the daemon program name
	};

my $cmdpidre = qr{(?x)
	G			# Continue from previous match
	(S+)[(d+)]:s+	# command[pid]:
};

my %smtpd;
my %smtp;
my %transaction;
my $i = 0;
my %seqno;

my %isagent = map { ($_, 1) } @agents;

while (<>) {
	next unless m{$instre}ogc; my $inst = $1;
	next unless m{$cmdpidre}ogc; my $command = $1; my $pid = $2;

	if ($command eq "smtpd") {
		if (m{Gconnect from }gc) {
			# Start new log
			$smtpd{$pid}->{"log"} = $_; next;
		}

		$smtpd{$pid}->{"log"} .= $_;

		if (m{G(w+): client=}gc) {
			# Fresh transaction 
			my $qid = "$inst/$1";
			$smtpd{$pid}->{"qid"} = $qid;
			$transaction{$qid} = $smtpd{$pid}->{"log"};
			$seqno{$qid} = ++$i;
			next;
		}

		my $qid = $smtpd{$pid}->{"qid"};
		$transaction{$qid} .= $_
			if (defined($qid) && exists $transaction{$qid});
		delete $smtpd{$pid} if (m{Gdisconnect from}gc);
		next;
	}

	if ($command eq "pickup") {
		if (m{G(w+): uid=}gc) {
			my $qid = "$inst/$1";
			$transaction{$qid} = $_;
			$seqno{$qid} = ++$i;
		}
		next;
	}

	# bounce(8) logs transaction start after cleanup(8) already logged
	# the message-id, so the cleanup log entry may be first
	#
	if ($command eq "cleanup") {
		next unless (m{G(w+): }gc);
		my $qid = "$inst/$1";
		$transaction{$qid} .= $_;
		$seqno{$qid} = ++$i if (! exists $seqno{$qid});
		next;
	}

	if ($command eq "qmgr") {
		next unless (m{G(w+): }gc);
		my $qid = "$inst/$1";
		if (defined($transaction{$qid})) {
			$transaction{$qid} .= $_;
			if (m{Gremoved$}gc) {
				print delete $transaction{$qid}, "n";
			}
		}
		next;
	}

	# Save pre-delivery messages for smtp(8) and lmtp(8)
	#
	if ($command eq "smtp" || $command eq "lmtp") {
		$smtp{$pid} .= $_;

		if (m{G(w+): to=}gc) {
			my $qid = "$inst/$1";
			if (defined($transaction{$qid})) {
				$transaction{$qid} .= $smtp{$pid};
			}
			delete $smtp{$pid};
		}
		next;
	}

	if ($command eq "bounce") {
		if (m{G(w+): .*? notification: (w+)$}gc) {
			my $qid = "$inst/$1";
			my $newid = "$inst/$2";
			if (defined($transaction{$qid})) {
				$transaction{$qid} .= $_;
			}
			$transaction{$newid} =
				$_ . $transaction{$newid};
			$seqno{$newid} = ++$i if (! exists $seqno{$newid});
		}
		next;
	}

	if ($isagent{$command}) {
		if (m{G(w+): to=}gc) {
			my $qid = "$inst/$1";
			if (defined($transaction{$qid})) {
				$transaction{$qid} .= $_;
			}
		}
		next;
	}
}

# Dump logs of incomplete transactions.
foreach my $qid (sort {$seqno{$a} <=> $seqno{$b}} keys %transaction) {
    print $transaction{$qid}, "n";
}

స్క్రిప్ట్ పెర్ల్‌లో వ్రాయబడింది మరియు దీన్ని అమలు చేయడానికి మీరు దానిని ఫైల్‌లో సేవ్ చేయాలి collate.pl, దీన్ని ఎక్జిక్యూటబుల్‌గా చేసి, ఆపై లాగ్ ఫైల్‌ను పేర్కొనే ఫైల్‌ను అమలు చేయండి మరియు మీరు వెతుకుతున్న అక్షరం యొక్క గుర్తింపు సమాచారాన్ని సేకరించేందుకు pgrepని ఉపయోగించండి collate.pl /var/log/zimbra.log | pgrep '[ఇమెయిల్ రక్షించబడింది]>'. ఫలితం సర్వర్‌లో అక్షరం యొక్క కదలిక గురించి సమాచారాన్ని కలిగి ఉన్న లైన్ల వరుస అవుట్‌పుట్ అవుతుంది.

# collate.pl /var/log/zimbra.log | pgrep '<[email protected]>'
Oct 13 10:17:00 mail postfix/pickup[4089]: 4FF14284F45: uid=1034 from=********
Oct 13 10:17:00 mail postfix/cleanup[26776]: 4FF14284F45: message-id=*******
Oct 13 10:17:00 mail postfix/qmgr[9946]: 4FF14284F45: from=********, size=1387, nrcpt=1 (queue active)
Oct 13 10:17:00 mail postfix/smtp[7516]: Anonymous TLS connection established to mail.*******[168.*.*.4]:25: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Oct 13 10:17:00 mail postfix/smtp[7516]: 4FF14284F45: to=*********, relay=mail.*******[168.*.*.4]:25, delay=0.25, delays=0.02/0.02/0.16/0.06, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 878833424CF)
Oct 13 10:17:00 mail postfix/qmgr[9946]: 4FF14284F45: removed
Oct 13 10:17:07 mail postfix/smtpd[21777]: connect from zimbra.******[168.*.*.4]
Oct 13 10:17:07 mail postfix/smtpd[21777]: Anonymous TLS connection established from zimbra.******[168.*.*.4]: TLSv1 with cipher ADH-AES256-SHA (256/256 bits)
Oct 13 10:17:08 mail postfix/smtpd[21777]: 0CB69282F4E: client=zimbra.******[168.*.*.4]
Oct 13 10:17:08 mail postfix/cleanup[26776]: 0CB69282F4E: message-id=zimbra.******
Oct 13 10:17:08 mail postfix/qmgr[9946]: 0CB69282F4E: from=zimbra.******, size=3606, nrcpt=1 (queue active)
Oct 13 10:17:08 mail postfix/virtual[5291]: 0CB69282F4E: to=zimbra.******, orig_to=zimbra.******, relay=virtual, delay=0.03, delays=0.02/0/0/0.01, dsn=2.0.0, status=sent (delivered to maildir)
Oct 13 10:17:08 mail postfix/qmgr[9946]: 0CB69282F4E: removed

Zextras Suiteకి సంబంధించిన అన్ని ప్రశ్నల కోసం, మీరు Zextras ప్రతినిధి ఎకటెరినా ట్రియాండఫిలిడిని ఇమెయిల్ ద్వారా సంప్రదించవచ్చు [ఇమెయిల్ రక్షించబడింది]

మూలం: www.habr.com