Zabbix - ማክሮ ድንበሮችን ማስፋፋት

ለደንበኛ መፍትሄ በምሰጥበት ጊዜ በሚያምር ሁኔታ እና በመደበኛ የ Zabbix ተግባር መፍታት የምፈልጋቸው 2 ተግባራት ተፈጠሩ።

ተግባር 1. በሚክሮቲክ ራውተሮች ላይ የአሁኑን የጽኑ ትዕዛዝ ስሪት መከታተል።

ተግባሩ በቀላሉ ይፈታል - ወኪልን ወደ HTTP አብነት በማከል። ተወካዩ የአሁኑን ስሪት ከሚክሮቲክ ድረ-ገጽ ይቀበላል እና ቀስቅሴው የአሁኑን ስሪት ከአሁኑ ጋር በማነፃፀር እና አለመግባባት በሚፈጠርበት ጊዜ ማስጠንቀቂያ ይሰጣል።

10 ራውተሮች ሲኖሩዎት, እንዲህ ዓይነቱ አልጎሪዝም ወሳኝ አይደለም, ነገር ግን በ 3000 ራውተሮች ምን ማድረግ አለበት? 3000 ጥያቄዎችን ወደ አገልጋዩ ይላኩ? በእርግጥ እንዲህ ዓይነቱ ዕቅድ ይሠራል ፣ ግን የ 3000 ጥያቄዎች ሀሳብ ለእኔ አይስማማኝም ፣ ሌላ መፍትሄ መፈለግ ፈለግሁ። በተጨማሪም ፣ በእንደዚህ ዓይነት ስልተ-ቀመር ውስጥ አሁንም እንቅፋት ነበር-ሌላው ወገን ለዶኤስ ጥቃት ከአንድ አይፒ እንደዚህ ያሉ ጥያቄዎችን ሊቆጥር ይችላል ፣ በቀላሉ ሊከለክሉት ይችላሉ።

ተግባር 2. በተለያዩ የኤችቲቲፒ ወኪሎች ውስጥ የፈቀዳ ክፍለ ጊዜን መጠቀም።

አንድ ወኪል መረጃን ከ"የተዘጉ" ገጾች በኤችቲቲፒ መቀበል ሲፈልግ የፈቀዳ ኩኪ ያስፈልጋል። ይህንን ለማድረግ ብዙውን ጊዜ "መግቢያ / ይለፍ ቃል" ጥንድ ያለው እና የክፍለ ጊዜ መታወቂያውን በኩኪው ውስጥ የሚያዘጋጅ መደበኛ የፍቃድ ቅጽ አለ።

ነገር ግን ችግር አለ፣ ይህንን እሴት በራስጌው ውስጥ ለመተካት የሌላውን ንጥል ነገር ከአንድ የኤችቲቲፒ ወኪል ንጥል ማግኘት አይቻልም።

እንዲሁም "የድር ስክሪፕት" አለ, ሌላ ገደብ አለው, ለመተንተን እና ለተጨማሪ ቁጠባ ይዘትን እንድታገኝ አይፈቅድም. በገጾቹ ላይ አስፈላጊዎቹ ተለዋዋጮች መኖራቸውን ብቻ ማረጋገጥ ወይም ቀደም ሲል የተቀበሉትን ተለዋዋጮች በድር ስክሪፕት ደረጃዎች መካከል ማለፍ ይችላሉ።

ስለእነዚህ ተግባራት ትንሽ ካሰብኩ በኋላ, በማንኛውም የክትትል ስርዓት ውስጥ በትክክል የሚታዩ ማክሮዎችን ለመጠቀም ወሰንኩ: በአብነት, አስተናጋጆች, ቀስቅሴዎች ወይም እቃዎች. እና ማክሮዎችን በድር በይነገጽ ኤፒአይ በኩል ማዘመን ይችላሉ።

Zabbix ጥሩ እና ዝርዝር የኤፒአይ ሰነድ አለው። በኤፒአይ በኩል ለመረጃ ልውውጥ፣ የJson ውሂብ ቅርጸት ስራ ላይ ይውላል። ዝርዝሮች በ ውስጥ ይገኛሉ ኦፊሴላዊ ሰነዶች.

