AMAVIS-LOGWATCH(1)
π amavis-logwatch(1) π
General Commands Manual πΈ
β¨ NAME β¨
amavis-logwatch - An Amavisd-new log parser and analysis utility π
π¦ SYNOPSIS π¦
amavis-logwatch [options] [logfile ...]
π DESCRIPTION π
okay bestie, so amavis-logwatch(1) is an Amavisd-new log parser π§ that cooks up summaries, details, and statistics about how Amavisd-new is running (we'll just call it Amavis from here on, periodt β¨).
It can run as a standalone program, or as a Logwatch filter module so you get Amavisd-new summary and detailed reports right inside Logwatch π«Ά
This thing can make a wide range of reports, and the data is grouped and sorted as much as possible so there's less noise and the patterns actually pop π₯ The brief summary reports give you the quick vibe check on general Amavis operations and message delivery, and they call out any warnings that might need your attention π The detailed reports are hierarchically arranged and super easy to scan, with as much or as little detail as you want π
Most of the good stuff only shows up when Amavis' $log_level is set to at least 2. See Amavis Log Level below.
So the output has two main sections: a Summary section and a Detailed section π For readability, every event or hit count sits in the left column, then comes a short description of the event type, and then any extra stats or count representations get tucked into the rightmost column π
Here's a segment from a sample Summary report so you can see the vibe:
****** Summary ********************************************
9 Miscellaneous warnings
20313 Total messages scanned ---------------- 100.00%
1008.534M Total bytes scanned 1,057,524,252
======== ================================================
1190 Blocked ------------------------------- 5.86%
18 Malware blocked 0.09%
4 Banned name blocked 0.02%
416 Spam blocked 2.05%
752 Spam discarded (no quarantine) 3.70%
19123 Passed -------------------------------- 94.14%
47 Bad header passed 0.23%
19076 Clean passed 93.91%
======== ================================================
18 Malware ------------------------------- 0.09%
18 Malware blocked 0.09%
4 Banned -------------------------------- 0.02%
4 Banned file blocked 0.02%
1168 Spam ---------------------------------- 5.75%
416 Spam blocked 2.05%
752 Spam discarded (no quarantine) 3.70%
19123 Ham ----------------------------------- 94.14%
47 Bad header passed 0.23%
19076 Clean passed 93.91%
======== ================================================
1982 SpamAssassin bypassed
32 Released from quarantine
2 DSN notification (debug supplemental)
2 Bounce unverifiable
2369 Whitelisted
2 Blacklisted
12 MIME error
58 Bad header (debug supplemental)
40 Extra code modules loaded at runtime
Okay so reading that report π€ it says there were 9 general warnings, and Amavis scanned a total of 20313 messages, which adds up to 1008.53 megabytes or 1,057,524,252 bytes π Next up is the Blocked / Passed overview: 1190 messages got blocked (18 as malware, 4 with banned names, 416 spam messages, and 752 discarded), and 19123 got passed (47 with bad headers and 19076 clean ones) π
The next grouping (it's optional) shows message disposition by contents category. So there were 18 malware messages and 4 banned file messages, all blocked π ββοΈ There were 1168 Spam messages, and 416 of those were blocked (quarantined) while 752 got discarded. Lastly, there were 19123 messages considered Ham (aka not spam), and 47 of those had bad headers π«
Tons of other count summaries for different events show up too π
There are dozens of sub-sections in the Detailed report, and you can control the output of each one in different ways π§ Every sub-section tries to group and present the most meaningful data at the higher levels, and shoves the less useful or noisy stuff down to the lower levels πΈ The whole point is to get as much value as possible out of smart grouping, so you can scan faster, spot patterns, and actually solve problems π Data is always sorted in descending order by count, and then either numerically by IP address or alphabetically, whichever makes more sense π
This Spam blocked segment from a sample Detailed report shows the basic hierarchy levels of amavis-logwatch:
****** Detailed *******************************************
19346 Spam blocked -----------------------------------
756 from@example.com
12 10.0.0.2
12 <>
12 192.168.2.2
12 <>
5 192.168.2.1
...
So amavis-logwatch reads from STDIN or from the Amavis logfile you name π You can give it multiple logfile arguments, and they get processed in order β¨ Just make sure whoever is running amavis-logwatch has read permission on every log file you name π
π Options π
These options change how amavis-logwatch behaves π If you give the same option twice, the one that comes later on the command line wins π Also, any option can be abbreviated as long as the shortened version is unambiguous π
--[no]autolearn,--show_autolearn booleanβ turns the autolearn report on (or off) π§ This report only works if the default Amavis$log_templhas been changed so the log entries include autolearn results π You can do that by uncommenting two lines in the Amavis program itself (that's where the default log templates live), or by properly adding the$log_templvariable to the amavisd.conf file. Check out Amavis' README.customize, and search near the end of the Amavisd program for "autolearn" π--[no]by_ccat_summary,--show_by_ccat_summary booleanβ turns the by contents category summary in the Summary section on or off π Default: enabled.-f config_file,--config_file config_fileβ uses a different config file,config_file, instead of the default one π§ You can use this option more than once, and the config files get processed in the order you put them on the command line. See CONFIGURATION FILE below.--debug keywordsβ prints debug info whileamavis-logwatchis running π Thekeywordsvalue is one or more keywords separated by commas or spaces. To see the list of valid keywords, use--debug xxx, wherexxxis any keyword that isn't valid π--detail levelβ sets the maximum detail level tolevelπ This one is global, so it overrides any of the other output limiters we'll get to below. The Summary section always gets made, and with alevelunder 5, that's the only section you'll get. At level 5 and up, the Detailed section and any additional report sections can show up in the output. Every time the level goes up, you get one more hierarchical sub-level in the Detailed section, and at level 10 you get them all πΈ Lines longer than the maximum report width (set with max_report_width) will get cut. If you setlevelto 11, nothing in the report gets cut (see also--line_style) π¦--[no]first_recip_only,--show_first_recip_only booleanβ decides whether you sort by and show only the first recipient when one scanned message has multiple recipients π--helpβ prints usage info and a quick description of the command line options πββοΈ--ipaddr_width widthβ prints IP addresses in address/hostname pairs with a field width ofwidthcharacters π Making this bigger can help if your system has long IPv6 addresses π-l limiter=levelspec,--limit limiter=levelspecβ sets the level limiterlimiterto the specificationlevelspecπ―--line_style styleβ tells it how to handle long report lines π There are three styles:full,truncate, andwrap. Settingstyletofullstops lines from being cut at max_report_width, which is what happens automatically when detail is 11 or higher β¨truncateis the default, and that means long lines get cut according to max_report_width πͺ Settingstyletowrapwraps lines longer than max_report_width, but in a way that keeps the left column hit counts from getting hidden π This option beats the line style that the detail level would otherwise imply. And just so you know,--full,--truncate, and--wrapare synonyms for these π--nodetailβ turns off the Detailed section and all the supplemental reports π§Ή It's a handy way to clear out every Detailed section at once, and then any options you put after it can switch back on whichever sections you want, so you can build a specific report π- **
--sarulesS,HΒ΄,--sarules default** β turns on the SpamAssassin Rules Hit report π₯ The comma-separatedSandHvalues are the top N values for the Spam and Ham reports, respectively. They can be any integer greater than or equal to 0, or the keywordallπ The keyworddefault` uses the built-in default values β¨ --nosarulesβ turns off the SpamAssassin Rules Hit report π ββοΈ--sa_timings nrowsβ turns on the SpamAssassin Timings percentiles report β±οΈ You can cap it to the top N rows with thenrowsargument. Heads up that this report needs Amavis 2.6+ and SpamAssassin 3.3+ π«Ά- **
--sa_timings_percentilesP1 [P2 ...]Β΄** β picks which percentiles show up in the SpamAssassin Timings report π TheP1 ...` arguments are integers from 0 to 100 inclusive, and they keep the order you gave them in the report π¦ --nosa_timingsβ turns off the SpamAssassin Timings report πΈ--versionβ okay bestie, this one just spills the tea on which amavis-logwatch version you're running β¨--score_frequenciesB1 [B2 ...]Β΄/--score_frequencies defaultβ turns on the Spam Score Frequency report π TheB1 ...args are frequency distribution buckets and they can be any real numbers π’ Their order is kept in the report, so your buckets stay in the order you typed them π Thedefaultkeyword just uses the built-in default values π--noscore_frequenciesβ shuts the Spam Score Frequency report off π ββοΈ--score_percentilesP1 [P2 ...]Β΄/--score_percentiles defaultβ turns on the Spam Score Percentiles report π TheP1 ...args pick which percentiles show up, and they have to be integers from 0 to 100 inclusive π§ Thedefaultkeyword uses the built-in default values.--noscore_percentilesβ disables the Spam Score Percentiles report π₯--[no]sect_vars,--show_sect_varsbooleanβ enables (or disables) tacking the level limiter's name onto each Detailed section title π The name that shows up is the command line option (or configuration file variable) that limits that section's output. With so many level limiters around, this is a super convenient way to figure out exactly which one is messing with a section π«Ά--[no]startinfo,--show_startinfobooleanβ enables (or disables) the Amavis startup report, which shows the most recent Amavis startup details π--[no]summary,--show_summaryβ enables (or disables) showing the Summary section of the report π In a configuration file, the variableAmavis_Show_Summaryis the one you use.--syslog_namenamepatβ tells amavis-logwatch which syslog service name to look for when it matches syslog lines π― Only log lines whose service name matches the perl regular expressionnamepatget used. Everything else is silently ignored π This is clutch when a pre-installed Amavis package uses a name other than the default (amavis) π¦
Note: if you use parentheses in your regular expression, make sure they're cloistering and not capturing. Use(?:pattern)instead of(pattern)π
--timingspercentβ enables the Amavis Scan Timings percentiles report β±οΈ You can top N-percent limit it with thepercentargument π--timings_percentilesP1 [P2 ...]Β΄β picks the percentiles shown in the Scan Timings report π TheP1 ...args are integers from 0 to 100 inclusive, and their order is preserved in the report πΈ--notimingsβ disables the Amavis Scan Timings report π--versionβ okay bestie, this one just spills the tea on which amavis-logwatch version you're running β¨
π¦ Level Limiters π¦
The output of every section in the Detailed report is controlled by a level limiter π
The name of the level limiter variable gets printed whenever the sect_vars option is set π You can set limiters from the command line in standalone mode with --limit limiter=levelspec, or from a configuration file with the variable $amavis_limiter=levelspec β Every limiter needs a levelspec argument, which is explained below in LEVEL CONTROL.
Here's the full list of level limiters π
Amavis major contents category (ccatmajor) sections, listed in order of priority: VIRUS, BANNED, UNCHECKED, SPAM, SPAMMY, BADH, OVERSIZED, MTA, CLEAN.
MalwareBlocked,MalwarePassedβ blocked or passed messages that contain malware π¦ (ccatmajor:VIRUS).BannedNameBlocked,BannedNamePassedβ blocked or passed messages with banned names in MIME parts π« (ccatmajor:BANNED).UncheckedBlocked,UncheckedPassedβ blocked or passed messages that never got checked by a virus scanner or SpamAssassin π (Amavis ccatmajor:UNCHECKED).SpamBlocked,SpamPassedβ blocked or passed messages that were considered spam and hit kill level π₯ (Amavis ccatmajor:SPAM).SpammyBlocked,SpammyPassedβ blocked or passed messages that were considered spam but didn't reach kill level π« (Amavis ccatmajor:SPAMMY).BadHeaderBlocked,BadHeaderPassedβ blocked or passed messages with bad mail headers π€¨ (ccatmajor:BAD-HEADER).OversizedBlocked,OversizedPassedβ blocked or passed messages that were considered oversized π (Amavis ccatmajor:OVERSIZED).MtaBlocked,MtaPassedβ blocked or passed messages because they failed to re-inject to the MTA π¬ (Amavis ccatmajor:MTA-BLOCKED). Occurrences of this event mean there's a configuration problem β οΈ
[ note: I don't believe mtapassed occurs, but exists for completeness.]
OtherBlocked,OtherPassedβ blocked or passed messages that don't fall into any of the other major contents categories π§© (Amavis ccatmajor:OTHER).TempFailBlocked,TempfailPassedβ blocked or passed messages that had a temporary failure β³ (Amavis ccatmajor:TEMPFAIL).CleanBlocked,CleanPassedβ blocked or passed messages that were considered clean π§Ό (Amavis ccatmajor:CLEAN; i.e. non-spam, non-viral).
πΈ Other sections, arranged alphabetically πΈ
AvConnectFailureβ problems connecting to Anti-Virus scanner(s) πAvTimeoutβ timeouts while waiting on responses from Anti-Virus scanner(s) βArchiveExtractβ archive extraction problems π¦BadHeaderSuppβ supplemental debug info about messages with bad mail headers π΅οΈBayesβ message frequencies sorted into Bayesian probability buckets πͺ£BadAddressβ invalid mail address syntax πBlacklistedβ messages that were (soft-)blacklisted π€ See alsoWhitelistedbelow.BounceKilled,BounceRescued,BounceUnverifiableβ what happened to incoming bounce messages (DSNs) πContentTypeβ MIME attachment breakdown by type/subtype ποΈDccErrorβ errors encountered with or returned by DCC πDefangErrorβ errors encountered during the defang process πͺDefangedβ messages that got defanged (rendered harmless) π§ΈDsnNotificationβ errors encountered while trying to send a delivery status notification π¨DsnSuppressedβ delivery status notifications (DSNs) that were intentionally suppressed π€«ExtraModulesβ extra code modules Amavis loaded during runtime π§©FakeSenderβ forged sender addresses, as determined by Amavis πFatalβ fatal events π These get presented at the top of the report, since they may need attention right away.LocalDeliverySkippedβ failures delivering to a local address πMalwareByScannerβ a breakdown of malware by whichever scanner(s) caught it πMimeErrorβ errors encountered during MIME extraction π§΅Panicβ panic events π± These get presented at the top of the report, since they may need attention right away.p0fβ passive fingerprint (p0f) hits, grouped by mail contents type (virus, unchecked, banned, spam, ham), then by operating system genre, and finally by IP address π₯οΈ Note: Windows systems get refined by Windows OS version, while versions of other operating systems are grouped generically.Releasedβ messages that were released from Amavis quarantine ποΈSADiagsβ diagnostics reported by SpamAssassin π§SmtpResponseβ SMTP responses received during the dialog with the MTA π¬ These log entries are mainly debug.TmpPreservedβ temporary directories that Amavis preserved when some component ran into a problem or failure π Check the listed directories and their corresponding log entries for problems πVirusScanSkippedβ messages that a virus scanner couldn't scan π ββοΈWarningβ warning events that don't fall under the specific warnings below β οΈ These get presented at the top of the report, since they may need attention.WarningAddressModifiedβ incomplete email addresses that Amavis modified for safety π‘οΈWarningNoQuarantineIdβ attempts to release a quarantined message that didn't have anX-Quarantine-IDheader π«£WarningSecuritylevelspecβ insecure configuration or utility being used by Amavis πWarningSmtpShutdownβ failures during the SMTP conversation with the MTA πWarningSqlβ failures to communicate with the SQL service, or error replies from it ποΈWhitelistedβ messages that were (soft-)whitelisted π€ See alsoBlacklistedabove.
β¨ LEVEL CONTROL β¨
okay bestie, the Detailed section is basically a bunch of sub-sections πΈ, and each one can be controlled both globally AND independently π . Two settings decide what shows up in the Detailed report:
- a global detail level (set with
--detail), which is the big hammer π¨π and has the final say over the whole Detailed section - sub-section specific detail settings, which are the small hammer π¨ and let you trim the output even more for just one sub-section
Each sub-section can be capped at a certain depth level, and each sub-level can be limited with a top N or a threshold π¦. The levelspec argument to each of the level limiters above is what makes all of that happen β¨.
It's probably best to keep going with sub-level limiting using this well-known outline-style hierarchy, plus some basic examples π§:
level 0
level 1
level 2
level 3
level 4
level 4
level 2
level 3
level 4
level 4
level 4
level 3
level 4
level 3
level 1
level 2
level 3
level 4
The simplest form of output limiting suppresses all output below a specified level. For example, a levelspec set to "2" shows only data in levels 0 through 2. Think of it like collapsing each level 2 item π«Ά, hiding all the inferior levels (3, 4, ...), which gives you:
level 0
level 1
level 2
level 2
level 1
level 2
Sometimes the output gets way too much π, and it's useful to suppress any data that doesn't exceed a certain threshold value. Imagine a dictionary spam attack π, which produces super long lists of hit-once recipient email or IP addresses. Each sub-level in the hierarchy can be threshold-limited by setting the levelspec appropriately. Setting levelspec to the value "2::5" will suppress any data at level 2 that does not exceed a hit count of 5.
Maybe you want a top N list, like the top 10 senders π. A levelspec of "3:10:" limits level 3 data to only the top 10 hits.
With those simple examples out of the way, a levelspec is defined as a whitespace- or comma-separated list of one or more of the following:
lβ sets the maximum level to be output for this sub-section, from 0 to 10. Iflis 0, no levels get output, which effectively disables the sub-section. (Level 0 data is already in the Summary report, so level 1 is the first useful level in the Detailed report π.) Higher values output everything up to and including the specified level.l.nβ same as above, but with the bonus thatnlimits this section's level 1 output to the topnitems.ncan be any integer greater than 1. (Honestly this one has less utility than the syntax below π. It's only here for backwards compatibility, so users are encouraged to use the syntax below instead π.)l:n:tβ a triplet that sets levell, topn, and minimum thresholdt. They're all integers:lis the level limiter we talked about,nis the top n limiter for levell, andtis the threshold limiter for levell. If you specify bothnandt,nwins π, so you can make top N lists regardless of the threshold value. Iflis left out, the values fornand/ortget applied to all levels available in the sub-section. That's a simple form of wildcarding (eg. slap a minimum threshold on every level π ). Specific limiters always beat wildcard limiters though. The first form of level limiter can be included in levelspec to restrict output no matter how many triplets are present.
All three forms of limiters only work when amavis-logwatch's detail level is 5 or greater (the Detailed section doesn't even turn on until detail is at least 5) π.
See the EXAMPLES section for usage scenarios π.
β¨ CONFIGURATION FILE β¨
amavis-logwatch can read settings from a configuration file π. Basically any command line option can go in there, and those settings get read when it starts up π.
Because amavis-logwatch can run standalone OR inside Logwatch, it inherits Logwatch's configuration file syntax requirements and conventions so nobody gets confused π«Ά. Here's the vibe:
- White space lines are ignored.
- Lines beginning with
#are ignored - Settings are of the form:
option = value
- Spaces or tabs on either side of the
=character are ignored. - Any value protected in double quotes will be case-preserved.
- All other content is reduced to lowercase (non-preserving, case insensitive).
- All amavis-logwatch configuration settings must be prefixed with
"$amavis_"or amavis-logwatch will ignore them π . - When running under Logwatch, any values not prefixed with
"$amavis_"are consumed by Logwatch. It only passes along settings it considers valid, via environment variable. - The values True and Yes are converted to 1, and False and No are converted to 0.
- Order of settings is not preserved within a configuration file π. (Settings are passed by Logwatch via environment variables, which have no defined order.)
To include a command line option in a configuration file, prefix the command line option name with the word "$amavis_". The following configuration file setting and command line option are equivalent β¨:
$amavis_Line_Style = Truncate
--line_style Truncate
Level limiters are also prefixed with $amavis_, but on the command line they're specified with the --limit option π¦:
$amavis_SpamBlocked = 2
--limit SpamBlocked=2
The order of command line options and configuration file processing goes like this π:
- The default configuration file is read if it exists and no
--config_filewas specified on a command line. - Configuration files are read and processed in the order found on the command line.
- Command line options override any options already set either via command line or from any configuration file.
Command line options are interpreted when they're seen on the command line, and later options override previously set options. main character energy π
β¨ EXIT STATUS β¨
The amavis-logwatch utility exits with a status code of 0 unless an error occurred π±. If something goes wrong, a non-zero exit status gets returned π.
β¨ EXAMPLES β¨
π Running Standalone
Okay so bestie, amavis-logwatch can read its log data from one or more named Amavis log files, or straight from STDIN π
. To keep things short, the examples use the word file to mean /path/to/amavis.log. Obviously you swap file out for your real path π«Ά.
To run amavis-logwatch in standalone mode, just run:
amavis-logwatch file
Want the full menu of options and basic usage? Hit this:
amavis-logwatch --help
To print a summary-only report of Amavis log data:
amavis-logwatch --detail 1 file
To get a summary report plus a one-level detail report for May 25th:
grep 'May 25' file | amavis-logwatch --detail 5
Need just a top 10 list of Sent email domains? Then the summary and detailed reports have to get turned off first π. Command line options are read and enabled left-to-right, so the Sent section gets re-enabled to level 1 with a level 1 top 10 limiter π:
amavis-logwatch --nosummary --nodetail \
--limit spamblocked '1 1:10:' file
Here's a spicier level limiter example πΆοΈ. This one gives the top 4 spam blocked recipients (level 1). Under each recipient it shows the top 2 sending IPs (level 2), and then below that, only envelope from addresses (level 3) with hit counts greater than 6. The little ... ellipses mean the data got cut off by a top N or threshold limit π¦:
amavis-logwatch --nosummary --nodetail \
--limit spamblocked '1:4: 2:2: 3::6' file
Here's what that sample output looks like:
19346 Spam blocked -----------------------------------
756 joe@example.com
12 10.0.0.1
12 <>
12 10.99.99.99
12 <>
...
640 fred@example.com
8 10.0.0.1
8 <>
8 192.168.3.19
8 <>
...
595 peter@sample.net
8 10.0.0.1
8 <>
7 192.168.3.3
7 <>
...
547 paul@example.us
8 192.168.3.19
8 <>
7 10.0.0.1
7 <>
...
...
π Running within Logwatch
Heads up, bestie π: Logwatch versions prior to7.3.6, unless configured otherwise, needed the7.3.6, STDOUT is the default output destination, and the--output stdout. Check your configuration to see where report output is going, then add the right option to the commands below.
To print a summary report for today's Amavis log data:
logwatch --service amavis --range today --detail 1
To print a report for today's Amavis log data, with one level of detail in the Detailed section:
logwatch --service amavis --range today --detail 5
To print a report for yesterday, with two levels of detail in the Detailed section:
logwatch --service amavis --range yesterday --detail 6
To print a report from Dec 12th through Dec 14th, with four levels of detail in the Detailed section:
logwatch --service amavis --range \
'between 12/12 and 12/14' --detail 8
To print a report for today, with all levels of detail:
logwatch --service amavis --range today --detail 10
Same as above, but leaves long lines uncropped:
logwatch --service amavis --range today --detail 11
π Amavis Log Level
Amavis gives you extra log info when the variable $log_level is increased above the default 0 value. amavis-logwatch uses that info to build additional reports that aren't available with the default $log_level=0 value. A $log_level of 2 is suggested πΈ.
If you'd rather not crank up the noise in your main mail or Amavis logs, you can set up syslog to send Amavis' output to multiple log files. Basic log entries get routed to your main mail log(s), and the more detailed entries get routed to an Amavis-specific log file that feeds the amavis-logwatch utility π§.
A convenient way to do this is to change the Amavis configuration variables in amavisd.conf as shown below:
amavisd.conf:
$log_level = 2;
$syslog_facility = 'local5';
$syslog_priority = 'debug';
This bumps $log_level to 2, and sends Amavis' log entries to an alternate syslog facility (eg. local5, user). From there, they can be routed to one or more log files, including your main mail log file β¨:
syslog.conf:
#mail.info -/var/log/maillog
mail.info;local5.notice -/var/log/maillog
local5.info -/var/log/amavisd-info.log
Amavis' typical $log_level 0 messages will go to both your maillog and the amavisd-info.log file. Higher $log_level messages only get routed to the amavisd-info.log file π. For more info on Amavis' logging, search the file RELEASE_NOTES in the Amavis distribution for:
"syslog priorities are now dynamically derived"
β¨ ENVIRONMENT β¨
The amavis-logwatch program uses the following (automatically set) environment variables when it's running under Logwatch π:
LOGWATCH_DETAIL_LEVELβ This is the detail level set with the Logwatch command line argument--detail, or the Detail setting in the...conf/services/amavis.confconfiguration file.LOGWATCH_DEBUGβ This is the debug level set with the Logwatch command line argument--debug.amavis_xxxβ Logwatch passes all theamavis_xxxsettings in the...conf/services/amavis.confconfiguration file to the amavis filter (which is actually named.../scripts/services/amavis) through an environment variable.
β¨ FILES β¨
Standalone mode
/usr/local/bin/amavis-logwatchβ The amavis-logwatch program/usr/local/etc/amavis-logwatch.confβ The amavis-logwatch configuration file in standalone mode
Logwatch mode
/etc/logwatch/scripts/services/amavisβ The Logwatch amavis filter/etc/logwatch/conf/services/amavis.confβ The Logwatch amavis filter configuration file
β¨ SEE ALSO β¨
logwatch(8)β system log analyzer and reporter
β¨ README FILES β¨
READMEβ an overview of amavis-logwatchChangesβ the version change list historyBugsβ a list of the current bugs or other inadequaciesMakefileβ the rudimentary installerLICENSEβ the usage and redistribution licensing terms
β¨ LICENSE β¨
Covered under the included MIT/X-Consortium License: http://www.opensource.org/licenses/mit-license.php π¦
β¨ AUTHOR(S) β¨
Mike Cappella π
The original amavis Logwatch filter was written by Jim O'Halloran, and it's had lots of contributors over the years π. Those folks are entirely NOT responsible for any errors, problems or failures since the current author's hands have touched the source code π.
That's the whole page, bestie! π Signing off with AMAVIS-LOGWATCH(1) π«Άβ¨
π¦ where this page comes from
- alpine 3.24: logwatch-doc 7.13-r0 Β· MIT
- arch rolling: logwatch 7.15-1 Β· custom
- debian trixie: logwatch 7.12-3
- fedora 43: logwatch 7.13-2.fc43 Β· MIT
- fedora 43: logwatch 7.15-1.fc43 Β· MIT
- fedora 44: logwatch 7.14-1.fc44 Β· MIT
- fedora 44: logwatch 7.15-1.fc44 Β· MIT
- ubuntu questing: logwatch 7.12-3ubuntu1
- ubuntu resolute: logwatch 7.12-3ubuntu2
- ubuntu stonking: logwatch 7.14-4ubuntu1 Β· MIT
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms