Change logging information
Dieser Commit ist enthalten in:
Ursprung
63e48b3dba
Commit
181f172875
4 geänderte Dateien mit 63 neuen und 92 gelöschten Zeilen
|
@ -1,6 +1,9 @@
|
|||
!!! warning
|
||||
This section only applies for Dockers default logging driver (Json).
|
||||
|
||||
To view the logs of all mailcow: dockerized related containers, you can use `docker-compose logs` inside your mailcow-dockerized folder that contains your `mailcow.conf`. This is usually a bit much, but you could trim the output with `--tail=100` to the last 100 lines per container, or add a `-f` to follow the live output of all your services.
|
||||
|
||||
To view the logs of a specific service you can use `docker-compose logs [options] $Service_Name`
|
||||
To view the logs of a specific service you can use `docker-compose logs [options] $service_name`
|
||||
|
||||
!!! info
|
||||
The available options for the command **docker-compose logs** are:
|
||||
|
|
58
docs/firststeps-logging.md
Normale Datei
58
docs/firststeps-logging.md
Normale Datei
|
@ -0,0 +1,58 @@
|
|||
Logging in mailcow: dockerized consists of multiple stages, but is, after all, much more flexible and easier to integrate into a logging daemon than before.
|
||||
|
||||
In Docker the containerized application (PID 1) writes its output to stdout. For real one-application containers this works just fine.
|
||||
|
||||
Some containers log or stream to multiple destinations.
|
||||
|
||||
No container will keep persistent logs in it. Containers are transient items!
|
||||
|
||||
In the end, every line of logs will reach the Docker daemon - unfiltered.
|
||||
|
||||
The **default logging driver is "json"**.
|
||||
|
||||
### Filtered logs
|
||||
|
||||
Some logs are filtered and written to Redis keys but also streamed to a Redis channel.
|
||||
|
||||
The Redis channel is used to stream logs with failed authentication attempts to be read by fail2ban-mailcow.
|
||||
|
||||
The Redis keys are persistent and will keep up to 5000 lines of logs for the web UI.
|
||||
|
||||
This mechanism makes it possible to use whatever Docker logging driver you want to, without losing
|
||||
the ability to read logs from the UI or ban suspicious clients with fail2ban-mailcow.
|
||||
|
||||
Redis keys will only hold logs from applications and filter out system messages (think of cron etc.).
|
||||
|
||||
### Logging drivers
|
||||
|
||||
Here is the good news: Since Docker has some great logging drivers, you can integrate mailcow: dockerized into your existing logging environment with ease.
|
||||
|
||||
Docker logging drivers can now be implemented as plugins, next to Dockers integrated drivers.
|
||||
Logging driver plugins are available in Docker 17.05 and higher.
|
||||
|
||||
Edit `docker-compose.yml` and append, for example, this block to use the "gelf" logging plugin:
|
||||
|
||||
```
|
||||
logging:
|
||||
log_driver: "gelf"
|
||||
options:
|
||||
gelf-address: "udp://graylog:12201"
|
||||
gelf-tag: "mailcow-logs"
|
||||
```
|
||||
|
||||
Linux users can also add or edit the Docker daemons configuration file `/etc/docker/daemon.json` to affect the global logging behavior. Windows users please have a look at the [docker documentation](https://docs.docker.com/engine/reference/commandline/dockerd//#windows-configuration-file):
|
||||
|
||||
```
|
||||
{
|
||||
...
|
||||
"log-driver": "gelf",
|
||||
"log-opts": {
|
||||
"gelf-address": "udp://graylog:12201"
|
||||
"gelf-tag": "mailcow-logs"
|
||||
}
|
||||
...
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Restart the Docker daemon and run `docker-compose down && docker-compose up -d` to recreate the containers with the new logging driver.
|
|
@ -1,90 +0,0 @@
|
|||
!!! warning
|
||||
In newer versions of mailcow: dockerized we decided to set a max. log size. You need to remove all "logging: xy" lines and options from docker-compose.yml to be able to start the stack.
|
||||
|
||||
Example:
|
||||
|
||||
```
|
||||
logging:
|
||||
options:
|
||||
max-size: "5m"
|
||||
```
|
||||
|
||||
!!! info
|
||||
If you prefere the udp protocol use:
|
||||
|
||||
```
|
||||
$ModLoad imudp
|
||||
$UDPServerRun 524
|
||||
```
|
||||
|
||||
at `rsyslog.conf` and `"syslog-address": "udp://127.0.0.1:524"` at `daemon.json`.
|
||||
|
||||
|
||||
Enable Rsyslog to receive logs on 524/tcp at `rsyslog.conf`:
|
||||
|
||||
```
|
||||
# This setting depends on your Rsyslog version and configuration format.
|
||||
# For most Debian derivates it will work like this...
|
||||
$ModLoad imtcp
|
||||
$TCPServerAddress 127.0.0.1
|
||||
$InputTCPServerRun 524
|
||||
|
||||
# ...while for Ubuntu 16.04 it looks like this:
|
||||
module(load="imtcp")
|
||||
input(type="imtcp" address="127.0.0.1" port="524")
|
||||
|
||||
# No matter your Rsyslog version, you should set this option to off
|
||||
# if you plan to use Fail2ban
|
||||
$RepeatedMsgReduction off
|
||||
```
|
||||
|
||||
Restart rsyslog after enabling the TCP listener.
|
||||
|
||||
Now setup Docker daemon to start with the syslog driver.
|
||||
This enables the syslog driver for all containers!
|
||||
|
||||
Linux users can add or change the configuration in `/etc/docker/daemon.json`. Windows users please have a look at the [docker documentation](https://docs.docker.com/engine/reference/commandline/dockerd//#windows-configuration-file) :
|
||||
```
|
||||
{
|
||||
...
|
||||
"log-driver": "syslog",
|
||||
"log-opts": {
|
||||
"syslog-address": "tcp://127.0.0.1:524"
|
||||
}
|
||||
...
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Restart the Docker daemon and run `docker-compose down && docker-compose up -d` to recreate the containers.
|
||||
|
||||
### Fail2ban with Docker syslog logging driver
|
||||
|
||||
**This only applies to syslog-enabled Docker environments.**
|
||||
|
||||
Open `/etc/fail2ban/filter.d/common.conf` and search for the prefix_line parameter, change it to ".*":
|
||||
|
||||
```
|
||||
__prefix_line = .*
|
||||
```
|
||||
|
||||
Create `/etc/fail2ban/jail.d/dovecot.conf`...
|
||||
```
|
||||
[dovecot]
|
||||
enabled = true
|
||||
filter = dovecot
|
||||
logpath = /var/log/syslog
|
||||
chain = FORWARD
|
||||
```
|
||||
|
||||
and `jail.d/postfix-sasl.conf`:
|
||||
```
|
||||
[postfix-sasl]
|
||||
enabled = true
|
||||
filter = postfix-sasl
|
||||
logpath = /var/log/syslog
|
||||
chain = FORWARD
|
||||
```
|
||||
|
||||
Restart Fail2ban.
|
||||
|
|
@ -30,7 +30,7 @@ pages:
|
|||
- 'Rspamd Web UI': 'firststeps-rspamd_ui.md'
|
||||
- 'Reverse Proxy': 'firststeps-rp.md'
|
||||
- 'Setup a relayhost': 'firststeps-relayhost.md'
|
||||
- 'Log to Syslog': 'firststeps-syslog.md'
|
||||
- 'Logging': 'firststeps-logging.md'
|
||||
- 'Local MTA on Docker host': 'firststeps-local_mta.md'
|
||||
- 'Sender and receiver model': 'firststeps-sender_rcv.md'
|
||||
- 'Debugging & Troubleshooting':
|
||||
|
|
Laden …
In neuem Issue referenzieren