I use some batch scripts in my proxmox installation. They are in cron.hourly and daily checking for virus and ram/CPU load of my LXC containers. An email is send on condition.

What are your tipps or solution without unnecessary load on disc io or CPU time. Lets keep it simple.

Edit: a lot of great input about possible solutions. In addition TIL “that keep it simple” means a lot of different things to people.😉

  • easeKItMAn@lemmy.world
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    1 year ago

    I set up custom bash scripts collecting information (df, docker json, smartCTL etc) Either parse existing json info or assemble json strings and push it to Homeassistant REST api (cron) In Homeassistant data is turned into sensors and displayed. HA sends messages of sensors fail.
    Info served in HA:

    • HDD/SSD (size, smartCTL errors, spin up/down, temperature etc)
    • Availability/health of docker services
    • CPU usage/RAM/temperature
    • Network interface/throughput/speed/connections
    • fail2ban jails

    Trying to keep my servers as barebones as possible. Additional services/apps put strain on CPU/RAM etc. Found out most of data necessary for monitoring is either available (docker json, smartCTL json) or can be easily caught, e.g.

    df -Pht ext4 | tail -n +2 | awk '{ print $1}

    It was fun learning and defining what must be monitored or not, and building a custom interface in HA.

    • Fermiverse@kbin.socialOP
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      1 year ago

      Thats basically the way I do it.

      pvesh get /cluster/resources --output-format json-pretty | jq --arg k "lxc/$container_id" -r 'map(select(.id == $k))[].name, map(select(.id == $k))[].mem, map(select(.id == $k))[].maxmem, map(select(.id == $k))[].cpu')

      Example using pvesh in proxmox. The data is available, just have to use it. I also prefer barebone approach.