የምንፈልገውን መረጃ ለማግኘት እና በማክሮ ውስጥ ለመቅዳት የእርምጃዎች ቅደም ተከተል ከዚህ በታች ባለው ሥዕል ውስጥ ይታያል ።

Zabbix - ማክሮ ድንበሮችን ማስፋፋት

1 ደረጃ

የመጀመሪያው እርምጃ አንድ እርምጃ ወይም በርካታ ድርጊቶችን ሊያካትት ይችላል። ሁሉም ዋና አመክንዮዎች በመጀመሪያ ደረጃዎች ውስጥ ተቀምጠዋል, እና የመጨረሻዎቹ 3 ደረጃዎች ዋናዎቹ ናቸው.

በእኔ ምሳሌ፣ የመጀመሪያው እርምጃ ለመጀመሪያው ተግባር በፒቢኤክስ ላይ የፈቀዳ ኩኪዎችን ማግኘት ነበር። ለሁለተኛው ተግባር ፣ የአሁኑን የ Mikrotik firmware ስሪት ቁጥር አገኘሁ።

የወቅቱ የMikrotik firmware ስሪቶች URL

የቅርብ ጊዜው የጽኑ ትዕዛዝ ስሪት ሲደርሰው እነዚህ አድራሻዎች በሚክሮቲክ መሳሪያ ራሱ ይደርሳሉ።

የመጀመሪያው እርምጃ ለእያንዳንዱ ጉዳይ ሙሉ ለሙሉ ግለሰባዊ እና የሥራው ሎጂክ የተለየ ሊሆን ይችላል. ሁሉም በእርስዎ ተግባር ላይ የተመሰረተ ነው.

ከድር ስክሪፕት ጋር ሲሰሩ የትኛውን የምላሽ ዘዴ እንደሚፈልጉ ይከታተሉ። ርዕሶች የኤችቲቲፒ ምላሽ ወይም ራስን тело ያለ ራስጌ ምላሽ?
የፈቀዳ ኩኪዎች አስፈላጊ ከሆኑ የምላሽ ስልቱን ያዘጋጁ ርዕሶች ልክ እንደ ኮከቢት ሁኔታ.

እንደ ሚክሮቲክ የአገልጋይ ምላሽ ሁኔታ ውሂብ ከፈለጉ ፣ ያስቀምጡ አካል ያለ ራስጌዎች ምላሽ.

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 ን ይተገብራል;

  • ዘዴ - የሚጠራው ዘዴ;
  • params - በስልቱ የሚተላለፉ መለኪያዎች;
  • መታወቂያ የዘፈቀደ ጥያቄ መለያ ነው;
  • ማረጋገጫ - የተጠቃሚ ማረጋገጫ ቁልፍ; እስካሁን ስለሌለን ወደ ባዶ እናስቀምጠው።

ከኤፒአይ ጋር ለመስራት የተገደቡ መብቶች ያለው የተለየ መለያ ፈጠርኩ። በመጀመሪያ፣ ወደማይፈልጉበት ቦታ መዳረሻ መስጠት አያስፈልግዎትም። እና ሁለተኛ፣ ከስሪት 5.0 በፊት፣ በማክሮው በኩል የተቀመጠው የይለፍ ቃል ሊነበብ ይችላል። በዚህ መሠረት የ Zabbix አስተዳዳሪ ይለፍ ቃል ከተጠቀሙ የአስተዳዳሪ መለያው ለመስረቅ ቀላል ነው።

ይህ በተለይ ከኤፒአይ ጋር በሶስተኛ ወገን ስክሪፕቶች ሲሰራ እና በጎን በኩል ምስክርነቶችን ሲያከማች እውነት ይሆናል።

ከስሪት 5.0 ጀምሮ በማክሮ ውስጥ የተቀመጠውን የይለፍ ቃል ለመደበቅ አንድ አማራጭ አለ.

Zabbix - ማክሮ ድንበሮችን ማስፋፋት

