|
| 1 | +# Переменные окружения и флаги |
| 2 | + |
| 3 | +Этот документ описывает переменные окружения и флаги для osctl. |
| 4 | + |
| 5 | +## Порядок приоритета |
| 6 | + |
| 7 | +Конфигурация загружается в следующем порядке: |
| 8 | +1. **Флаги командной строки** |
| 9 | +2. **Переменные окружения** |
| 10 | +3. **Общий конфиг файл** (`config.yaml`) |
| 11 | +4. **Файл конфигурации индексов** (`osctlindicesconfig.yaml`) - для команд snapshot, indicesdelete, snapshotdelete, snapshotchecker |
| 12 | +5. **Значения по умолчанию** (наименьший приоритет) |
| 13 | + |
| 14 | +## Общие флаги |
| 15 | + |
| 16 | +Эти флаги доступны для всех команд: |
| 17 | + |
| 18 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 19 | +|------|---------------------|----------|--------------| |
| 20 | +| `--action` | `OSCTL_ACTION` | Автоматически выполнить команду (snapshot, retention, dereplicator, etc.) | (пусто) | |
| 21 | +| `--config` | `OSCTL_CONFIG` | Путь к файлу конфигурации | `config.yaml` | |
| 22 | +| `--os-url` | `OPENSEARCH_URL` | URL OpenSearch | `https://opendistro:9200` | |
| 23 | +| `--os-recoverer-url` | `OPENSEARCH_RECOVERER_URL` | URL OpenSearch Recoverer | `https://opendistro-recoverer:9200` | |
| 24 | +| `--cert-file` | `OPENSEARCH_CERT_FILE` | Путь к сертификату | `/etc/ssl/certs/admin-crt.pem` | |
| 25 | +| `--key-file` | `OPENSEARCH_KEY_FILE` | Путь к приватному ключу | `/etc/ssl/certs/admin-key.pem` | |
| 26 | +| `--ca-file` | `OPENSEARCH_CA_FILE` | Путь к CA | `/etc/ssl/certs/elk-root-ca.pem` | |
| 27 | +| `--timeout` | `OPENSEARCH_TIMEOUT` | Таймаут запросов | `300s` | |
| 28 | +| `--retry-attempts` | `OPENSEARCH_RETRY_ATTEMPTS` | Количество повторных попыток для запросов в апи | `3` | |
| 29 | +| `--date-format` | `OPENSEARCH_DATE_FORMAT` | Формат даты в названиях индексов и снапшотов | `%Y.%m.%d` | |
| 30 | +| `--recoverer-date-format` | `RECOVERER_DATE_FORMAT` | Формат даты для индексов у Recoverer | `%d-%m-%Y` | |
| 31 | +| `--madison-url` | `MADISON_URL` | URL API Madison | `https://madison.flant.com/api/events/custom/` | |
| 32 | +| `--madison-key` | `MADISON_KEY` | Ключ API Madison | (пусто) | |
| 33 | +| `--madison-project` | `MADISON_PROJECT` | Название проекта в Madison | (пусто) | |
| 34 | +| `--osd-url` | `OPENSEARCH_DASHBOARDS_URL` | URL OpenSearch Dashboards | (пусто) | |
| 35 | +| `--osctl-indices-config` | `OSCTL_INDICES_CONFIG` | Путь к конфигу индексов - для snapshot, indicesdelete, snapshotdelete, snapshotchecker | `osctlindicesconfig.yaml` | |
| 36 | +| `--dry-run` | `DRY_RUN` | Показать что будет сделано без выполнения | `false` | |
| 37 | +| `--snap-repo` | `SNAPSHOT_REPOSITORY` | Название репо для снапшотов | (пусто) | |
| 38 | + |
| 39 | +## Параметр action |
| 40 | + |
| 41 | +Параметр `action` позволяет автоматически выполнить нужную команду без указания её в командной строке. Сделано для деплойментов и кронджоб в Kubernetes. |
| 42 | + |
| 43 | +### Доступные значения action: |
| 44 | +- `snapshots` |
| 45 | +- `snapshot-manual` |
| 46 | +- `snapshotsdelete` |
| 47 | +- `snapshotschecker` |
| 48 | +- `indicesdelete` |
| 49 | +- `retention` |
| 50 | +- `dereplicator` |
| 51 | +- `coldstorage` |
| 52 | +- `extracteddelete` |
| 53 | +- `danglingchecker` |
| 54 | + - `sharding` |
| 55 | + - `indexpatterns` |
| 56 | + - `datasource` |
| 57 | + |
| 58 | +### Примеры использования: |
| 59 | + |
| 60 | +**В config.yaml:** |
| 61 | +```yaml |
| 62 | +action: "snapshot" |
| 63 | +opensearch_url: "https://opendistro:9200" |
| 64 | +# ... |
| 65 | +``` |
| 66 | + |
| 67 | +**Через переменную окружения:** |
| 68 | +```bash |
| 69 | +export OSCTL_ACTION=retention |
| 70 | +osctl |
| 71 | +``` |
| 72 | + |
| 73 | +**Через флаг:** |
| 74 | +```bash |
| 75 | +osctl --action=snapshot |
| 76 | +``` |
| 77 | + |
| 78 | +## Флаги команд |
| 79 | + |
| 80 | +### `coldstorage` |
| 81 | + |
| 82 | +Перемещает индексы на узлы cold, если они старше N дней. |
| 83 | + |
| 84 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 85 | +|------|---------------------|----------|--------------| |
| 86 | +| `--cold-attribute` | `COLD_ATTRIBUTE` | Атрибут узлов для cold | (пусто) | |
| 87 | +| `--hot-count` | `HOT_COUNT` | Количество дней, которые нужно держать индексы в hot | `3` | |
| 88 | + |
| 89 | +**Ключи в конфиг файле:** |
| 90 | +- `cold_attribute` |
| 91 | +- `hot_count` |
| 92 | + |
| 93 | +### `retention` |
| 94 | + |
| 95 | +Удаляет старые индексы при превышении порога использования диска. |
| 96 | + |
| 97 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 98 | +|------|---------------------|----------|--------------| |
| 99 | +| `--retention-threshold` | `RETENTION_THRESHOLD` | Порог использования диска в процентах | `75` | |
| 100 | + |
| 101 | +**Ключи в конфиг файле:** |
| 102 | +- `retention-threshold` |
| 103 | + |
| 104 | +### `dereplicator` |
| 105 | + |
| 106 | +Уменьшает количество реплик до 0 для индексов старше указанного количества дней. |
| 107 | + |
| 108 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 109 | +|------|---------------------|----------|--------------| |
| 110 | +| `--dereplicator-days-count` | `DEREPLICATOR_DAYS` | Какое количество дней держать индексы с репликами | `2` | |
| 111 | +| `--dereplicator-use-snapshot` | `DEREPLICATOR_USE_SNAPSHOT` | Проверять снапшоты перед уменьшением реплик | `false` | |
| 112 | + |
| 113 | +**Ключи в конфиг файле:** |
| 114 | +- `dereplicator_days_count` |
| 115 | +- `dereplicator_use_snapshot` |
| 116 | + |
| 117 | +### `extracteddelete` |
| 118 | + |
| 119 | +Удаляет extracted индексы, которые больше не нужны. |
| 120 | + |
| 121 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 122 | +|------|---------------------|----------|--------------| |
| 123 | +| `--days` | `EXTRACTED_DAYS` | Какое количество дней держать extracted индексы | `7` | |
| 124 | +| `--extracted-pattern` | `EXTRACTED_PATTERN` | Префикс для extracted индексов | `extracted_` | |
| 125 | +| `--opensearch_recoverer_url` | `OPENSEARCH_RECOVERER_URL` | Url рековерера | `https://opendistro-recoverer:9200` | |
| 126 | +| `--recoverer_date_format` | `RECOVERER_DATE_FORMAT` | Формат даты у extracted индексов | `%d-%m-%Y` | |
| 127 | + |
| 128 | +**Ключи в конфиг файле:** |
| 129 | +- `opensearch_recoverer_url` |
| 130 | +- `extracted_pattern` |
| 131 | +- `extracted_days` |
| 132 | +- `recoverer_date_format` |
| 133 | + |
| 134 | +### `snapshots`, `snapshot-manual` |
| 135 | + |
| 136 | +Создает снапшоты индексов. |
| 137 | + |
| 138 | +**Специальные флаги для snapshot-manual:** |
| 139 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 140 | +|------|---------------------|----------|--------------| |
| 141 | +| `--snapshot-manual-kind` | `SNAPSHOT_KIND` | Тип паттерна: prefix или regex | `prefix` | |
| 142 | +| `--snapshot-manual-value` | `SNAPSHOT_VALUE` | Значение паттерна | (пусто) | |
| 143 | +| `--snapshot-manual-name` | `SNAPSHOT_NAME` | Имя снапшота (обязательно для regex) | (пусто) | |
| 144 | +| `--snapshot-manual-system` | `SNAPSHOT_SYSTEM` | Флаг системного индекса (получает индексы с точкой, независимо от даты) | `false` | |
| 145 | + |
| 146 | +### `sharding` |
| 147 | + |
| 148 | +Рассчитывает шардирование и создает/обновляет index template. |
| 149 | + |
| 150 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 151 | +|------|---------------------|----------|--------------| |
| 152 | +| `--sharding-target-size-gib` | `SHARDING_TARGET_SIZE_GIB` | Целевой размер шарда (GiB, максимум 50) | `25` | |
| 153 | +| `--exclude-sharding` | `EXCLUDE_SHARDING` | Регекс для исключения паттернов | (пусто) | |
| 154 | + |
| 155 | +**Ключи в конфиг файле:** |
| 156 | +- `sharding_target_size_gib` |
| 157 | +- `exclude_sharding` |
| 158 | + |
| 159 | +### `indexpatterns` |
| 160 | + |
| 161 | +Управляет index patterns в Kibana через OpenSearch API (индекс `.kibana`) |
| 162 | + |
| 163 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 164 | +|------|---------------------|----------|--------------| |
| 165 | +| `--kibana-index-regex` | `KIBANA_INDEX_REGEX` | Регекс для построения паттернов | `^([\\w-]+)-([\\w-]*)(\\d{4}[\\.-]\\d{2}[\\.-]\\d{2}(?:[\\.-]\\d{2})*)$` | |
| 166 | +| `--kibana-multitenancy` | `KIBANA_MULTITENANCY` | Режим multitenancy | `false` | |
| 167 | +| `--kibana-tenants-config` | `KIBANA_TENANTS_CONFIG` | Путь к YAML с тенантами и index patterns | `osctltenants.yaml` | |
| 168 | +| `--recoverer-enabled` | `RECOVERER_ENABLED` | Создавать `extracted_*` с ссылкой на data-source | `false` | |
| 169 | + |
| 170 | +Примечание: Список тенантов всегда берётся из `--kibana-tenants-config`. |
| 171 | + |
| 172 | +**Ключи в конфиг файле:** |
| 173 | +- `kibana_index_regex` |
| 174 | +- `kibana_multitenancy` |
| 175 | +- `recoverer_enabled` |
| 176 | + |
| 177 | +### `datasource` |
| 178 | + |
| 179 | +Создает Kibana data-source в нужных тенантах и при multidomain синхронизирует секреты. |
| 180 | + |
| 181 | +| Флаг | Переменная окружения | Описание | Значение по умолчанию | |
| 182 | +|------|---------------------|----------|--------------| |
| 183 | +| `--kibana-user` | `KIBANA_API_USER` | Пользователь API Kibana | (пусто) | |
| 184 | +| `--kibana-pass` | `KIBANA_API_PASS` | Пароль API Kibana | (пусто) | |
| 185 | +| `--datasource-name` | `DATA_SOURCE_NAME` | Название data-source | `recoverer` | |
| 186 | +| `--kube-namespace` | `KUBE_NAMESPACE` | Namespace для секретов | `infra-elklogs` | |
| 187 | +| `--kibana-multidomain-enabled` | `KIBANA_MULTIDOMAIN_ENABLED` | Управление секретом `multi-certs` и перезапуск Kibana если было обновление сертификатов | `false` | |
| 188 | + |
| 189 | +В режиме multitenancy список тенантов берется из `--kibana-tenants-config` (`KIBANA_TENANTS_CONFIG`), файл обязателен. |
| 190 | + |
| 191 | +Переменные окружения для multidomain: |
| 192 | +- `REMOTE_CRT`: конкатенированные base64 сертификаты, разделённые `|` (будут склеены и объединены с `recoverer-certs/ca.crt`, если есть) |
| 193 | + |
0 commit comments