I’m curious as to which tools and technologies you all are using to keep track of all those services you are deploying, whether it be resource tracking, network traffic, logs, traces, or uptime.

As a bonus question, how have you organized your network or your services to reduce the overhead of implementing observability?

  • placebo_button@awful.systems
    link
    fedilink
    English
    arrow-up
    2
    ·
    7 hours ago

    I asked this of the #homelab fediverse a few weeks back, as I was starting to deploy a family of apps to my “homelab” which is really a raspi3b with a repurposed spinny-platty laptop drive connected to some cloudflare tunnels. I settled on VictoriaLogs and VictoriaMetrics for the actual observing bits, fluentd for a log driver (I’m using docker-compose), and postgres-exporter, node-exporter, and handrolled metrics endpoints for prometheus metrics exposure (victoriametrics can do the metrics scraping itself).

    If I were to change anything at the moment, I’d replace fluentd first, as some of the filters I use require the ruby interpreter and that seems a little heavy for my setup. Second I’d probably move to Grafana for dashboards. Alerting is gaping hole in the setup right now; I’ve used alertmanager in the past and not been particularly happy with it, but I don’t have a specific alternative I would suggest at the moment. If I had a much larger deployment, especially spread across multiple nodes, I’d consider ProxMox, but I’m just not there yet.

    There were other suggestions that I didn’t go too deep into, especially after I got something working sufficiently, including dockhand, gatus and beszel, but so far (and to my surprise) having what I described above all running in containers on this little pi is doing the trick.

  • rhaidiz@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    10 hours ago

    I use the Grafana stack but I do not self host it. It’s the only thing I use in the cloud with their free offering which is pretty generous and good enough for homelabbing. I have also recently transition away from Alloy to Vector, mainly to give that a try and because the configuration of Vector seems easier and somewhat more intuitive.

    • foggy@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      ·
      19 hours ago

      Everything else is just those tools but you’re abstracted away from some level of control.

      Or ELK.

  • faltryka@lemmy.world
    link
    fedilink
    English
    arrow-up
    16
    ·
    23 hours ago

    If you’re wanting to go hard in the paint here, Grafana has a great OSS stack with Grafana, Loki, Mimir, Tempo, and Alloy.

    • NotSteve_@lemmy.ca
      link
      fedilink
      English
      arrow-up
      2
      ·
      21 hours ago

      Can confirm it’s a great stack! We run it at my work and its quite nice to work with. I’ve been thinking of replacing Prometheus in my homelab with Alloy

    • dandiandy@lemmy.caOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      19 hours ago

      It looks really compelling. Really flexible with deep options. Seems like I could spend 10 years building the dashboard alone!

      • foggy@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        19 hours ago

        I stood up grafana at work, and I make dashboards to keep my role secure.

        Everyone uses my shitty little dashboards :)

  • Shimitar@downonthestreet.eu
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    3
    ·
    23 hours ago

    Observawhat? My services just exist, if they fail and nobody complains… Well, they get removed. If the fail and somebody complains… The get restarted…

    Pretty efficient but simple approach.

  • NotSteve_@lemmy.ca
    link
    fedilink
    English
    arrow-up
    4
    ·
    23 hours ago

    I use Prometheus with various exporters pushed to Grafana which I have displayed on a small screen running on a ROCK Pi in my office

  • BlackEco@lemmy.blackeco.com
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    20 hours ago

    I used to run dockprom but it was pretty ressource intensive and I have since moved to Beszel + Uptime Kuma.

    I have yet to find a way to keep logs between container re-creation (I unsuccessfully tried to set up Loki back when I ran dockprom), both Beszel and Komodo only display logs from the container currently running in the stack.

    • Denys Nykula@piefed.social
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 hours ago

      To have logs from every container launch in journalctl, I have systemd run podman-compose without daemonizing it. To debug container logs, a shell is usually needed anyway, so I see little point in exposing logs through a web dashboard.

    • N0x0n@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      10 hours ago

      Yeah WUD is a bit underrated, haven’t seen it recommended a lot here, but it’s actually very good !

    • James R Kirk@startrek.website
      link
      fedilink
      English
      arrow-up
      3
      ·
      23 hours ago

      I recently switched to Dockhand from Portainer and I like it a lot more, it’s much cleaner and straightforward. It also auto-updates so you might be able to ditch whats up docker too.

      • GMac@feddit.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        22 hours ago

        No auto updates thanks. 😅 I’ve just reset all my compose files to pin versions today after an unintended mariadb update cost me hours to repair. I’ll look into dockhand though. Was unimpressed at portainer’s announcement that new version wont have a community edition. Portainer is really just an ‘at a glance’ view for me since i try to do all the compose and troubleshooting stuff in terminal. Wud will probably become a thing i just review every few weeks to make sure i dont get too adrift from latest.

        I ought to look into a unified dashboard as i dont have easy visibility or things like disk usage, sheduled backup success etc that id like to see alongside the container status and beszel activity graphs.

        Im still quite new to it all though.

          • GMac@feddit.org
            link
            fedilink
            English
            arrow-up
            1
            ·
            22 hours ago

            For me, its just a board that knows which imagea i am running and tells me if there is a newer one so that i know how out of date i am 😂

  • SayCyberOnceMore@feddit.uk
    link
    fedilink
    English
    arrow-up
    3
    ·
    22 hours ago

    Uptime Kuma if I want something to alert me (still trying to decide between ntfy & gotify)

    Home Assistant is also checking some stuff

    Watchdog to reboot my Raspberry Pi Zeros when they fall off the wifi

    Smokeping for a general, long term feel of the network, which might answer your bonus question?

      • SayCyberOnceMore@feddit.uk
        link
        fedilink
        English
        arrow-up
        4
        arrow-down
        1
        ·
        14 hours ago

        What’s not to like?

        Still alive & still maintained, and less resources than Grafana & Prometheus…

        • non_burglar@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          6 hours ago

          Sorry, no disrespect intended, but I’m shocked. It’s like hearing someone say they drive a 1988 Toyota Cressida because it’s great… It was great at the time, but we’ve moved on and the smokeping website should tell you how ancient it is; sponsors from 2007 by companies that don’t exist anymore.

          Still alive & still maintained

          Alive, maybe. I think any maintenance is down to bodges to keep it running in modern environments. Neither Toby nor Niko have worked on sp in over a decade.

          Smokeping is fine if all you do is look at its own graphs and you have enough traffic to see patterns in latency.

          But:

          • more or less unmaintained for a long time
          • cgi scripts and scraping
          • jitter is estimated from rping, not calculated with real values from more than one point on a route (that means a lot when you have a DMZ)
          • Perl
          • rrd tool is… Not great. Not very configurable, also unmaintained, lua support is not good, etc
          • difficult to customize unless you use their submenu system
          • no reporting, you get what you get with smokeping

          I had to retire 2 smokeping monitors because their CGI implementations were security risks. That was 2015. Not a good reason for homelab, but CGI is a pretty ancient and insecure way to interact with the web server.

          Smokeping is good in a big organization with lots of traffic and a few broadcast domains. It isn’t really great at monitoring remote sites because ICMP doesn’t tell you what segment in route is causing the issue, even with rping.

          I used smokeping a lot in my career from about 2005 to 2015, when security audits made me retire it. Just even using rrdtool with an exporter and graphana would be preferable to smokeping itself.

          • Denys Nykula@piefed.social
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 hours ago

            What’s insecure about CGI? I thought the main reason it isn’t popular now is because runtimes are slow to start. Though IIRC when I used busybox httpd CGI with a small runtime, quickjs, speed wasn’t an issue.

  • NormDeplume@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    20 hours ago

    I’ve got grafana and Prometheus, but I’m currently working on a generic log pulling script that will then feed to a local ollama instance to summarize the logs and let me know if there are any potential issues I should be aware of. Grafana is great for current state, but I’m a big believer in watching the logs to see trends, but I’m too lazy to do it by hand.

    Once that’s up and running and steady, I’ll probably tie it into ntfy to actually alert me in real time

      • NormDeplume@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        8 hours ago

        I may eventually add that, but right now my goal isn’t the actual logging itself, it’s creating a digest and summarizing the logs down to the key points, and eventually getting a notification every morning if something weird showed up. I’m definitely going to add this to my backlog though, thanks for the suggestion

    • dandiandy@lemmy.caOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      19 hours ago

      Cool, sounds like a fun project.

      Not sure if you have been looking into Jev or other System 1 models, but it might be a good fit since it can output a structured type-safe output. Most of the automation I’ve tried in the past with LLMs failed due to the output structure being hallucinated (ignoring my requested structure). But it sounds like System 1 models might fix that.

      I’ve been looking at an open source model called Laya a little and it might work well for your project. Sounds like you’d want structured output.

      What kind of rig do you have ollama running on?

      • NormDeplume@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        19 hours ago

        Jev and ollaya are on my list to eventually add. I’m running ollama through an RTX 3080 with 10 gigs of RAM. Just because it’s what I had lying around. I was mostly using it for gaming but it works for local model use. I’m also planning on installing Hermes in a bit once the log manager project is done, but that’s going to take some careful tinkering because I’m technically underpowered for it. I’m probably just going to have some gate checks up to make sure nothing loads during a gaming session.

        My main goal is to completely get off the frontier models if possible because I have concerns about the environmental impacts, especially. As a shameless pirate I mind intellectual theft less, but I really do disagree with the environmental impact, especially when a optimized local model plus a bit of scripting and filtering. Does the job 90% of the time

        But we’ll see, I’m still tweaking everything, but I think I’m about 90% done with the log normalizer to do most of the heavy lifting act on the logs programmatically, to keep the context window for my local models as optimized as possible.

        It’s definitely been a good fun learning project

        Oh, one of the first things that I implemented was a hallucination checker. If it cites any data that’s not actively in one of the corpus I’ve supplied, it automatically gets flagged and filtered out. But most of what I do can be handled with internal documentation and material I explicitly provide.