FortiGate
Fortinet FortiGate через REST API FortiOS: упавшие IPsec-туннели между площадками, включённые интерфейсы, потерявшие связь, кластер HA с рассинхронизацией или нехваткой участника, память, приближающаяся к режиму conserve mode, истекающие лицензии FortiGuard и FortiCare и патч-релизы, предлагаемые для работающей ветки FortiOS.
DumbMonit использует пользователя REST API с профилем доступа только на чтение, который
принимает вызовы только с адреса сервера DumbMonit (trusted host). Его
токен передаётся как Authorization: Bearer, а не в URL: FortiOS 7.4.5 и
7.6.1 всё равно отклоняют его в URL.
Каждую минуту DumbMonit читает три обязательные страницы — /api/v2/monitor/system/status,
/api/v2/monitor/system/resource/usage и /api/v2/monitor/system/interface/select
— и шесть необязательных, которые более узкий профиль либо FortiGate без
кластера или туннелей может отклонить или оставить пустыми, не нарушая остальное:
административное состояние интерфейсов (/api/v2/cmdb/system/interface), статистика и контрольные суммы HA,
IPsec-туннели, состояние лицензий и доступные
прошивки.
За чем он следит
Заголовок раздела «За чем он следит»Все метрики имеют префикс dumbmonit_fortigate_.
| Метрика | Метки | Значение |
|---|---|---|
version_info | version, build, model, hostname | Значение 1. |
cpu_usage_percent, memory_used_percent, disk_used_percent | Текущее использование. | |
sessions, session_setup_rate | Активные сессии, новые сессии в секунду. | |
log_disk_ok | 0, когда диск журналов требует форматирования. | |
interface_link_up | interface, alias | Физическая связь. |
interface_enabled | interface, alias | Административное состояние; каждый интерфейс считается включённым, если профиль не может прочитать конфигурацию. |
interface_down | interface, alias | 1, когда интерфейс включён, имеет адрес и не имеет связи. Свободные порты без адреса не учитываются. |
interface_speed_mbps | interface, alias | Пока связь есть. |
interface_bytes_in_total, interface_bytes_out_total, interface_errors_in_total, interface_errors_out_total | interface, alias | Счётчики. |
interfaces_down | Количество. | |
ha_members | Участники в кластере; 0 для отдельного FortiGate. | |
ha_in_sync | При двух и более участниках: 1, когда у всех участников одинаковая контрольная сумма конфигурации. | |
ha_member_cpu_usage_percent, ha_member_memory_used_percent | member | По участнику. |
ipsec_tunnel_up | tunnel | 1, когда поднята хотя бы одна фаза 2 туннеля. Dial-up-туннели (удалённый доступ) не учитываются. |
ipsec_phase2_up | tunnel, phase2 | По селектору фазы 2. |
ipsec_tunnel_bytes_in_total, ipsec_tunnel_bytes_out_total | tunnel | Счётчики. |
ipsec_tunnel_info | tunnel, remote_gateway | Значение 1. |
ipsec_tunnels, ipsec_tunnels_down | Количество. | |
license_status_info | license, status | Значение 1 для каждой лицензии, которой владеет FortiGate (antivirus, ips, web_filtering, forticare_hardware…); записи no_license не учитываются. |
license_expired | license | 1, когда статус expired. |
license_expiry_seconds | license | До истечения; отрицательное после истечения. |
firmware_update_available | 1, когда FortiGuard предлагает более новый патч-релиз работающей ветки (7.4.4 → 7.4.5). Новая ветка (7.6) — это проект, а не тревога. | |
firmware_latest_info | version | Значение 1: этот патч-релиз. |
Применяемые встроенные правила:
- FortiGate IPsec tunnel down: ни одной поднятой фазы 2 в течение пяти минут (Warning).
- FortiGate interface without link: в течение пяти минут (Advisory).
- FortiGate HA out of sync: в течение пятнадцати минут (Advisory).
- FortiGate HA member lost: участников меньше, чем в любой момент за последние 24 часа (Warning). Ожидаемое число нигде не публикуется, поэтому участник, удалённый навсегда, перестаёт вызывать тревогу на следующий день.
- FortiGate memory near conserve mode: выше 85 % в течение десяти минут (Advisory). По умолчанию при 88 % FortiOS входит в conserve mode и перестаёт проверять новые сессии.
- FortiGate CPU high: выше 90 % в течение пятнадцати минут (Advisory).
- FortiGate licence expiring: осталось менее 30 дней или лицензия истекла (Advisory, напоминание ежедневно).
- FortiGate firmware update: предложен патч-релиз (Info, напоминание еженедельно).
Страница монитора
Заголовок раздела «Страница монитора»Панель Firewall одним предложением сообщает, что не так, показывает CPU, память, сессии и состояние HA, затем перечисляет IPsec-туннели (сначала упавшие), интерфейсы без связи, лицензии, истекающие в течение 60 дней или истёкшие, и доступный патч-релиз.
Создайте пользователя REST API только для чтения для DumbMonit
Заголовок раздела «Создайте пользователя REST API только для чтения для DumbMonit»-
В CLI FortiGate создайте профиль доступа, который может только читать состояние системы, сети и VPN и ничего больше.
config system accprofileedit "dumbmonit-ro"set sysgrp readset netgrp readset vpngrp readset fwgrp noneset loggrp noneset utmgrp noneset wanoptgrp noneset wifi nonenextend -
Создайте пользователя REST API dumbmonit с этим профилем, доверяя только адресу сервера DumbMonit (замените 192.0.2.10), затем сгенерируйте его токен: он выводится один раз.
config system api-useredit "dumbmonit"set accprofile "dumbmonit-ro"set vdom "root"config trusthostedit 1set ipv4-trusthost 192.0.2.10 255.255.255.255nextendnextendexecute api-user generate-key dumbmonit -
В DumbMonit введите адрес FortiGate, например “fw.lan” (добавьте порт, если интерфейс администрирования не слушает 443), и вставьте токен как API token. FortiGate поставляется с самоподписанным сертификатом: отметьте «Принимать непроверяемый сертификат», если вы не установили собственный.
Учётные данные
Заголовок раздела «Учётные данные»| Учётные данные | Поля |
|---|---|
| API-токен | Токен, выведенный командой execute api-user generate-key dumbmonit, передаётся как Authorization: Bearer. |
Адрес: имя хоста или IP FortiGate, host:port или URL. Параметры:
- Port (443): HTTPS-порт интерфейса администрирования (
set admin-sportвconfig system global). - VDOM: виртуальный домен для чтения; пусто — тот, которому принадлежит пользователь REST API.
- Принимать непроверяемый сертификат: собственный сертификат FortiGate самоподписанный.
- Тайм-аут на запрос (15 с).
Устранение неполадок
Заголовок раздела «Устранение неполадок»«FortiGate refused the API token (401)»: токен неверен или был
перегенерирован. Сгенерируйте новый командой execute api-user generate-key dumbmonit.
«FortiGate refused … (403)»: адрес DumbMonit отсутствует среди доверенных хостов пользователя, либо его профиль не может читать эту страницу. Необязательная страница, отклонённая таким образом, просто не учитывается.
Нет данных по IPsec, лицензиям или прошивке: профиль не может их прочитать, либо у FortiGate нет туннелей; остальное по-прежнему читается.