рд╣рдо Zabbix рдореЗрдВ рдПрдХ рдЙрддреНрдкрд╛рджрди рдХреИрд▓реЗрдВрдбрд░ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд╛рд╖реНрдЯреНрд░реАрдп рдФрд░ рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдп рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдПрдХ рдЙрджреНрдпрдо рдХреА рдХрд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛, рдЕрдХреНрд╕рд░ рдХрд╛рд░реНрдпрд╢реАрд▓ рдФрд░ рдЧреИрд░-рдХрд╛рд░реНрдп рджрд┐рд╡рд╕реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдпрд╛ рдмрджрд▓рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЙрддреНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХрдИ рд╕рдВрдЧрдардиреЛрдВ рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рдЙрддреНрдкрд╛рджрди рдХреИрд▓реЗрдВрдбрд░ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрд╛рд░реНрдп рддрдХрдиреАрдХреА рдФрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВред рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдЬреЛ рд╕реНрд╡рд╛рдпрддреНрдд рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЕрдХреНрд╕рд░ рдЙрджреНрдпрдо рдХреА рд╕рд╛рдорд╛рдиреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕реВрдЪрдирд╛ рдкреНрд░рд╡рд╛рд╣ рдФрд░ рдбреЗрдЯрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд┐рдпрдд рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рджреИрдирд┐рдХ рдХрд╛рд░реНрдп рдЕрдиреБрд╕реВрдЪреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рдордп, рдирд┐рдЧрд░рд╛рдиреА рддрд░реНрдХ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИредрдЙрддреНрдкрд╛рджрди рдХреИрд▓реЗрдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╝реИрдмрд┐рдХреНрд╕ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ? рдЖрдЗрдП рдХреБрдЫ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред


рдкрд░рд┐рдЪрдп


рдЬрд╝реИрдмрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд╛ рддрд░реНрдХ рдЙрди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВред рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд╛ рддрд░реНрдХ рдпрд╛ рдЕрдиреБрд╕реВрдЪреА рдмрджрд▓рдирд╛ рдПрдХ рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓рд╛ рдХрд╛рд░реНрдп рд╣реИ, рдЬреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рдХрд╛рд░реНрдпрджрд┐рд╡рд╕ рдХреЛ рдмрджрд▓рддреЗ рд╣реБрдП, рдЬрдм рдХрд╛рд░реНрдп рджрд┐рд╡рд╕ рдХреЗ рдмрдЬрд╛рдп рдЫреБрдЯреНрдЯреА рдШреЛрд╖рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЗ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╢рд╛рд╕рдХреЛрдВ рдХреЛ рдирд┐рдЧрд░рд╛рдиреА рд╕рд░реНрдХрд┐рдЯ рдХреЛ "рд░рдЦрд░рдЦрд╛рд╡" рдХреЗ рд▓рд┐рдП рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИред рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рджрд┐рд╡рд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдХрд╛рдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдирд┐рдЧрд░рд╛рдиреА рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдЬрд╝реИрдмрд┐рдХреНрд╕ рд╕реЗ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ рдЯреНрд░рд┐рдЧрд░реНрд╕ рдХреЗ рд▓рдЪреАрд▓реЗ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдЧреНрд▓реЛрдмрд▓ рдореИрдХреНрд░реЛрдЬрд╝
https://habr.com/en/company/zabbix/blog/344492/ рдХреЗ рд╕рд╛рде рд╕реНрдХреИрди рдЪрдХреНрд░ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ ред
рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдзрд╛рди
рдПрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рдореЗрдВ рдПрдХ рдЕрдиреБрд╕реВрдЪреА рдкрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА рдЪрд╛рд▓реВ / рдмрдВрдж рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ ред


рдЬрд╝реИрдмрд┐рдХреНрд╕ рд╕рд░реНрд╡рд░ рдПрдХ рд╕реНрд╡рд╛рдпрддреНрдд рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рддрд░реНрдХ рдХреЗ рдврд╛рдВрдЪреЗ рдХреЗ рднреАрддрд░ рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдмрд╛рд╣рд░реА рдкреНрд░рднрд╛рд╡реЛрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред


рдЖрдЗрдП рдЖрдВрддрд░рд┐рдХ рдЬрд╝реИрдмрд┐рдХреНрд╕ рддрдВрддреНрд░реЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЙрддреНрдкрд╛рджрди рдХреИрд▓реЗрдВрдбрд░ рдХреЗ рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред


, . , .
github.com, .



Zabbix :


  • Zabbix
  • Zabbix
  • ()

