add: Под с SmokePing
This commit is contained in:
parent
d6c747f7c6
commit
010d85a0ce
@ -18,6 +18,7 @@
|
|||||||
* [Перенос контейнера Docker в k3s](kubernetes/k3s-migrating-container-from-docker-to-kubernetes.md) (на примере Gitea)
|
* [Перенос контейнера Docker в k3s](kubernetes/k3s-migrating-container-from-docker-to-kubernetes.md) (на примере Gitea)
|
||||||
* [Резервное копирование k3s](kubernetes/k3s-backup.md)
|
* [Резервное копирование k3s](kubernetes/k3s-backup.md)
|
||||||
* [Настройка доступа к панелям управления](kubernetes/k3s-setting-up-web-access-to-dashboard.md) Longhorn и Traefik
|
* [Настройка доступа к панелям управления](kubernetes/k3s-setting-up-web-access-to-dashboard.md) Longhorn и Traefik
|
||||||
|
* [Под с SmokePing](kubernetes/k3s_smokeping.md)
|
||||||
|
|
||||||
## Python
|
## Python
|
||||||
* [Устранение проблем при установке Python-коннектора mysqlclient (MySQL/MariaDB)](python/python-mysql.md)
|
* [Устранение проблем при установке Python-коннектора mysqlclient (MySQL/MariaDB)](python/python-mysql.md)
|
||||||
|
208
kubernetes/k3s_smokeping.md
Normal file
208
kubernetes/k3s_smokeping.md
Normal file
@ -0,0 +1,208 @@
|
|||||||
|
# Контейнер со smokeping в k3s
|
||||||
|
|
||||||
|
Полная жопа с домашним интеренетом? А поддержка провайдера, типа МГТС или Ростелеком, отвечает: "Проблем на линии нет,
|
||||||
|
у нас все работает"? А может быть, вы хотите следить за доступностью и сетевыми задержками в доступности своих серверов
|
||||||
|
в разных локациях, или в домашней сети?.. Smokeping -- это то, что вам нужно! Не такой громоздкий, как Zabbix,
|
||||||
|
и не такой сложный в настройке, как Grafana (хотя к Grafana его тоже можно подключить), и главное супер-компактный
|
||||||
|
и легкий.
|
||||||
|
|
||||||
|
И так, все манифесты в одном файле. Только поменяйте в манифесте `smokeping-config` меню, название и IP-адреса
|
||||||
|
на свои, и укажите на какое доменное имя публикуете веб-панель (у меня -- http://sp.local). Ну и читайте пояснения
|
||||||
|
и комментарии внутри манифестов:
|
||||||
|
```yaml
|
||||||
|
# ~/k3s/smokeping/smokeping.yaml
|
||||||
|
# Все манифесты для smokeping
|
||||||
|
|
||||||
|
# Манифест создания пространства имён `smokeping`. Если оно уже есть — kubectl apply ничего не изменит (т.е. безопасно.)
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: smokeping
|
||||||
|
|
||||||
|
---
|
||||||
|
# Манифест ConfigMap с конфигурацией Targets для smokeping
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: smokeping-config
|
||||||
|
namespace: smokeping
|
||||||
|
data:
|
||||||
|
# Это содержимое файла Targets. Здесь указываем, кого пинговать.
|
||||||
|
Targets: |
|
||||||
|
*** Targets ***
|
||||||
|
|
||||||
|
probe = FPing
|
||||||
|
|
||||||
|
menu = Top
|
||||||
|
title = Network Latency Grapher
|
||||||
|
remark = Привет тебе, путник. SmokePing website of Campany.\
|
||||||
|
Тут ты узнаешь все о задержках в вашей сети.
|
||||||
|
|
||||||
|
+ HOME
|
||||||
|
menu = HOME
|
||||||
|
title = HOME
|
||||||
|
|
||||||
|
++ Router
|
||||||
|
menu = Router
|
||||||
|
title = Router
|
||||||
|
alerts = someloss
|
||||||
|
host = 192.168.1.1
|
||||||
|
|
||||||
|
++ NAS
|
||||||
|
menu = NAS
|
||||||
|
title = NAS
|
||||||
|
alerts = someloss
|
||||||
|
host = 192.168.1.xxx
|
||||||
|
|
||||||
|
++ K3S_VIP
|
||||||
|
menu = K3S_VIP
|
||||||
|
title = K3S_VIP
|
||||||
|
alerts = someloss
|
||||||
|
host = 192.168.1.xxx
|
||||||
|
|
||||||
|
++ YANDEX_ALISA
|
||||||
|
menu = YANDEX_ALISA
|
||||||
|
title = YANDEX_ALISA
|
||||||
|
alerts = someloss
|
||||||
|
host = 192.168.1.xxx
|
||||||
|
|
||||||
|
|
||||||
|
+ INTERNET
|
||||||
|
menu = INTERNET
|
||||||
|
title = INTERNET
|
||||||
|
|
||||||
|
++ HOSTING_RU
|
||||||
|
menu = Russia
|
||||||
|
title = MasterHost_ru
|
||||||
|
alerts = someloss
|
||||||
|
host = xxx.xxx.xxx.xxx
|
||||||
|
|
||||||
|
++ HOSTING_EU
|
||||||
|
menu = Sweden
|
||||||
|
title = xxxxxxx
|
||||||
|
alerts = someloss
|
||||||
|
host = xxx.xxx.xxx.xxx
|
||||||
|
|
||||||
|
++ HOSTING_AS
|
||||||
|
menu = Tureky
|
||||||
|
title = xxxxxxx
|
||||||
|
alerts = someloss
|
||||||
|
host = xxx.xxx.xxx.xxx
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
# Манифест PVC (Longhorn) -- том для хранения данных графиков, чтоб при перезапуске пода данные не пропадали
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: smokeping-data # Имя PVC-хранилища
|
||||||
|
namespace: smokeping # Пространство имен `smokeping`
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn # Используем Longhorn как класс хранения
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 256Mi # Хватит на мониторинг 20-30 узлов глубиной 1.5-2 года (!)
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
# Манифест для развертывания smokeping (Deployment)
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: smokeping
|
||||||
|
namespace: smokeping
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: smokeping
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: smokeping
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: smokeping
|
||||||
|
# image: ghcr.io/linuxserver-arm64v8/smokeping # dля arm64v8
|
||||||
|
image: linuxserver/smokeping # оригинальный образ smokeping, и он заработал на amd64
|
||||||
|
env:
|
||||||
|
- name: TZ # Указываем временную зону
|
||||||
|
value: Europe/Moscow # ...чтобы на графиках не было UTC
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
volumeMounts: # Монтируем файл Targets из ConfigMap в нужное место в контейнере
|
||||||
|
- name: config
|
||||||
|
mountPath: /config/Targets # mountPath указывает, куда будет "вставлен" файл
|
||||||
|
subPath: Targets # subPath = берём только один файл из configMap
|
||||||
|
- name: data
|
||||||
|
mountPath: /data # Данные графиков в Longhorn (PVC)
|
||||||
|
volumes:
|
||||||
|
- name: config # Используем том ConfigMap с конфигурацией
|
||||||
|
configMap:
|
||||||
|
name: smokeping-config
|
||||||
|
- name: data # Используем PVC (Longhorn) для хранения данных
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: smokeping-data
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
# Service — внутренний сервис для доступа к smokeping по сети внутри кластера
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: smokeping
|
||||||
|
namespace: smokeping
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: smokeping
|
||||||
|
ports:
|
||||||
|
- protocol: TCP
|
||||||
|
port: 80 # порт внутри кластера
|
||||||
|
targetPort: 80 # порт, на котором работает контейнер
|
||||||
|
type: ClusterIP # только для доступа внутри кластера (Ingress подключится к нему)
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
# IngressRoute для Traefik (под твою конфигурацию)
|
||||||
|
# Это публикует smokeping по адресу http://sp.local (заменить на свой домен)
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: smokeping
|
||||||
|
namespace: smokeping
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- web # это должен быть один из entrypoints в Traefik (обычно "web" = порт 80)
|
||||||
|
routes:
|
||||||
|
- match: Host(`sp.local`) # доменное имя, по которому будет доступен сервис
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: smokeping
|
||||||
|
port: 80
|
||||||
|
|
||||||
|
---
|
||||||
|
######## Это я пытался сделать редирект на favicon, но не заработало. У самого smokeping нет favicon, и это бесило.
|
||||||
|
# Манифест Middleware для перенаправление всех запросов к /favicon.ico на другой URL (к сожалению у smokeping нет favicon.ico).
|
||||||
|
#apiVersion: traefik.io/v1alpha1
|
||||||
|
#kind: Middleware
|
||||||
|
#metadata:
|
||||||
|
# name: favicon-redirect
|
||||||
|
# namespace: smokeping
|
||||||
|
#spec:
|
||||||
|
# redirectRegex:
|
||||||
|
# regex: "^/favicon\\.ico$"
|
||||||
|
# replacement: "http://ai.local/_graphmagnifier_118081.ico"
|
||||||
|
# permanent: true
|
||||||
|
```
|
||||||
|
|
||||||
|
Сохраним файл в `~/k3s/smokeping/smokeping.yaml` (или в другом месте, где вам удобно), и применим манифесты:
|
||||||
|
```bash
|
||||||
|
kubectl apply -f ~/k3s/smokeping/smokeping.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
После этого smokeping будет доступен по адресу http://sp.local (или по тому доменному имени, которое вы указали
|
||||||
|
в манифесте IngressRoute) и увидите занятные графики (только дождитесь пока данные соберутся, ну часок-другой):
|
||||||
|
|
||||||
|

|
Loading…
x
Reference in New Issue
Block a user