Zabbix β€” Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ€ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

ДСлая Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΎ 2 Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ красиво ΠΈ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ Zabbix.

Π—Π°Π΄Π°Ρ‡Π° 1. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ вСрсии ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π½Π° Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°Ρ… Mikrotik.

Π—Π°Π΄Π°Ρ‡Π° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π»Π΅Π³ΠΊΠΎ β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π² шаблон HTTP Π°Π³Π΅Π½Ρ‚Π°. АгСнт ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ с сайта Mikrotik, Π° Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ сравниваСт Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈ Π² случаС расхоТдСния Π²Ρ‹Π΄Π°Π΅Ρ‚ Π°Π»Π΅Ρ€Ρ‚.

Когда Ρƒ вас 10 Ρ€ΠΎΡƒΡ‚Π΅Ρ€ΠΎΠ², Ρ‚Π°ΠΊΠΎΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π΅Π½, Π° Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с 3000 Ρ€ΠΎΡƒΡ‚Π΅Ρ€ΠΎΠ²? Π‘Π»Π°Ρ‚ΡŒ 3000 запросов Π½Π° сСрвСр? Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, такая схСма Π±ΡƒΠ΄Π΅Ρ‚, Π½ΠΎ сама идСя 3000 запросов мСня Π½Π΅ устраивала, Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, нСдостаток Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ΅ всС-Ρ‚Π°ΠΊΠΈ Π±Ρ‹Π»: другая сторона ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ количСство запросов с ΠΎΠ΄Π½ΠΎΠ³ΠΎ IP Π·Π° DoS Π°Ρ‚Π°ΠΊΡƒ, ΠΌΠΎΠ³ΡƒΡ‚ просто Π·Π°Π±Π°Π½ΠΈΡ‚ΡŒ.

Π—Π°Π΄Π°Ρ‡Π° 2. ИспользованиС сСссии Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… HTTP Π°Π³Π΅Π½Ρ‚Π°Ρ….

Когда Ρ‡Π΅Ρ€Π΅Π· HTTP Π°Π³Π΅Π½Ρ‚ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с Β«Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ…Β» страниц, Π½ΡƒΠΆΠ½Π° ΠΊΡƒΠΊΠ° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ. Для этого ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ сущСствуСт стандартная Ρ„ΠΎΡ€ΠΌΠ° Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠ°Ρ€ΠΎΠΉ Β«Π»ΠΎΠ³ΠΈΠ½/ΠΏΠ°Ρ€ΠΎΠ»ΡŒΒ» ΠΈ установкой ID сСссии Π² ΠΊΡƒΠΊΡƒ.

Но Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, нСльзя ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°ΠΉΡ‚Π΅ΠΌΠ° HTTP Π°Π³Π΅Π½Ρ‚Π° ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π°ΠΉΡ‚Π΅ΠΌΠ° для подстановки этого Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Header.

БущСствуСт Π΅Ρ‰Π΅ Β«Π’Π΅Π± сцСнарий», Ρƒ Π½Π΅Π³ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, ΠΎΠ½ Π½Π΅ Π΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ для Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ дальнСйшСго сохранСния. МоТно Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π½Π° страницах ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ€Π°Π½Π΅Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ шагами Π²Π΅Π± сцСнария.

НСмного поразмыслив Π½Π°Π΄ этими Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ, Ρ€Π΅ΡˆΠΈΠ» ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ макросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Π²ΠΈΠ΄Π½Ρ‹ Π² любой части систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°: Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…, хостах, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°Ρ… ΠΈΠ»ΠΈ Π°ΠΉΡ‚Π΅ΠΌΠ°Ρ…. А ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ макросы ΠΌΠΎΠΆΠ½ΠΎ Ρ‡Π΅Ρ€Π΅Π· API Π²Π΅Π± интСрфСйса.

