5.02021-11-21T21:48:30ZTemplatesMikrotik - BGP LLDMikrotik - BGP LLD## Overview
The Zabbix Mikrotik BGP template for 4.0, which uses LLD, JSON, SSH for connection to Mikrotik router wihout externel scripts.
Inspired by: [https://share.zabbix.com/network\_devices/mikrotik/mikrotik-bgp-lld#login-modal](network_devices/mikrotik/mikrotik-bgp-lld#login-modal)
The diferenses is this template uses one ssh connection for getting all parametrs through JSON.
This template requires changing macroses:
{$MIKROTIK\_SSH\_PASS}
{$MIKROTIK\_SSH\_PORT}
{$MIKROTIK\_SSH\_USER}
## Author
AlKosmos
TemplatesBGPBGP JSON- BGP - Peer JSONSSHssh.run[BGP - Peer JSON,,{$MIKROTIK_SSH_PORT},]{$UPDATEINT}{$HISTORY}0TEXT:global list [/routing bgp peer find]; :global count 0; :global total [:len $list]; :put "{"; :foreach i in=$list do={; :set count ($count + 1); :local name [/routing bgp peer get value-name=name number=$i]; :local prefix [/routing bgp peer get value-name=prefix number=$i]; :local state [/routing bgp peer get value-name=state number=$i]; :local remoteas [/routing bgp peer get value-name=remote-as number=$i]; :local disabled [/routing bgp peer get value-name=disabled number=$i]; :if ( disabled != true) do={ :if ( $count < $total) do={; :put "\"$name\":{\"REMOTEAS\":\"$remoteas\",\"DISABLED\":\"$disabled\",\"PREFIX\":\"$prefix\",\"STATE\":\"$state\"},"; } else={; :put "\"$name\":{\"REMOTEAS\":\"$remoteas\",\"DISABLED\":\"$disabled\",\"PREFIX\":\"$prefix\",\"STATE\":\"$state\"}"; }; }; }; :put "}";{$MIKROTIK_SSH_USER}{$MIKROTIK_SSH_PASS}BGP JSON
BGP - PeersSSHssh.run[,,{$MIKROTIK_SSH_PORT},]1h:global list [/routing bgp peer find]; :global count 0; :global total [:len $list]; :put "{\"data\":["; :foreach i in=$list do={; :set count ($count + 1); :local name [/routing bgp peer get value-name=name number=$i]; :local remoteas [/routing bgp peer get value-name=remote-as number=$i]; :local disabled [/routing bgp peer get value-name=disabled number=$i]; :if ( $count < $total) do={; :put "{\"{#PEERNAME}\":\"$name\",\"{#REMOTEAS}\":\"$remoteas\",\"{#DISABLED}\":\"$disabled\"},"; } else={; :put "{\"{#PEERNAME}\":\"$name\",\"{#REMOTEAS}\":\"$remoteas\",\"{#DISABLED}\":\"$disabled\"}"; }; }; :put "]}";{$MIKROTIK_SSH_USER}{$MIKROTIK_SSH_PASS}{#DISABLED}falseA{#PEERNAME} ({#REMOTEAS}) - PrefixDEPENDENTssh.run[{#PEERNAME}-prefix,,{$MIKROTIK_SSH_PORT},]0{$HISTORY}{$TRENDS}BGPJSONPATH$["{#PEERNAME}"].PREFIXssh.run[BGP - Peer JSON,,{$MIKROTIK_SSH_PORT},]{#PEERNAME} ({#REMOTEAS}) - StatusDEPENDENTssh.run[{#PEERNAME}-status,,{$MIKROTIK_SSH_PORT},]0{$HISTORY}0TEXTBGPJSONPATH$["{#PEERNAME}"].STATEssh.run[BGP - Peer JSON,,{$MIKROTIK_SSH_PORT},]{str(established)}=0Peer {#PEERNAME} not establishedDISASTER{$MIKROTIK_SSH_PASS}1111{$MIKROTIK_SSH_PORT}22{$MIKROTIK_SSH_USER}mikmon