Первичный траблшут в KUMA
:::warning
:warning: Для открытия рисунка в полном размере, нажмите правой кнопкой мыши на изображении и выберите пункт "Открыть изображение в новой вкладке"
:::
# Содержание
[toc]
# Проверка статуса основных компонентов
Основные службы KUMA:
```bash=
systemctl status kuma-collector-ID_СЕРВИСА.service
systemctl status kuma-correlator-ID_СЕРВИСА.service
systemctl status kuma-storage-ID_СЕРВИСА.service
systemctl status kuma-core.service
systemctl status kuma-clickhouse.service
systemctl status kuma-mongodb.service
systemctl status kuma-victoria-metrics.service
systemctl status kuma-grafana.service
```
ID_СЕРВИСА можно скопировать в веб-интерфейсе системы, в разделе Активные сервисы, выделив в checkbox нужный сервис, затем нажав кнопку скопировать ID.

<br>
# Проверка журнала ошибок KUMA
```/opt/kaspersky/kuma/<Компонент>/<ID_компонента>/log/<Компонент>```
Пример:
```/opt/kaspersky/kuma/storage/<ID хранилища>/log/storage```
Для неактуальных версий:
- ```journalctl –xe```
- Журнал ошибок Click-House: ```/opt/kaspersky/kuma/clickhouse/logs/clickhouse-server.err.log```
<br>
# Вывод ошибок сервиса в консоль
В случае отсутствия информации в журналах целесообразно вывести информацию в консоль. Проверяем статус сервиса и копируем его параметры запуска:

**Останавливаем сервис** и запускаем следующим образом, пример команды ниже:
```bash
sudo -u kuma /opt/kaspersky/kuma/kuma collector --id cef0527c-25ad-4490-a8ce-bf9ab2af71ee --core https://test-kuma.sales.lab:7210 --api.port 7276
```
<br>
# Пустые метрики
В случае если раздел метрик пустой (отсутствуют значения на дашбордах), то проверьте указан ли IP и hostname сервера KUMA в файле /etc/hosts, если нет то добавьте.
Перезапустите службы:
```bash
systemctl restart kuma-victoria-metrics.service
systemctl restart kuma-grafana.service
```
Либо присутствует конфликт со службой Cockpit на Oracle Linux.
Она слушает тот же порт 9090, что и Victoria Metrics. Останови Cockpit и посмотри, поднимутся ли метрики.
Либо проблема из-за наличия прокси между ядром и АРМом, с которого к вебке подключались.
<br>
# Проверка прослушивания порта, например, 5144
```bash
netstat –antplu | grep 5144
```
<br>
# Работа с портами на МЭ (firewall-cmd)
Проверка открытых портов на МЭ:
```bash
firewall-cmd --list-ports
```
Добавление порта 7210 на МЭ:
```bash
firewall-cmd --add-port=7210/tcp --permanent
```
Применение настроек:
```bash
firewall-cmd --reload
```
<br>
# Проверка получения событий на порту 5144 в ASCII
```bash
tcpdump -i any port 5144 -A
```
<br>
# Отправка тестового события на порт 5144, для проверки работы коллектора
Для TCP:
```bash
nc 127.0.0.1 5144 <<< 'CEF:0|TESTVENDOR|TESTPRODUCT|1.1.1.1|TEST_EVENT|This is a test event|Low|message="just a test coming through"'
```
Для UDP:
```bash
nc -u 127.0.0.1 5144 <<< 'CEF:0|TESTVENDOR|TESTPRODUCT|1.1.1.1|TEST_EVENT|This is a test event|Low|message="just a test coming through"'
```
<br>
# Статус службы красный / Ошибка на компоненте
Переписать / перепроверить учетные данные (если используются) используемые в коннекторе на коллекторе. Проверить владельца папки службы, должно быть **kuma:kuma**
Посмотреть статус сервиса через консоль ssh. В случае если он запущен остановить:
```bash
systemctl stop kuma-collector-ID_СЕРВИСА.service
```
запустить вручную (```--api.port``` выбирайте любой свободный), и посмотреть есть ли ошибки при запуске:
```bash
/opt/kaspersky/kuma/kuma collector --id ID_СЕРВИСА --core https://FQDN_KUMA:7210 --api.port 7225
```
Если будут ошибки, они явно отразятся в консоли.
<br>
# Ручная очистка пространства хранилища
Выберите в активных сервисах - сервис хранилища (storage) и нажмите на кнопку смотреть разделы. Удаляйте наиболее старые партиции.
<br>
# Создание сервисов в случае их отсутствия
Если в разделе **Ресурсы – Активные сервисы** отсутствуют что-либо, то необходимо создать необходимые службы.
## Создаем сервис хранилища
Перейдите в **Ресурсы – Хранилища** затем нажать на кнопку **Добавить хранилище** придумайте название и затем укажите количество дней хранения событий и событий аудита (от 365 дней срок хранения аудита), затем нажмите **Сохранить**.
Публикуем созданный сервис **Ресурсы – Активные сервисы** затем выбрать созданный ранее сервис и нажать на кнопку Создать сервис.
Скопируйте идентификатор сервиса:

