Ad Widget

Collapse

How to auto discovery folders?

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Lake
    Junior Member
    • Feb 2016
    • 8

    #1

    How to auto discovery folders?

    Hello,

    I am new with Zabbix.
    I try to monitor file flows.
    I got files to date-folders.

    So I try discovery my sub-folders.

    path
    sub-folder-1
    date-folder-1
    date-folder-2
    sub-folder-2
    date-folder-1
    date-folder-2
    sub-folder-3
    date-folder-1
    date-folder-2
    ...
    sub-folder-20
    date-folder-1
    date-folder-2

    My script is returning delta time.


    ./script.py sub-folder-1
    #########################################
    #!/usr/bin/python

    import os
    import datetime
    import sys


    def file_modification_date(fname):
    t = os.path.getmtime(fname)
    return datetime.datetime.fromtimestamp(t).strftime('%s')


    def ReadDir(basedir):
    l = 0
    filetime = 0

    if os.path.isdir(basedir):
    ct = int(datetime.datetime.now().strftime('%s'))
    filetime = file_modification_date(max([os.path.join(basedir,d) for d in os.listdir(basedir)], key=os.path.getmtime))

    if len(str(ct - int(filetime))) > l:
    l = str(ct - int(filetime))

    return int(l)


    ### Main ###

    path = "/data/path/"

    if len(sys.argv) <> 2:
    exit()

    path = path + sys.argv[1]
    print ReadDir(path)
    #########################################
  • Firm
    Senior Member
    • Dec 2009
    • 342

    #2
    You need to output JSON-format for discovered folders.

    Add the following to zabbix_agentd configuration:
    Code:
    UserParameter=folder.discovery[*],/usr/bin/find $1 -maxdepth $2 -type d| /usr/bin/awk 'BEGIN {first=1; printf "%s","{\"data\":["} {if (first != 1) printf "%s",","; first=0; printf "{\"{#FOLDER_NAME}\":\"%s\"}",$$1} END {print "]}"}'
    Use like:
    Code:
    folder.discovery[/data/top-folder,1]
    You can monitor mtime of items then.

    Comment

    • Lake
      Junior Member
      • Feb 2016
      • 8

      #3
      Thank you Firm.
      This was helping me a lot.
      Thanks

      //Lake

      Comment

      Working...