Π£ Zabbix Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠ°Ρ ΠΈ подробная докумСнтация ΠΏΠΎ API. Для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΏΠΎ api ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… Json. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий получСния Π½ΡƒΠΆΠ½Ρ‹Ρ… Π½Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ запись ΠΈΡ… Π² макрос прСдставлСна Π½Π° схСмС Π½ΠΈΠΆΠ΅.

Zabbix — Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ€ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

Π¨Π°Π³ 1

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ дСйствия ΠΈΠ»ΠΈ мноТСства дСйствий. Π’ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ шаги закладываСтся вся основная Π»ΠΎΠ³ΠΈΠΊΠ°, Π° Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ послСдниС 3 шага.

Π’ ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΊΡƒΠΊΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° АВБ для ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Для Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ я ΠΏΠΎΠ»ΡƒΡ‡Π°Π» Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Mikrotik.

URL Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… вСрсий ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ Mikrotik

К Π΄Π°Π½Π½Ρ‹ΠΌ адрСсам обращаСтся само ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Mikrotik, ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ послСднСй доступной вСрсии ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ шаг ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π΅Π½ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ случая ΠΈ Π»ΠΎΠ³ΠΈΠΊΠ° Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΎΠΉ. ВсС зависит ΠΎΡ‚ вашСй Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π²Π΅Π± сцСнариями отслСТивайтС ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ HTTP ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΈΠ»ΠΈ само Ρ‚Π΅Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π±Π΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ²?
Если Π½ΡƒΠΆΠ½Ρ‹ ΠΊΡƒΠΊΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ, Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΡ‚Π²Π΅Ρ‚Π° ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΊΠ°ΠΊ Π² случаС с Asterisk.

Если Π½ΡƒΠΆΠ½Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠ°ΠΊ Π² случаС с ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠΌ сСрвСра mikrotik, ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π’Π΅Π»ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π° Π±Π΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ².

Π¨Π°Π³ 2

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌΡƒ ΡˆΠ°Π³Ρƒ. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСссии Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ:

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{
    "jsonrpc": "2.0",
    "method": "user.login",
    "params": {
        "user": "Admin"
        "password": "zabbix"
    },
    "id": 1,
    "auth": null
}

jsonrpc β€” вСрсия ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° JSON-RPC, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ;
Zabbix Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ JSON-RPC вСрсии 2.0;

  • method β€” ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ вызываСтся;
  • params β€” ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ;
  • id β€” ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ запроса;
  • auth β€” ΠΊΠ»ΡŽΡ‡ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ; Ρ‚Π° ΠΊΠ°ΠΊ Ρƒ нас Π΅Π³ΠΎ Π΅Ρ‰Π΅ Π½Π΅ имССтся, ΡƒΠΊΠ°ΠΆΠ΅ΠΌ Π΅Π³ΠΎ Ρ€Π°Π²Π½Ρ‹ΠΌ null.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с API я создал ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись, с ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€Π°Π²Π°ΠΌΠΈ. Π’ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π΄Π°Π²Π°Ρ‚ΡŒ доступ Ρ‚ΡƒΠ΄Π°, ΠΊΡƒΠ΄Π° Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. А Π²ΠΎ Π²Ρ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎ вСрсии 5.0, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· макрос ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ. БоотвСтствСнно, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ администратора Zabbix, ΡƒΡ‡Π΅Ρ‚ΠΊΡƒ Π°Π΄ΠΌΠΈΠ½Π° Π»Π΅Π³ΠΊΠΎ ΡƒΠΊΡ€Π°ΡΡ‚ΡŒ.

Π­Ρ‚ΠΎ особСнно Π±ΡƒΠ΄Π΅Ρ‚ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ c API Ρ‡Π΅Ρ€Π΅Π· сторонниС скрипты ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сторонС.

Π‘ вСрсии 5.0 появилась опция ΡΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ сохранСнный Π² макросС.

Zabbix — Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ€ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

