Comments (5)
With our current create
setup in the logrotate config, we need to be able to signal to vector to reload files. Without doing so, vector probably "forgets" to which file it is writing to and just writes into the void/weird file descriptor pointing at a now sorta non-existent file. Unfortunately, the File sink doesn't reopen on SIGHUP
, so this isn't possible (vectordotdev/vector#12823).
I wonder if we should be using copytruncate
instead of create
. This is lossy but I think fine based on how the dokku log files are used (sparingly, if at all). For the vector use case, copytruncate would probably be fine since we're also assuming the logs can be lost (they aren't being shipped to another server after all).
I think if the logrotate config drops the su
directive and uses copyrotate
instead of create
, this should all just work?
from dokku.
Thanks! Following this, I edited /etc/logrotate.d/dokku
thusly:
/var/log/dokku/apps/pbm/*.log {
daily
copytruncate
rotate 7
missingok
notifempty
compress
delaycompress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
Results:
- It did successfully rotate and then continue logging to the sink
- I don't think the above is quite correct, as the rotated file didn't compress. It was pbm.log.1 instead of pbm.log.1.gz.
from dokku.
What was the verbose log output of logrotate when you ran the above? Curious to know why it didn't compress.
from dokku.
Hmm, hold up. The next one compressed (both were the regular daily rotations; not from me running it manually). I'll monitor.
Overall, though, this is good progress 😸
root@pbm-dokku:/var/log/dokku/apps/pbm# ls -l
total 65536
-rw-r--r-- 1 root root 1072361 Mar 8 00:10 pbm.log
-rw-r--r-- 1 root root 63513342 Mar 8 00:00 pbm.log.1
-rw-r--r-- 1 root root 2513552 Mar 7 00:00 pbm.log.2.gz
from dokku.
I think the new settings are now correct. They'll respect whatever perms are on the files within a container, while rotating logs out as appropriate.
In the future, we might want to be more aggressive and only rotate 1 file (or potentially don't keep any tarball'd files) but this is good for now).
from dokku.
Related Issues (20)
- buildpacks:set-property - odd behaviour
- Aborting a deployment of the release task fails HOT 5
- Openresty proxy: Not building `nginx.conf` and not updating `sudoers.d` with openresty varaint HOT 2
- Plugin creation doc references progrium site
- GIT_REV not set or updated with git:sync
- Deleting an app is not possible when Nginx is not running
- Send SIGTERM immediately to old containers when deploying via docker-local
- configuring Traefik healthchecks from app config HOT 1
- Feature Request: Implement config:import Command for Configuration from .env File HOT 5
- Add a method to force build when re-using an image with git:from-image HOT 1
- Failure injecting environment variables HOT 10
- Blue screen on deployed app HOT 1
- Ubuntu 24.04 support HOT 5
- App still running after Dokku `ps:stop` HOT 1
- Regression in dokku enter command
- Issue for new release of `gliderlabs-sigil` package HOT 6
- Add better garbage collection HOT 1
- Deployment continues when predeployment task fails HOT 1
- Improve Monorepo support: Include source files outside of `build-dir` in the Build Step HOT 1
- When using `docker-compose.yml` configuration from the docs, dokku's nginx cannot reach containers created by dokku.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dokku.