በኤፒአይ በኩል ውሂብን ለማዘመን የተለየ መለያ ሲፈጥሩ የሚያስፈልገዎት ውሂብ በድር በይነገጽ የሚገኝ መሆኑን እና እሱን ማዘመን ይቻል እንደሆነ ማረጋገጥዎን ያረጋግጡ። አላጣራሁም፣ እና ከዚያ ለምንድነው የምፈልገው ማክሮ በኤፒአይ ውስጥ የማይታይበትን ምክንያት ለረጅም ጊዜ ሊገባኝ አልቻለም።

Zabbix - ማክሮ ድንበሮችን ማስፋፋት

በኤፒአይ ውስጥ ፍቃድ ከተቀበልን በኋላ የማክሮዎች ዝርዝር ለማግኘት እንቀጥላለን።

3 ደረጃ

ኤፒአይ የአስተናጋጅ ማክሮን በስም እንዲያዘምኑ አይፈቅድልዎትም፣ መጀመሪያ የማክሮ መታወቂያውን ማግኘት አለብዎት። ከዚህም በላይ ለአንድ የተወሰነ አስተናጋጅ የማክሮዎች ዝርዝር ለማግኘት የዚህን አስተናጋጅ መታወቂያ ማወቅ አለብዎት, እና ይህ ተጨማሪ ጥያቄ ነው. ነባሪ ማክሮን ተጠቀም {HOST ID} በጥያቄው ውስጥ አይፈቀድም. እገዳውን እንደሚከተለው ለማለፍ ወሰንኩ፡-

Zabbix - ማክሮ ድንበሮችን ማስፋፋት

በዚህ አስተናጋጅ መታወቂያ የአካባቢ ማክሮ ፈጠርኩ። የአስተናጋጁን መታወቂያ ማወቅ ከድር በይነገጽ በጣም ቀላል ነው።

በተሰጠው አስተናጋጅ ላይ የሁሉም ማክሮዎች ዝርዝር ያለው ምላሽ በስርዓተ-ጥለት ሊጣራ ይችላል፡-

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

Zabbix - ማክሮ ድንበሮችን ማስፋፋት

ስለዚህ, የምንፈልገውን የማክሮ መታወቂያ, የት እናገኛለን 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
}

ተለዋዋጭ {ሲድ} በሁለተኛው ደረጃ የተገኘ እና ያለማቋረጥ ጥቅም ላይ ይውላል, ከኤፒአይ በይነገጽ ጋር መስራት ያስፈልግዎታል.

የመጨረሻ 4 ደረጃ - ማክሮውን ማዘመን

አሁን መዘመን ያለበትን የማክሮ መታወቂያ፣ የፈቃድ ኩኪውን ወይም የራውተሩን firmware ስሪት እናውቃለን። ማክሮውን እራሱ ማዘመን ይችላሉ።

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 firmware ስሪት
{hostmacroid} - እሴቱ የተገኘው በሶስተኛው ደረጃ - እኛ እያዘመንን ያለነው የማክሮ መታወቂያ።

ግኝቶች

ችግሩን በመደበኛ ተግባራት የመፍታት አቀራረብ በጣም የተወሳሰበ እና ረዘም ያለ ነው. በተለይም ፕሮግራሚንግ ካወቁ እና በስክሪፕቱ ውስጥ አስፈላጊውን አመክንዮ በፍጥነት ማከል ከቻሉ።

የዚህ አቀራረብ ግልጽ ጠቀሜታ በተለያዩ አገልጋዮች መካከል ያለው የመፍትሄው "ተንቀሳቃሽነት" ነው.

ለእኔ በግሌ፣ የኤችቲቲፒ ወኪሉ የሌላ ንጥል ነገር መረጃን ማግኘት እና በጥያቄው አካል ወይም ራስጌዎች መተካት አለመቻሉ እንግዳ ነገር ነው። ZBXNEXT-5993].

የተጠናቀቀው አብነት ይችላል። በ GitHub ላይ አውርድ.

ምንጭ: hab.com

አስተያየት ያክሉ