Zabbix


Zabbix :


  • ,
  • ""


  • , /
  • ,
  • HTTP/HTTPS


:




  • Zabbix-agent. Zabbix-agent
  • , ,

тДЦ1


.
{$DATEURL} . "HTTP agent" "holiday.date.by.http".


( 1). 1. .



.
"Preprocessing" "$.date".



, "holiday.date.by.http" .


"Calculated" "today.is.a.holiday"



:
last(holiday.date.by.http)=date(system.localtime)
"Numeric(Unsigned)"


, 0 1.


, 0 1 . , "" , . .


, :


  • " "
  • " "

" "


" " . .


:


{Zabbix server:system.users.num.last()}>1


{Zabbix server:system.users.num.last()}>1 and {Zabbix server:today.is.a.holiday.last()}=0

.
.


" "


"/".


"today.is.a.holiday" .



.



.


. "{Zabbix server:system.users.num.last()}>1", 1.


"{Zabbix server:proc.num.last()}>20"


""





(, TG, SMS).


. . .


тДЦ2


, Zabbix . , . .
?


1


- , .


2


, .


, .
, . {$HOLIDAY_DATE}. , , Zabbix-agent, {$CURRENT_DATE} .


InfluxDB. , 1 5 .


InfluxDB


, . fuzzytime . .



                <item>
                    <name>Today is a holiday</name>
                    <type>CALCULATED</type>
                    <key>influxdb.holiday</key>
                    <history>1h</history>
                    <trends>0</trends>
                    <params>date(system.localtime)={$HOLIDAY_DATE}</params>
                    <applications>
                        <application>
                            <name>InfluxDB DataCheck</name>
                        </application>
                    </applications>
                    <triggers>
                        <trigger>
                            <expression>{last()}</expression>
                            <name>InfluxDB Holiday Activated</name>
                            <opdata>If Fired - all dependent triggers are disabled</opdata>
                            <priority>INFO</priority>
                            <description>       </description>
                        </trigger>
                    </triggers>
                </item>

.
, .


     <params>{$CURRENT_DATE}={$HOLIDAY_DATE}</params>

, .


"" , " , Zabbix ?"


, , . Zabbix JSON RPC, , . Zabbix , , . , Zabbix , .




Preprocessing .



Preprocessing Script
//Zabbix.Log(2, 'Date Update request value='+value);
var authtoken = '';
var globalmacroid = -1;

var req = new CurlHttpRequest();
req.AddHeader('Content-Type: application/json');
resp = req.Post("{$DATEURL}", '{}');
var holidaydate = JSON.parse(resp).date;

Zabbix.Log(2, 'Found new holiday date='+holidaydate);

resp = req.Post("{$JSONRPC}", '{"jsonrpc": "2.0","method": "user.login","params": {"user": "Calendar","password": "SomePassword"},"id": 1}');

//   

if (req.Status() == 200) {
    jv = JSON.parse(resp);
    if (jv.result)
       authtoken= jv.result;
    else
       return 0;
}
else
    return 0;

//    

var reqmacros = 
{
    "jsonrpc": "2.0",
    "method": "usermacro.get",
    "params": {
        "output": "extend",
        "globalmacro": true
    },
    "auth": authtoken,
    "id": 1
}

resp = req.Post("{$JSONRPC}", JSON.stringify(reqmacros));
if (req.Status() == 200) {
    var jv = JSON.parse(resp);
    for(item in jv.result) {
        if (jv.result[item].macro == '{\$HOLIDAY_DATE}')
            {
                globalmacroid = jv.result[item].globalmacroid
                Zabbix.Log(2, 'Old Date value: '+jv.result[item].value)
            }
        }
    if (globalmacroid == -1)
        return 0;
}
else
{
    return 0;
}

//      

var changemacros = 
{   "jsonrpc": "2.0",
    "method": "usermacro.updateglobal",
    "params": {
        "globalmacroid": globalmacroid,
        "value": holidaydate
    },
    "auth": authtoken,
    "id": 1
}

resp = req.Post("{$JSONRPC}", JSON.stringify(changemacros));

if (req.Status() == 200) {
   jv = JSON.parse(resp);
   if (jv.result.globalmacroids.indexOf(globalmacroid) != -1)
        return 1
}
return 0;

"{$HOLIDAY_DATE}" "{$CURRENT_DATE}". , . тАФ . .


, , / , -, / .


P.S.: , WEB , "HTTP agent" .
github.com


UPD: .


" ". 4.X , . , .


┬й Aborche 2020
Aborche


All Articles