Выполните команду в консоли:
```bash
/opt/kaspersky/kuma/kuma storage --id <ВАШ_ИДЕНТИФИКАТОР> --core https://<FQDN/ИМЯ_ХОСТА_СЕРВЕРА_ЯДРА>:7210 --api.port 7230 --install
```
В разделе **Ресурсы – Активные сервисы** убедитесь, что служба работает более 30 секунд с «зеленым» статусом индикатора:

Далее создадим точку назначения, которая используется в маршрутизации событий, перейдите в **Ресурсы – Точки назначения**, затем нажмите на кнопку **Добавить точку назначения**. Придумайте название и затем в поле URL укажите FQDN и порт службы хранилища, например: ```kuma-1-5-1.sales.lab:7230```, затем нажмите **Сохранить**.
Аналогичные действия понадобятся для установки остальных компонентов, только в интерфейсе будет доступна команда, которую необходимо будет выполнить для установки службы.
## Создаем сервис коррелятора
Развернем коррелятор, перейдите в **Ресурсы – Корреляторы**, нажмите на кнопку Добавить коррелятор и затем пройдите по мастеру настроек, на шаге добавления маршрутизации добавьте точку назначения ранее созданного хранилища:

На последнем шаге нажмите кнопку **Сохранить и создать сервис**, в случае отсутствия ошибок появится командная строка для установки службы, скопируйте ее и выполните по ssh.

Аналогично по мастеру создаются коллекторы для приема или получения событий с источников.
<br>
# Ошибка скрипта при установке - ipaddr
Если при установке возникает следующая ошибка (пишется в конце исполнения скрипта):

То попробуйте установить нужную библиотеку для python, это было в требованиях https://support.kaspersky.com/KUMA/1.6/ru-RU/231034.htm, в случае отсутствия возможности это сделать то закомментируйте (вставьте # перед строками) следующие строки в файле ```kuma-ansible-installer/tasks/validate-inventory.yml```:
```
#- name: Ensure there is no IP as hostname
# loop: "{{ groups.all }}"
# when: item | ansible.netcommon.ipaddr
# fail:
# msg: |
# host: {{ item }}
# error: Hostname expected
```
<br>
# Мониторинг работы ядра в кластере Kubernetes
На хосте контроллера можно посмотреть какие сервисы запущены:
```bash
k0s kubectl get pods --all-namespaces
```
По команде выше, в столбце NAMESPACE нам интересна строка kuma, в этой строке берем значение столбца NAME для просмотра конфигурации используем команду:
```bash
k0s kubectl get pod core-deployment-984fd44df-5cfk5 -n kuma -o yaml | less
```
Получить список рабочих узлов:
```bash
k0s kubectl get nodes
```
Получить расширенную инфу по рабочему узлу, в т.ч. потребление:
```bash
k0s kubectl describe nodes kuma-4.local
```
Зайти в командную строчку пода core-*:
```bash
k0s kubectl exec --stdin --tty core-deployment-984fd44df-gqzlx -n kuma -- /bin/sh
```
Потребление ресурсов контейнеров внутри пода:
```bash
k0s kubectl top pod core-deployment-984fd44df-gqzlx -n kuma --containers
```
Для более удобного управления кластером используйте утилиту k9s - https://github.com/derailed/k9s
После установки ядра в кластере в папке установки прописывается конфиг, например, ```/root/kuma-ansible-installer/artifacts/k0s-kubeconfig.yml```. Его надо “скормить” k9s командой: ```export KUBECONFIG=/root/kuma-ansible-installer/artifacts/k0s-kubeconfig.yml```
Далее можно запустить утилиту просто указав на исполняемый файл ```/root/.local/opt/k9s-v0.27.2/bin/k9s```

<br>
# Не запускается хранилище после перезагрузки в версии от 2.1
Прописать следующую команду в SSH консоли:
```bash
sudo -u kuma touch /opt/kaspersky/kuma/clickhouse/data/flags/force_restore_data
```
<br>
# Слушать на 514 порту (порты < 1024)
По умолчанию это невозможно, так работает Linux. Для обхода этого в описании сервиса:
```
/usr/lib/systemd/system/kuma-collector-<ID>
```
Добавьте значение ниже тега [Service]
```
AmbientCapabilities=CAP_NET_BIND_SERVICE
```
Затем запустите команду ниже для обновления параметров сервиса
```
systemctl daemon-reload
```
<br>
# Ошибка БД Table read only replicas
Ошибка в логах хранилища выглядит так:

Зайдите в клиент ClickHouse:
```
/opt/kaspersky/kuma/clickhouse/bin/client.sh
```
Выполните команду:
```
system restart replica on cluster kuma kuma.events_local_v2
```
Для выхода из клиента нажмите **Ctrl+D**.
<br>