Correct. Kerry has our routers setup to run the script every 4 hours. If the
pool usage us above the warning value defined in the script an error is
logged. Remote syslog is enabled and he has rules built into the syslog
server to alert us when the dhcp pool error is detected. 
As a minimum, if you pool usage is above the value you have set it the
script on the line :local criticalthreshold 90 you should get an error in
the log. The script is set to kick an error if the pool is 90% utilized.
Change the 90 to a lower value to test with.

The copy/paste may have messed the script up if that is not working for you.
Let me know and I'll send you the script as an attachment.

Leroy




-----Original Message-----
From: mikrotik-boun...@mail.butchevans.com
[mailto:mikrotik-boun...@mail.butchevans.com] On Behalf Of Ty Featherling
Sent: Wednesday, September 19, 2012 5:53 PM
To: Mikrotik discussions
Subject: Re: [Mikrotik] Managing DHCP Pools

Yeah that didn't do it. It just spits out a warning in the log, right?

-Ty

On Wed, Sep 19, 2012 at 4:39 PM, Josh Luthman
<j...@imaginenetworksllc.com>wrote:

> Pretty sure you'd need 70% or 90% capacity filled for it to spit out an
> error.  Make the warning value something like 1 or 5 and run it to test.
>
> Josh Luthman
> Office: 937-552-2340
> Direct: 937-552-2343
> 1100 Wayne St
> Suite 1337
> Troy, OH 45373
>
>
> On Wed, Sep 19, 2012 at 5:16 PM, Ty Featherling <tyfeatherl...@gmail.com
> >wrote:
>
> > Ok new script added. Dumped the code in the source field. Left all
> > permissions checked and gave it a name. It added it in the list but
> licking
> > "Run Script" does nothing. Nothing in the log nor any indication is
> started
> > anything.
> >
> > -Ty
> >
> > On Wed, Sep 19, 2012 at 4:04 PM, Josh Luthman
> > <j...@imaginenetworksllc.com>wrote:
> >
> > > I thought there was code above the actual script, sorry!
> > >
> > > You should use the GUI to make a new script. There are no proper
breaks
> > in
> > > the email to make it easy in the terminal.
> > >
> > > Josh Luthman
> > > Office: 937-552-2340
> > > Direct: 937-552-2343
> > > 1100 Wayne St
> > > Suite 1337
> > > Troy, OH 45373
> > >
> > >
> > > On Wed, Sep 19, 2012 at 5:00 PM, Ty Featherling <
> tyfeatherl...@gmail.com
> > > >wrote:
> > >
> > > > Pasted it in.. looks like it cleared with no errors. Now what? I
> don't
> > > see
> > > > a new script or any indication of anything new in ip>pool or
> > > > ip>dhcp-server.
> > > >
> > > > -Ty
> > > >
> > > > On Wed, Sep 19, 2012 at 3:37 PM, Josh Luthman
> > > > <j...@imaginenetworksllc.com>wrote:
> > > >
> > > > > Yep.  Put it in a terminal.  Sometimes browsers turn " into some
> > weird
> > > > > character...
> > > > > On Sep 19, 2012 3:56 PM, "Ty Featherling" <tyfeatherl...@gmail.com
> >
> > > > wrote:
> > > > >
> > > > > > Ok, hold my hand here.. Just copy that text and paste it into a
> > > > terminal
> > > > > > windows, yes? Or do I create a script and paste it there? Be
> > gentle,
> > > > it's
> > > > > > my first time.
> > > > > >
> > > > > > -Ty
> > > > > >
> > > > > > On Wed, Sep 19, 2012 at 1:45 PM, Kerry <kpenl...@bigtube.net>
> > wrote:
> > > > > >
> > > > > > > I use this script, schedule it to run however often you'd
like.
> > It
> > > > > throws
> > > > > > > a script error when it's above the thresholds in the script.
> > > > > > > I have system logging set to log script errors to my syslog
box
> > > which
> > > > > > > email-alerts us.
> > > > > > > /system logging
> > > > > > > add action=remote disabled=no prefix=DCHP-Server
> > > topics=script,error
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > # List stats for IP -> Pool
> > > > > > > #
> > > > > > > # criticalthreshold = output pool display in red if pool used
> is
> > > > above
> > > > > > > this %
> > > > > > > # warnthreshold = output pool display in gold if pool used is
> > above
> > > > > this
> > > > > > %
> > > > > > >
> > > > > > > :local criticalthreshold 90
> > > > > > > :local warnthreshold 70
> > > > > > >
> > > > > > > # Internal processing below...
> > > > > > > # ------------------------------**----
> > > > > > > /ip pool {
> > > > > > >    :local poolname
> > > > > > >    :local pooladdresses
> > > > > > >    :local poolused
> > > > > > >    :local poolpercent
> > > > > > >    :local minaddress
> > > > > > >    :local maxaddress
> > > > > > >    :local findindex
> > > > > > >    :local tmpint
> > > > > > >    :local maxindex
> > > > > > >    :local line
> > > > > > >
> > > > > > >    :put ("IP Pool Statistics")
> > > > > > >    :put ("------------------")
> > > > > > >
> > > > > > > # Iterate through IP Pools
> > > > > > >    :foreach p in=[find] do={
> > > > > > >
> > > > > > >       :set poolname [get $p name]
> > > > > > >       :set pooladdresses 0
> > > > > > >       :set poolused 0
> > > > > > >       :set line ""
> > > > > > >
> > > > > > >       :set line ("     " . $poolname)
> > > > > > >
> > > > > > > #   Iterate through current pool's IP ranges
> > > > > > >       :foreach r in=[:toarray [get $p range]] do={
> > > > > > >
> > > > > > > #      Get min and max addresses
> > > > > > >          :set findindex [:find [:tostr $r] "-"]
> > > > > > >          :if ([:len $findindex] > 0) do={
> > > > > > >             :set minaddress [:pick [:tostr $r] 0 $findindex]
> > > > > > >             :set maxaddress [:pick [:tostr $r] ($findindex +
1)
> > > [:len
> > > > > > > [:tostr $r]]]
> > > > > > >          } else={
> > > > > > >             :set minaddress [:tostr $r]
> > > > > > >             :set maxaddress [:tostr $r]
> > > > > > >          }
> > > > > > >
> > > > > > > #       Convert to array of octets (replace '.' with ',')
> > > > > > >          :for x from=0 to=([:len [:tostr $minaddress]] - 1)
> do={
> > > > > > >             :if ([:pick [:tostr $minaddress] $x ($x + 1)] =
> ".")
> > > do={
> > > > > > >                :set minaddress ([:pick [:tostr $minaddress] 0
> > $x] .
> > > > ","
> > > > > > . \
> > > > > > >                                        [:pick [:tostr
> > $minaddress]
> > > > ($x
> > > > > +
> > > > > > > 1) [:len [:tostr $minaddress]]]) }
> > > > > > >          }
> > > > > > >          :for x from=0 to=([:len [:tostr $maxaddress]] - 1)
> do={
> > > > > > >             :if ([:pick [:tostr $maxaddress] $x ($x + 1)] =
> ".")
> > > do={
> > > > > > >                :set maxaddress ([:pick [:tostr $maxaddress] 0
> > $x] .
> > > > ","
> > > > > > . \
> > > > > > >                                        [:pick [:tostr
> > $maxaddress]
> > > > ($x
> > > > > +
> > > > > > > 1) [:len [:tostr $maxaddress]]]) }
> > > > > > >          }
> > > > > > >
> > > > > > > #      Calculate available addresses for current range
> > > > > > >          :if ([:len [:toarray $minaddress]] = [:len [:toarray
> > > > > > > $maxaddress]]) do={
> > > > > > >             :set maxindex ([:len [:toarray $minaddress]] - 1)
> > > > > > >             :for x from=$maxindex to=0 step=-1 do={
> > > > > > > #             Calculate 256^($maxindex - $x)
> > > > > > >                :set tmpint 1
> > > > > > >                :if (($maxindex - $x) > 0) do={
> > > > > > >                   :for y from=1 to=($maxindex - $x) do={ :set
> > > tmpint
> > > > > (256
> > > > > > > * $tmpint) }
> > > > > > >                }
> > > > > > >                :set tmpint ($tmpint * ([:tonum [:pick
[:toarray
> > > > > > > $maxaddress] $x]] - \
> > > > > > >                                                     [:tonum
> > [:pick
> > > > > > > [:toarray $minaddress] $x]]) )
> > > > > > >                :set pooladdresses ($pooladdresses + $tmpint)
> > > > > > > #         for x
> > > > > > >             }
> > > > > > >
> > > > > > > #      if len array $minaddress = $maxaddress
> > > > > > >          }
> > > > > > >
> > > > > > > #      Add current range to total pool's available addresses
> > > > > > >          :set pooladdresses ($pooladdresses + 1)
> > > > > > >
> > > > > > > #   foreach r
> > > > > > >       }
> > > > > > >
> > > > > > > #   Now, we have the available address for all ranges in this
> > pool
> > > > > > > #   Get the number of used addresses for this pool
> > > > > > >       :set poolused [:len [used find pool=[:tostr $poolname]]]
> > > > > > >       :set poolpercent (($poolused * 100) / $pooladdresses)
> > > > > > >
> > > > > > > #   Output information
> > > > > > >       :set line ([:tostr $line] . "  [" . $poolused . "/" .
> > > > > > $pooladdresses
> > > > > > > . "]")
> > > > > > >       :set line ([:tostr $line] . "  " . $poolpercent . " %
> > used")
> > > > > > >
> > > > > > > #   Set colored display for used thresholds
> > > > > > >       :if ( [:tonum $poolpercent] > $criticalthreshold ) do={
> > > > > > >          :log error ("IP Pool " . $poolname . " is " .
> > > $poolpercent .
> > > > > "%
> > > > > > > full" . " [" . $poolused . "/" . $pooladdresses . "]")
> > > > > > >          :put ([:terminal style varname] . $line)
> > > > > > >       } else={
> > > > > > >          :if ( [:tonum $poolpercent] > $warnthreshold ) do={
> > > > > > >             :log warning ("IP Pool " . $poolname . " is " .
> > > > > $poolpercent
> > > > > > .
> > > > > > > "% full")
> > > > > > >             :put ([:terminal style syntax-meta] . $line)
> > > > > > >          } else={
> > > > > > >             :put ([:terminal style none] . $line)
> > > > > > >          }
> > > > > > >       }
> > > > > > >
> > > > > > > # foreach p
> > > > > > >    }
> > > > > > > # /ip pool
> > > > > > >
> > > > > > > }
> > > > > > > On 9/19/2012 11:33 AM, Ty Featherling wrote:
> > > > > > >
> > > > > > >> I have a routerboard acting as my primary DHCP server. I am
> also
> > > > > adding
> > > > > > >> routers to this large bridged network a tower at a time and
> each
> > > new
> > > > > > >> router
> > > > > > >> holds DHCP pools for their segment as well.
> > > > > > >>
> > > > > > >> How can I keep track of how many addresses are being utilized
> > per
> > > > > pool?
> > > > > > I
> > > > > > >> know that "ip dhcp-server lease print" will show how many
> active
> > > > > leases
> > > > > > >> there are but I want to see the number of unused addresses in
> a
> > > > pool.
> > > > > I
> > > > > > >> have to do math in my head each time to compare the number of
> > > > > addresses
> > > > > > in
> > > > > > >> the pool to the number of active leases to get that number.
> > > > > > >>
> > > > > > >> Has anyone found or created a more elegant solution to this?
> > > > > > >>
> > > > > > >> -Ty
> > > > > > >> -------------- next part --------------
> > > > > > >> An HTML attachment was scrubbed...
> > > > > > >> URL: <http://www.butchevans.com/**pipermail/mikrotik/**
> > > > > > >> attachments/20120919/54ec5d39/**attachment.html<
> > > > > >
> > > > >
> > > >
> > >
> >
>
http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/54ec5d39/a
ttachment.html
> > > > > > >
> > > > > > >> >
> > > > > > >> ______________________________**_________________
> > > > > > >> Mikrotik mailing list
> > > > > > >> Mikrotik@mail.butchevans.com
> > > > > > >> http://www.butchevans.com/**mailman/listinfo/mikrotik<
> > > > > > http://www.butchevans.com/mailman/listinfo/mikrotik>
> > > > > > >>
> > > > > > >> Visit http://blog.butchevans.com/ for tutorials related to
> > > Mikrotik
> > > > > > >> RouterOS
> > > > > > >>
> > > > > > >>
> > > > > > >>
> > > > > > >
> > > > > > > ______________________________**_________________
> > > > > > > Mikrotik mailing list
> > > > > > > Mikrotik@mail.butchevans.com
> > > > > > > http://www.butchevans.com/**mailman/listinfo/mikrotik<
> > > > > > http://www.butchevans.com/mailman/listinfo/mikrotik>
> > > > > > >
> > > > > > > Visit http://blog.butchevans.com/ for tutorials related to
> > > Mikrotik
> > > > > > > RouterOS
> > > > > > >
> > > > > > -------------- next part --------------
> > > > > > An HTML attachment was scrubbed...
> > > > > > URL: <
> > > > > >
> > > > >
> > > >
> > >
> >
>
http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/abf0ef50/a
ttachment.html
> > > > > > >
> > > > > > _______________________________________________
> > > > > > Mikrotik mailing list
> > > > > > Mikrotik@mail.butchevans.com
> > > > > > http://www.butchevans.com/mailman/listinfo/mikrotik
> > > > > >
> > > > > > Visit http://blog.butchevans.com/ for tutorials related to
> > Mikrotik
> > > > > > RouterOS
> > > > > >
> > > > > -------------- next part --------------
> > > > > An HTML attachment was scrubbed...
> > > > > URL: <
> > > > >
> > > >
> > >
> >
>
http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/45f5f7e4/a
ttachment.html
> > > > > >
> > > > > _______________________________________________
> > > > > Mikrotik mailing list
> > > > > Mikrotik@mail.butchevans.com
> > > > > http://www.butchevans.com/mailman/listinfo/mikrotik
> > > > >
> > > > > Visit http://blog.butchevans.com/ for tutorials related to
> Mikrotik
> > > > > RouterOS
> > > > >
> > > > -------------- next part --------------
> > > > An HTML attachment was scrubbed...
> > > > URL: <
> > > >
> > >
> >
>
http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/d4411d56/a
ttachment.html
> > > > >
> > > > _______________________________________________
> > > > Mikrotik mailing list
> > > > Mikrotik@mail.butchevans.com
> > > > http://www.butchevans.com/mailman/listinfo/mikrotik
> > > >
> > > > Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> > > > RouterOS
> > > >
> > > -------------- next part --------------
> > > An HTML attachment was scrubbed...
> > > URL: <
> > >
> >
>
http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/efe00c84/a
ttachment.html
> > > >
> > > _______________________________________________
> > > Mikrotik mailing list
> > > Mikrotik@mail.butchevans.com
> > > http://www.butchevans.com/mailman/listinfo/mikrotik
> > >
> > > Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> > > RouterOS
> > >
> > -------------- next part --------------
> > An HTML attachment was scrubbed...
> > URL: <
> >
>
http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/80dc40f5/a
ttachment.html
> > >
> > _______________________________________________
> > Mikrotik mailing list
> > Mikrotik@mail.butchevans.com
> > http://www.butchevans.com/mailman/listinfo/mikrotik
> >
> > Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> > RouterOS
> >
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <
>
http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/3f7ad5cd/a
ttachment.html
> >
> _______________________________________________
> Mikrotik mailing list
> Mikrotik@mail.butchevans.com
> http://www.butchevans.com/mailman/listinfo/mikrotik
>
> Visit http://blog.butchevans.com/ for tutorials related to Mikrotik
> RouterOS
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://www.butchevans.com/pipermail/mikrotik/attachments/20120919/08b665f3/
attachment.html>
_______________________________________________
Mikrotik mailing list
Mikrotik@mail.butchevans.com
http://www.butchevans.com/mailman/listinfo/mikrotik

Visit http://blog.butchevans.com/ for tutorials related to Mikrotik RouterOS

_______________________________________________
Mikrotik mailing list
Mikrotik@mail.butchevans.com
http://www.butchevans.com/mailman/listinfo/mikrotik

Visit http://blog.butchevans.com/ for tutorials related to Mikrotik RouterOS

Reply via email to