Skip to content

Latest commit

 

History

History
76 lines (56 loc) · 1.61 KB

README.md

File metadata and controls

76 lines (56 loc) · 1.61 KB

Kaznet Status

  • Traceroute IPs and if the last hoop ip address belongs to Kazakhstan approve it as IP with internet.

  • Send information into telegram if ip connection error occurrence.

  • Provide Prometheus metrics for visualization data in grafana with predefined json models.

TechStack

  • GoLang
  • GeoLite MaxMind - DB
  • Traceroute
  • memdb
  • Telegram BOT

Additional data

Telegram BOT in Action in our channel: https://t.me/kaznet_status

Prometheus(optional)

Grafana(optional)

K8S(optional) predefined manifests

How to develop?

Old school via go run (Develop)

./build.sh # sudo required for run binary

How to run?

Docker-compose (Production)

  1. Edit env in docker-compose.yml
      TZ: Asia/Almaty
      TELEGRAM_BOT_TOKEN: your-bot-token 
      TELEGRAM_BOT_CHAT_ID: your-chat-id
  1. Build and run
docker-compose -f docker-compose.yml build
docker-compose -f docker-compose.yml up -d

K8S (Production)

  1. Edit env in k8s/production/deployment.yml
            - name: TELEGRAM_BOT_CHAT_ID
              value: "your-chat-id"
            - name: TELEGRAM_BOT_TOKEN
              value: your-bot-token
            - name: TZ
              value: Asia/Almaty
  1. Create service account in your k8s cluster
cd k8s/production

./service-account-for-cd.sh
  1. Deploy manifests
kubectl apply -f deployment.yaml