Ad Widget

Collapse

Проблема с низкоуровневым обнаружением.

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Smersh
    Member
    • Jul 2013
    • 49

    #1

    Проблема с низкоуровневым обнаружением.

    Здравствуйте,

    Я создал правило обнаружения баз данных, через cmd скрипт.
    В zabbix_agentd.win.conf:
    Code:
    UnsafeUserParameters=1
    UserParameter = mssql.db.discovery,"C:\Program Files\Zabbix\zabbix_mssql_bases.cmd"
    В zabbix_mssql_bases.cmd:
    Code:
    ...
    echo/{
    echo/	"data":[
    echo.
    setlocal ENABLEDELAYEDEXPANSION
    set "first=1"
    for /F "usebackq tokens=1" %%i in (`osql -E -i sql2000bases.sql -n -h-1`) do (
    	if NOT "%%i"=="" (
    		if NOT "%%i"== "(22" (
    			if NOT "!first!"=="1" (
    				echo/	}
    				echo/	,
    			)
    			set "first=0"
    			echo/	{
    			echo/		"{#DBNAME}":"%%i"
    			)
    		)
    	)
    )
    echo/	}
    echo.
    echo/	]
    echo/}
    GOTO :EOF
    В sql2000bases.sql:
    Code:
    select name from master..sysdatabases where dbid > 4
    Вывод выполнения батника из командной строки:
    Code:
    {
            "data":[
    
            {
                    "{#DBNAME}":"base_1"
            }
            ,
            {
                    "{#DBNAME}":"base_2"
            }
            ,
            {
                    "{#DBNAME}":"base_3"
            }
            ,
            {
                    "{#DBNAME}":"base_x"
            }
    
            ]
    }
    В логе агента:
    Code:
    4956:20140325:172034.205 Run remote command ["C:\Program Files\Zabbix\zabbix_mssql_bases.cmd"] Result [87] [{
    
    	"data":[
    
    
    
    	{
    
    ]...
      4956:20140325:172034.205 Sending back [{
    
    	"data":[
    
    
    
    	{
    
    		"{#DBNAME}":"Cannot"
    
    	}
    
    	,
    
    	{
    
    		"{#DBNAME}":"No"
    
    	}
    
    
    
    	]
    
    }]
    Что я сделал неправильно?
    Last edited by Smersh; 25-03-2014, 15:57.
  • Jimson
    Senior Member
    • Jan 2008
    • 1327

    #2
    В том что `osql -E -i sql2000bases.sql -n -h-1` возвращает непотребщину при запуске из под UID под которым работает zabbix_server.

    Comment

    • Smersh
      Member
      • Jul 2013
      • 49

      #3
      Проблема решена.

      Zabbix agent при выполнении считает рабочей папкой не ту в которой exe-шник (работает с правами системной учетной записи), поэтому пришлось прописать полный путь к файлу sql2000bases.sql в батнике.

      Comment

      Working...