- PVSM.RU - https://www.pvsm.ru -
Введение в Skydive
Skydive — это анализатор топологии сети и протоколов с открытым исходным кодом в реальном времени. Он направлен на то, чтобы предоставить исчерпывающий способ понять, что происходит в сетевой инфраструктуре.
Скриншот активных коннектов в kubernetes
Kubernetes будет ниже.
А сейчас посмотрим более простой пример.
Для демонстрации установим на 3 сервера кластер Etcd. Для этого будем использовать galaxy роль frank6866.etcd.
- hosts: etcd
become: yes
roles:
- frank6866.etcd
файл inventory hosts.multiple
frank6866-etcd-1 ansible_ssh_host=172.26.9.78 etcd_public_ip=172.26.9.78
frank6866-etcd-2 ansible_ssh_host=172.26.9.79 etcd_public_ip=172.26.9.79
frank6866-etcd-3 ansible_ssh_host=172.26.9.80 etcd_public_ip=172.26.9.80
[cluster1]
frank6866-etcd-[1:3]
[etcd:children]
cluster1
[etcd:vars]
etcd_tls_enabled='false'
Запускаем установку
ansible-playbook -i hosts.multiple etcd-cluster.yaml
После скачиваем репозиторий skydive
git clone https://github.com/skydive-project/skydive.git
Переходим в папку contrib/ansible/inventory
cd contrib/ansible/inventory
Правим IP в файле hosts.multiple
[analyzers]
IP для сервера анализатора
[agents]
Три IP etcd кластера
# Нужно раскоментировать эти строки для skydive-flow-matrix
# For skydive-flow-matrix add skydive_extra_config:
[agents:vars]
skydive_extra_config={'agent.topology.probes': ['socketinfo',]}
Запускаем установку skydive агентов и анализатора
ansible-playbook -i inventory/hosts.multiple playbook.yml.sample
После со своего компьютера заходим в IP для сервера анализатора:8082
И видим примерно такую картину
С помощью skydive-flow-matrix активные коннекты между серверами.
Сначала установим skydive-flow-matrix на вашем рабочем компьютере.
git clone https://github.com/skydive-project/skydive-flow-matrix.git
cd skydive-flow-matrix/
apt install graphviz
sudo pip install virtualenv
virtualenv .venv
source .venv/bin/activate
pip install -r requirements.txt
pip install .
Получим активные коннективности в текстовом виде.
skydive-flow-matrix --analyzer IP для сервера анализатора:8082 --username admin --password password
protocol,server,server_ip,port,server_proc,server_procname,client,client_ip,client_proc,client_procname
TCP,skydive-apatsev-2,127.0.0.1,2379,/usr/bin/etcd,etcd,skydive-apatsev-2,127.0.0.1,/usr/bin/etcd,etcd
TCP,skydive-apatsev-2,127.0.0.1,4001,/usr/bin/etcd,etcd,skydive-apatsev-2,127.0.0.1,/usr/bin/etcd,etcd
TCP,skydive-apatsev-4,172.26.9.80,2380,/usr/bin/etcd,etcd,skydive-apatsev-2,172.26.9.78,/usr/bin/etcd,etcd
TCP,skydive-apatsev-2,172.26.9.78,2380,/usr/bin/etcd,etcd,skydive-apatsev-3,172.26.9.79,/usr/bin/etcd,etcd
TCP,skydive-apatsev-4,127.0.0.1,4001,/usr/bin/etcd,etcd,skydive-apatsev-4,127.0.0.1,/usr/bin/etcd,etcd
TCP,skydive-apatsev-3,127.0.0.1,4001,/usr/bin/etcd,etcd,skydive-apatsev-3,127.0.0.1,/usr/bin/etcd,etcd
TCP,skydive-apatsev-3,172.26.9.79,2380,/usr/bin/etcd,etcd,skydive-apatsev-2,172.26.9.78,/usr/bin/etcd,etcd
TCP,skydive-apatsev-3,172.26.9.79,2380,/usr/bin/etcd,etcd,skydive-apatsev-4,172.26.9.80,/usr/bin/etcd,etcd
TCP,skydive-apatsev-2,172.26.9.78,2380,/usr/bin/etcd,etcd,skydive-apatsev-4,172.26.9.80,/usr/bin/etcd,etcd
TCP,skydive-apatsev-4,127.0.0.1,2379,/usr/bin/etcd,etcd,skydive-apatsev-4,127.0.0.1,/usr/bin/etcd,etcd
TCP,skydive-apatsev-3,127.0.0.1,2379,/usr/bin/etcd,etcd,skydive-apatsev-3,127.0.0.1,/usr/bin/etcd,etcd
TCP,skydive-apatsev-4,172.26.9.80,2380,/usr/bin/etcd,etcd,skydive-apatsev-3,172.26.9.79,/usr/bin/etcd,etcd
Так же получим активные коннективности в графическом виде.
skydive-flow-matrix --analyzer IP для сервера анализатора:8082 --username admin --password password --format render
Теперь установим skydive в Kubernetes
Skydive нужно установливать в Kubernetes версии не больше 1.16.
Для установки можно использовать kubespray.
Дальше запускаем установку skydive:
git clone https://github.com/skydive-project/skydive.git
cd skydive/contrib/kubernetes/
kubectl apply -f skydive.yaml
После установки skydive в kubernetes запускаем проброс порта 8082 на вашу рабочу станцию.
Эту команду нужно запускать с вашей рабочей станции.
Перед этим нужно создать config файл в директории .kube в домашней директории.
kubectl port-forward service/skydive-analyzer 8082:8082
Несколько скриншотов и видео активных коннектов в kubernetes
Если нажем плюс, то обьектов будет еще больше.
Видео:
Построение графа нодов:
Построение графа оконечных обьектов:
Отображнение метаданных ноды:
Type
, Name
plus k8s specific such as K8s.Namespace
K8s.Extra
Построение метаданных ноды:
Status
node metadata fieldИщутся люди, которые могли бы писать посты о других возможностях Skydive.
Телеграм чат по skydive.network: https://t.me/skydive_network_ru [1]
Автор: chemtech
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/setevy-e-tehnologii/334201
Ссылки в тексте:
[1] https://t.me/skydive_network_ru: https://t.me/skydive_network_ru
[2] Источник: https://habr.com/ru/post/472724/?utm_campaign=472724&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.