alertmanager
CoreDNS
Our great sponsors
alertmanager | CoreDNS | |
---|---|---|
13 | 41 | |
6,213 | 11,714 | |
1.7% | 1.8% | |
9.2 | 9.3 | |
7 days ago | 2 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
alertmanager
-
My Raspberry Pi 4 Dashboard
- Alert Manager
-
Uptime monitoring (~1000 urls)
You could use prometheus as a monitoring tool, blackbox_exporter to "export" the urls to prometheus, alertmanager for notifications, and grafana for nice gui dashboards (and maybe also notifications).
-
Ultra Monitoring with Victoria Metrics
vmalert: executes a list of the given alerting or recording rules against configured data sources. For sending alerting notifications vmalert relies on configured Alertmanager. Recording rules results are persisted via remote write protocol. vmalert is heavily inspired by Prometheus implementation and aims to be compatible with its syntax
-
Can Prometheus act similar to OPC A&E server?
Yes, I believe you can do all of what you're looking for without a UI. The alertmanager api has the ability to register receivers as well as to poll for alerts, silence them, etc: https://github.com/prometheus/alertmanager/blob/main/api/v2/openapi.yaml
-
Part I: EC2 with Prometheus
#cloud-config # environment: ${environment} runcmd: # install AWS CLI, neeeded for downloading of configuration files - | apt-get update && apt-get install unzip -y curl -Lo awscli.zip https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip unzip awscli.zip ./aws/install rm awscli.zip # install prometheus binary - | curl -Lo prometheus.tar.gz https://github.com/prometheus/prometheus/releases/download/v2.33.1/prometheus-2.33.1.linux-arm64.tar.gz tar -xvf prometheus.tar.gz cp ./prometheus-2.33.1.linux-arm64/prometheus /usr/local/bin/prometheus rm -rf ./prometheus-2.33.1.linux-arm64 rm -rf prometheus.tar.gz # install alertmanager binary - | curl -Lo alertmanager.tar.gz https://github.com/prometheus/alertmanager/releases/download/v0.23.0/alertmanager-0.23.0.linux-arm64.tar.gz tar -xvf alertmanager.tar.gz mv ./alertmanager-0.23.0.linux-arm64/alertmanager /usr/local/bin/alertmanager rm -rf alertmanager-0.23.0.linux-arm64 rm alertmanager.tar.gz # vait for EBS volume - | while [ ! -b $(readlink -f /dev/nvme1n1) ]; do echo "waiting for device /dev/nvme1n1" sleep 5 done # format volume blkid $(readlink -f /dev/nvme1n1) || mkfs -t ext4 $(readlink -f /dev/nvme1n1) # create a mount mkdir -p /data if ! grep "/dev/nvme1n1" /etc/fstab; then echo "/dev/nvme1n1 /data ext4 defaults,discard 0 0" >> /etc/fstab fi # mount volume mount /data # enable and start systemd services - | systemctl daemon-reload systemctl enable prepare-prometheus.service && systemctl start prepare-prometheus.service && sleep 10 systemctl enable prometheus.service && systemctl start prometheus.service systemctl enable alertmanager.service && systemctl start alertmanager.service write_files: - path: /usr/local/bin/prepare-prometheus permissions: '0744' content: | #!/bin/sh mkdir -p /etc/prometheus aws s3 cp s3://${s3_bucket}/prometheus.yaml /etc/prometheus/prometheus.yaml aws s3 cp s3://${s3_bucket}/alertmanager.yaml /etc/prometheus/alertmanager.yaml aws s3 cp s3://${s3_bucket}/prometheus.rules.yaml /etc/prometheus/prometheus.rules.yaml curl -X POST http://localhost:9090/-/reload || true - path: /etc/systemd/system/prepare-prometheus.service content: | [Unit] Description=Prepare prometheus / alertmanager configuration Wants=network-online.target After=network-online.target [Service] Type=oneshot ExecStart=/usr/local/bin/prepare-prometheus # please note data.mount in dependencies - path: /etc/systemd/system/prometheus.service content: | [Unit] Description=Prometheus Wants=network-online.target After=network-online.target data.mount prepare-prometheus.service [Service] Type=simple ExecStart=/usr/local/bin/prometheus \ --config.file /etc/prometheus/prometheus.yaml \ --storage.tsdb.path /data/ \ --web.enable-lifecycle \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries \ --enable-feature=remote-write-receiver [Install] WantedBy=multi-user.target - path: /etc/systemd/system/alertmanager.service content: | [Unit] Description=Alert Manager Wants=network-online.target After=network-online.target data.mount prepare-prometheus.service [Service] Type=simple ExecStart=/usr/local/bin/alertmanager \ --config.file /etc/prometheus/alertmanager.yaml \ --storage.path=/data/ [Install] WantedBy=multi-user.target
-
It took almost a full day, but I finally got a decent homelab diagram :D Feedback is most welcome!
Prometheus)Alertmanager: https://github.com/prometheus/alertmanager | https://prometheus.io/
-
Finally got a landing page built for my little lab, after much inspiration from this sub!
At a high level, I use various Prometheus exporters, including node-exporter and some simple custom exporters, which can then be consumed by Grafana for dashboards, Alert Manager for sending PushOver notifications, and my own web apps for displaying custom metrics. Hope that helps :)
-
Architecting your Cloud Native Infrastructure
In any such scenarios, a tool like Prometheus can act as the time series database to collect all the metrics for you along with something like OpenTelemetry to expose metrics from the application and the various tools using inbuilt exporters, Alertmanager to send notifications and alerts to multiple channels, Grafana as the dashboard to visualize everything at one place and so on giving users a complete visibility on the infrastructure as a whole.
CoreDNS
- The Tailscale Universal Docker Mod
-
Kubernetes traffic discovery
But another approach that could work in Kubernetes, because the DNS servers are within the cluster itself, would be to work directly with the DNS server pods. In most Kubernetes clusters, whether standalone or managed (GKE, AKS, EKS), the cluster DNS is either coredns or kube-dns. That was great to minimize how much configuration options we’d need to support. We realized we could edit the coredns or kube-dns configmap resources to enable their log option, which would make them log all the queries they handle. We’ll cover exactly how it’s done in more detail below.
-
Self hosted DNS server that responds to queries with data from web API?
CoreDNS has an ectd plugin, so your service could add entries to a database, which is used as record source. Not the same mechanism as you have described, but it will get the job done. Also this is what Kubetnetes does for incluster dns records.
https://coredns.io/ can probably do what you need.
-
What would you rewrite in Golang?
CoreDNS is a pretty good DNS server.
-
Cool networking projects in golang
Core DNS (https://coredns.io).
-
Minimalist self hosted apps
CoreDNS - DNS server
- Cloudflare like DNS - Self-hosted or with more privacy
-
Best way to mitigate DDOS attacks on our DNS servers? Municipal ISP
CoreDNS. It's a very powerful open source DNS server.
In theory that should be possible in CoreDNS with the geoip plugin and the new view plugin.
What are some alternatives?
PowerDNS - PowerDNS Authoritative, PowerDNS Recursor, dnsdist
Grafana - The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
blocky - Fast and lightweight DNS proxy as ad-blocker for local network with many features
Pi-hole - A black hole for Internet advertisements
nsupdate.info - Dynamic DNS service
loki - Like Prometheus, but for logs.
etcd - Distributed reliable key-value store for the most critical data of a distributed system
cni - Container Network Interface - networking for Linux containers
Maza ad blocking - Local ad blocker. Like Pi-hole but local and using your operating system.
SPF Toolbox - SPFtoolbox is a Javascript and PHP app to look up DNS records such as SPF, MX, Whois, and more
synology-notifications - Synology notifications service
node_exporter - Exporter for machine metrics