Когда создаСтС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΡƒΡ‡Π΅Ρ‚Π½ΡƒΡŽ запись для обновлСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· API, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряйтС, доступны Π»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Π΅Π± интСрфСйс Π½ΡƒΠΆΠ½Ρ‹Π΅ Π²Π°ΠΌ Π΄Π°Π½Π½Ρ‹Π΅, ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡ… ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅. Π― Π½Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ», Π° ΠΏΠΎΡ‚ΠΎΠΌ Π΄ΠΎΠ»Π³ΠΎ Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎ API Π½Π΅ Π²ΠΈΠ΄Π΅Π½ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠ½Π΅ макрос.

Zabbix — Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ€ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ Π² API ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡŽ списка макросов.

Π¨Π°Π³ 3

API интСрфСйс Π½Π΅ позволяСт ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ макрос хоста ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, для этого Π½ΡƒΠΆΠ½ΠΎ сначала ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ID макроса. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список макросов ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ хоста, Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ID этого хоста, Π° это лишний запрос. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ макрос {HOST.ID} Π² запросС нСльзя. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠΈΠ» ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Ρ‚Π°ΠΊ:

Zabbix — Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ€ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

Π― создал Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ макрос с ID этого хоста. Π£Π·Π½Π°Ρ‚ΡŒ ID хоста ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΈΠ· Π²Π΅Π± интСрфСйса.

ΠžΡ‚Π²Π΅Ρ‚ со списком всСх макросов Π΄Π°Π½Π½ΠΎΠ³ΠΎ хоста ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ:

regex:{"hostmacroid":"([0-9]+)"[A-z0-9,":]+"{$MIKROTIK_VERSION}"

Zabbix — Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌ ΠΌΠ°ΠΊΡ€ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ ID Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π½Π°ΠΌ макроса, Π³Π΄Π΅ MIKROTIK_VERSION β€” имя макроса ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ ΠΈΡ‰Π΅ΠΌ. Π’ ΠΌΠΎΠ΅ΠΌ случаС ищСтся макрос MIKROTIK_VERSION, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Π½Π° хост.

Π‘Π°ΠΌ запрос выглядит Ρ‚Π°ΠΊ:

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{
    "jsonrpc":"2.0",
    "method":"usermacro.get",
    "params":{
        "output":"extend",
        "hostids":"{$HOST_ID}"
    },
    "auth":"{sid}",
    "id":1
}

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ {sid} ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ шагС ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ постоянно, Π³Π΄Π΅ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с API интСрфСйсом.

Π€ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ 4 ШАГ β€” ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ макроса

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ ID макроса ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ, ΠΊΡƒΠΊΡƒ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π²Π΅Ρ€ΡΠΈΡŽ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Ρ€ΠΎΡƒΡ‚Π΅Ρ€Π°. МоТно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ сам макрос.

POST http://company.com/zabbix/api_jsonrpc.php HTTP/1.1
Content-Type: application/json-rpc

{
    "jsonrpc":"2.0",
    "method":"usermacro.update",
    "params":{
        "hostmacroid":"{hostmacroid}",
        "value":"{mikrotik_version}"
    },
    "auth":"{sid}",
    "id":1
}

{mikrotik_version} β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС. Π’ ΠΌΠΎΠ΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ β€” вСрсия Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ mikrotik
{hostmacroid} β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ шагС β€” id макроса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обновляСм.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΠΎΠΌ Π² Ρ€Π°Π·Ρ‹ слоТнСС ΠΈ дольшС. ОсобСнно Ссли знаСшь ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ моТСшь быстро Π½Π°ΠΊΠΈΠ΄Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π² скриптС.

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ плюсом Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° являСтся Β«ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΠΎΡΡ‚ΡŒΒ» Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ сСрвСрами.

Π›ΠΈΡ‡Π½ΠΎ для мСня являСтся странным отсутствиС возмоТности ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π² HTTP Π°Π³Π΅Π½Ρ‚Π΅ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π°ΠΉΡ‚Π΅ΠΌΠ° ΠΈ подстановка ΠΈΡ… Π² Ρ‚Π΅Π»ΠΎ запроса ΠΈΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ [ ZBXNEXT-5993].

Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ шаблон ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π° GitHub.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com