Git Product home page Git Product logo

Comments (5)

josegonzalez avatar josegonzalez commented on June 18, 2024

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.

RyanTG avatar RyanTG commented on June 18, 2024

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.

josegonzalez avatar josegonzalez commented on June 18, 2024

What was the verbose log output of logrotate when you ran the above? Curious to know why it didn't compress.

from dokku.

RyanTG avatar RyanTG commented on June 18, 2024

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.

josegonzalez avatar josegonzalez commented on June 18, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.