Sun Management Center 3.6 使用者指南

第 19 章 匯入和匯出拓樸資訊

拓樸匯入和匯出公用程式可讓您從使用 XML 標記的 ASCII 檔案匯入拓樸資料庫,或將拓樸資料庫匯出至此檔案。匯入公用程式可讓您從檔案中讀取資料,並更新拓樸資料庫和拓樸代理程式物件的資料。匯出公用程式的作業與匯入公用程式相反。

本章說明以下主題:

拓樸匯入和匯出概念

拓樸匯入和匯出公用程式可用來執行下列作業:

您可以從 Sun Management Center 主控台主視窗或 CLI 存取這些功能。您必須指定要匯入或匯出的完整拓樸資料和網域。此工具支援多種資料處理方法,包括覆寫和附加。

拓樸匯入和匯出架構

拓樸匯入和匯出公用程式透過用戶端 API 與 Sun Management Center 伺服器通訊。匯入和匯出 ASCII 檔位於主控台系統。此檔透過客戶端 API 提供資訊給伺服器。伺服器會將該資訊發送給與拓樸資料庫互動的拓樸。下圖顯示了支援這些公用程式的軟體架構。

圖 19–1 匯出和匯出拓樸的軟體架構

如圖所示,匯入/匯出檔案與主控台匯入/匯出工具通訊;而匯入/匯出工具則與伺服器端通訊,並透過拓樸代理程式與資料庫通訊。

對於匯出,有兩種模式可供選用:附加和覆寫。在覆寫模式中,轉儲資料會取代現有檔案的內容。在附加模式中,轉儲資料會被新增至檔案末尾。

對於匯入,有兩種模式可用來處理包含在轉儲檔案中的網域資訊。第一種模式為忽略網域資訊。所有物件均建立在指定網域或起始網域中。第二種模式為一併匯入網域資訊和所有其他物件。在此情況下,可建立新的網域。所有非網域物件均建立在相應網域中。

匯出拓樸資訊

您可以從主控台視窗或 CLI 啟動拓樸匯出公用程式,如匯入和匯出 CLI 介面所述。

Procedure從主控台視窗匯出拓樸資料

步驟
  1. 在主控台視窗的 [工具] 功能表中選擇 [匯出拓樸] 。

    [匯出拓樸] 對話方塊即會出現。

  2. 從 [匯出網域名稱] 清單中選取網域。

    清單可顯示由拓樸代理程式管理的所有網域。您可以選取匯出一個網域。若要匯出多個網域,您可以在附加模式下重複前述操作,以匯出其他網域。

  3. 鍵入要匯出檔案的名稱,或使用 [瀏覽] 按鈕選取現有檔案。

    若要匯出檔案,你必須有寫入檔案或建立檔案的權限。否則會顯示錯誤訊息,並結束操作。

  4. 決定是要將資料附加到現有檔案中,還是覆寫現有檔案中的資料。

    附加模式可將資料附加到檔案末尾。覆寫模式可覆寫檔案。當使用附加模式匯出時,會對檔案執行較嚴謹的檢查。現有檔案必須為有效的匯入和匯出資料檔。有效資料檔為定義完整的 XML 檔案,包含正確的匯入和匯出檔案文件類型聲明 (DTD)。

  5. 從 [有效天數] 功能表中選擇資料有效的天數。

    您可以從下列值選擇:

    • 7 天

    • 15 天

    • 30 天

    • 90 天

    依預設,拓樸匯出資料的有效天數不受限制。

  6. (可選擇) 提供有關此匯出功能的註解。

  7. 按一下 [確定] 將資料匯出到指定檔案,並關閉 [匯出拓樸] 視窗。

匯入拓樸資訊

您可以從主控台視窗或 CLI 啟動拓樸匯入公用程式,如匯入和匯出 CLI 介面所述。

Procedure從檔案匯入拓樸資料

步驟
  1. 從主控台的 [工具] 功能表中選取 [匯入拓樸] 。

    [匯入拓樸] 視窗即會出現。

  2. 鍵入包含要匯入拓樸資料的檔案之完整路徑名稱。


    提示 –

    您還可以使用 [瀏覽] 按鈕來尋找檔案。


  3. 決定是匯入拓樸中的所有內容,還是僅匯入群組和實體。

    • 遵循 – 匯入群組和網域資訊。群組和實體建立在檔案包含的網域中。

    • 忽略 – 忽略網域資訊,僅將群組和實體匯入您指定的目標網域中。

  4. 從 [名稱] 清單中選取要將資料匯入其中的網域。

    依預設,所有資料均被匯入起始網域。


    備註 –

    只有在前一步驟中選擇了 [忽略] 選項,您才可以在拓樸階層結構中指定要將資料匯入的位置。


  5. 按一下 [確定] 以匯入資料,並關閉 [匯入拓樸] 視窗。

    匯入公用程式會更新拓樸資料庫。因此,在資料匯入之前,警告對話方塊可讓您確認此操作。

    警告對話方塊可告知您輸入檔案的產生時間和產生者。此警告可幫助您確保使用的是正確的資料檔。

    需要執行的其他數項檢查:

    • 匯出的資料檔包括有關檔案有效時間的資訊。如果您嘗試匯入過時檔案,則會收到錯誤訊息,且操作會停止。

    • 匯入公用程式會檢查檔案是否存在及是否可讀。如果這些檢查失敗,您會收到錯誤訊息,且操作會停止。

    • 為使匯入公用程式能夠分析匯入檔案,檔案格式必須正確。如果檔案格式不正確,匯入公用程式會產生錯誤訊息。

    • 如果實體存在於目前的拓樸階層結構中,則會出現另一個警告對話方塊,詢問是否要取代該實體。選取下列任一項選項:

      置換

      用新值取代衝突的資料。

      全部置換

      取代全部衝突的資料。若資料衝突再次發生,則不會出現對話方塊,而直接取代舊值

      略過

      不更新衝突的資料。

      全部略過

      若資料衝突再次發生,則不會出現對話方塊。忽略所有衝突,並且不作任何變更。

      取消匯入

      停止匯入操作。

匯入和匯出 CLI 介面

您可以使用以下指令從 CLI 呼叫匯入和匯出公用程式:


# /opt/SUNWsymon/sbin/es-cli
> login
Host: servername
Login: username
Password: password
Login successful!
> export parameter
> import parameter

請參閱匯入指令參數匯出指令參數以得知關於適當指令參數的資訊。

拓樸匯入公用程式

import 指令可從檔案為指定網域擷取先前匯出的拓樸資料。

匯入指令參數

import 指令具有以下參數:

domain

domain 參數的值為要匯入的拓樸所屬網域的名稱。如果未指定網域,將匯入所有網域。

domainmode

domainmode 參數的值決定是否從匯入的拓樸建立新的網域。如果值為 follow,則將群組和網域拓樸匯入目前拓樸,並可建立新的網域。若值為 ignore (略過),就僅會將群組和實體匯入到指定目標網域。

filename

filename 參數的值為應該從中擷取拓樸資訊的檔案之名稱。

nodemode

nodemode 參數的值決定是否以匯入的拓樸取代現有的拓樸。如果 nodemode 參數的值為 replace,則將以匯入的值取代衝突的資料。如果 nodemode 參數的值為 ignore (略過),則不更新衝突的資料。

指令行中的外顯指定將置換參數檔中的相同指定。例如,若指令行中指定 mode=ignore,而且在參數檔中指定 mode=follow,則會使用 mode=ignore


範例 19–1 從檔案匯入拓樸資料

在以下範例中,從檔案 /home/examples/snapshot 中匯入先前匯出的拓樸。根據需要建立新的網域,並以匯入的拓樸取代衝突的資料。


> import filename=/home/examples/snapshot domainmode=follow \
nodemode=replace

確認訊息

在操作完成前或資料發生衝突時,匯入公用程式會提示您回答以下項目:

匯入指令的輸出訊息

本節說明可能會作為匯入指令結果出現的訊息。


匯入:Results 1/1


State=Success


Message=The topology data is successfully imported.

原因:

成功。

說明:

作業成功完成。


filename:No such file.

原因:

檔案不存在。

說明:

指定的檔案不存在。指令行可能使用了兩個檔案:一個提供匯入資料來源的資料檔,以及一個提供參數清單的參數檔。


import: Cannot open filename.

原因:

許可權遭拒。

說明:

檔案無法開啟以供讀取。


import: File format is not supported.

原因:

格式錯誤。

說明:

來源檔不是匯出資料所用的有效資料庫檔案。


import: File out-of-date (xx days).

原因:

資料過時。

說明:

您使用的資料已過時。


import: Authentication failed.

原因:

驗證失敗。

說明:

目前使用者沒有在拓樸階層結構中建立物件的權限。


import: Wrong parameter file.

原因:

參數檔錯誤。

說明:

參數檔應為 name = value 組的清單。如果格式不正確,應用程式將產生錯誤訊息,並停止作業。


import: illegal parameter - <para>.


Use -h option to get usage.

原因:

非法的參數。

說明:

已將非法的參數傳入匯入操作。請使用 import -h 檢視可用的選項和參數。

拓樸匯出公用程式

export 指令可將一個網域或所有網域的拓樸資料儲存到一個檔案中。

匯出指令參數

export 指令可接受以下參數:

comment

comment 參數的值為要包含在檔案中的附註。

domain

domain 參數的值為要匯出的拓樸所屬網域的名稱。如果未指定網域,將匯出所有網域。

filename

filename 參數的值為應該將拓樸資訊匯出至其中的檔案之名稱。

mode

mode 參數的值決定如何將拓樸資訊加入檔案。如果值為 append,則資料會附加到檔案內容中。如果值為 overwrite,則將以新的資料取代檔案先前的內容。

validity

validity 參數的值為資料有效的時間長度(以天計)。以下值為有效性參數的合法值:

  • Unlimited

  • 7

  • 15

  • 30

  • 90


範例 19–2 將預設網域拓樸匯出到檔案

在以下範例中,將 Default Domain 儲存到名為 snapshot 的檔案中。snapshot 的原始內容將被新的資料覆寫。假設新資料的有效期不受限制。註解指定此資料用於系統測試群組。


> export filename=/home/examples/snapshot \
domain="Default Domain" mode=overwrite validity=Unlimited \
comment="System Test Group"

匯出指令的輸出訊息

以下清單顯示可能會作為匯出指令結果出現的訊息。


Export: Results 1/1


State=Success


Message=The topology data is successfully exported.

原因:

成功。

說明:

作業成功完成。


export: Cannot open file.

原因:

檔案不存在。

說明:

參數檔不存在。


filename: Permission denied.

原因:

檔案錯誤。

說明:

無法建立或開啟檔案以供寫入。


export: File format not supported.

原因:

格式錯誤。

說明:

當將匯出資料附加到無效的匯出資料檔時,會發生錯誤。


export: The domain <domainname > does not exist

原因:

物件錯誤。

說明:

您要匯出的網域不存在。


export: Wrong parameter file.

原因:

參數檔錯誤。

說明:

參數檔包含 name = value 組的清單。如果檔案格式不正確,應用程式將通知您,並停止作業。


export: The current user is different from the last one.

原因:

使用者衝突。

說明:

當您嘗試將資料覆寫或附加到他人建立的現有資料檔時,會發生錯誤。您無法修改或覆寫其他使用者建立的匯出資料。


export: Data is out-of-date.

原因:

資料太舊。

說明:

您使用的匯出檔案已過時。只有當您以附加模式匯出資料時,才會出現此訊息。


export: illegal parameter - <para>.


Please use -h option to get usage.

原因:

非法的參數。

說明:

已將非法的參數傳入匯出操作。

匯入和匯出檔案內容

以下清單可辨別匯入和匯出公用程式處理的拓樸資料。

實體資訊

有關各個網域、群組及主機的記錄資訊。

修飾資訊

有關網域與群組的修飾資訊。修飾資訊僅包含佈局和背景索引,而不包含背景內容。例如,有關背景的資訊僅包含 GIF 檔案名稱,而不包含 GIF 檔案。

關係資訊

關係資訊說明拓樸階層結構、實體背景和佈局。

檔案格式說明

匯入/匯出檔案說明匯入資料和匯出資料。您可以使用任何文字編輯器來編輯此檔案。此檔案包含拓樸階層結構中各個實體的相關資訊。因為附加匯出模式可將更多的物件資訊附加到檔案中,因此該格式易於延伸和分析。匯出的資料以 XML 格式儲存。

檔案格式設計

檔案分為四個部份:

Magic 資訊

Magic 資訊可識別此檔案為 XML 格式檔案。通常,此資訊顯示如下:


<? XML version = 1.0 ?>

DTD(文件類型聲明)

DTD 資訊定義文件的架構。匯出檔案的 DTD 類似以下範例。


範例 19–3 匯入和匯出檔案 DTD


<!ELEMENT ENTITY (ENTITY* ADORNMENT*)>	
/* Entity element describes a entity. If it is a group, it may 
   contain groups and adornment. */
		<!ATTLIST ENTITY			/* Entity attributes */
			desc		CDATA
			full_desc	CDATA
			hostname	CDATA
			ip	CDATA
			netmask	CDATA
			architecture	CDATA
			family	CDATA
			polling_type	CDATA
			url	CDATA
			x_coord	CDATA
			y_coord	CDATA
			topology_type	CDATA
			event_dest	CDATA
			trap_dest	CDATA
			target_host	CDATA
			target_ip	CDATA
			read_info	CDATA
			write_info	CDATA>
	<!ELEMENT ADORNMENT>
		<!ATTLIST ADORNMENT
			x_coord	CDATA
			y_coord	CDATA
			type	CDATA
			configuration	CDATA>
	]>

標頭資訊

標頭資訊用於記錄一般資訊,例如:

資料區塊

資料區塊包含拓樸階層結構架構和實體。

拓樸和匯出檔案範例

下圖為新的網域拓樸的圖解。

圖 19–2 新的拓樸範例

Sun Management Center 主控台視窗的一部份會顯示一個很小的網路,其中包括一個校園、三個主機物件、一個子網路及一個資料夾。


範例 19–4 新的網域的匯出檔案

此範例顯示新的網域的拓樸匯出檔案。

<?xml version="1.0" encoding="UTF-8"?>
<DOCUMENT>
  <HEAD>	
    <USER>jkang</USER>
    <DATE>1/7/1999</DATE>
    <VALIDITY>7 days</VALIDITY>
    <PRODUCT>Sun Management Center</PRODUCT>
    <VERSION>3.6</VERSION>
    <COMMENTS>This is an example.</COMMENTS>
  </HEAD>
   <DOMAIN name="my new">
      <ENTITY arch="SunOS 5.8" config="" desc="wizard" entityId="e-1" 
        family="sun4u-Sun-Ultra-2" fulldesc="wizard" hostname="wizard" 
        ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" 
        netMask="255.255.255.0" pollType="ahost" readInfo="" targetHost="" 
        targetIp="" targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" 
        type="" writeInfo="" xCoord="23" yCoord="39" 
      />
      <ENTITY arch="SunOS 5.8" config="" desc="atom" entityId="e-2" 
        family="sun4u-Sun-Ultra-2" fulldesc="" hostname="u30-1" 
        ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" 
        netMask="255.255.255.0" pollType="ahost" readInfo="" 
        targetHost="" targetIp="" 
        targetUrl="snmp://129.158.168.113:161/sym//base/mibman/modules" 
        type="" writeInfo="" xCoord="75" yCoord="39" 
      />
      <ENTITY arch="" config="" desc="campus" entityId="e-3" family="campus-view" 
        fulldesc="" hostname="" ipAddr="" isPoll="true" isSoftGroupLink="false" 
        netMask="" pollType="aview" readInfo="espublic" targetHost="" targetIp="" 
        targetUrl="snmp://129.158.168.63:164/mod/topology+view-101" 
        type="" writeInfo="" xCoord="27" yCoord="111">
        <ENTITY arch="" config="" desc="building" entityId="e-1" 
          family="building-view" fulldesc="" hostname="" ipAddr="" 
          isPoll="true" isSoftGroupLink="false" netMask="" pollType="aview" 
          readInfo="espublic" targetHost="" targetIp="" 
          targetUrl="snmp://129.158.168.63:164/mod/topology+view-102" 
          type="" writeInfo="" xCoord="" yCoord="">
          <ENTITY arch="SunOS 5.8" config="" desc="Wizard" entityId="e-1"
            family="sun4u-Sun-Ultra-2" fulldesc="" hostname="wizard" 
            ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" 
            netMask="255.255.255.0" pollType="ahost" readInfo="" 
            targetHost="" targetIp=""
            targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" 
            type="" writeInfo="" xCoord="" yCoord="" 
          />
          <ENTITY arch="SunOS 5.8" config="" desc="aaa" entityId="e-2" 
            family="sun4u-Sun-Ultra-2" fulldesc="" hostname="wizard" 
            ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" 
            netMask="255.255.255.0" pollType="ahost" readInfo="" 
            targetHost="" targetIp=""
            targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules" 
            type="" writeInfo="" xCoord="" yCoord="" 
          />
          <ENTITY arch="SunOS 5.8" config="" desc="atom" entityId="e-3" 
            family="sun4u-Sun-Ultra-2" fulldesc="" hostname="u30-1" 
            ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" 
            netMask="255.255.255.0" pollType="ahost" readInfo="" 
            targetHost="" targetIp="" 
            targetUrl="snmp://129.158.168.113:161/sym//base/mibman/modules" 
            type="" writeInfo="" xCoord="" yCoord="" 
          />
      </ENTITY>
    </ENTITY>
    <ENTITY arch="" config="" desc="129.158.0.0" entityId="e-4" 
       family="network-view" fulldesc="129.158.0.0" hostname="129.158.0.0" 
       ipAddr="129.158.0.0 isPoll="true" isSoftGroupLink="false" 
       netMask="255.255.255.0" pollType="aview" 
       readInfo="espublic" targetHost="129.158.0.0" targetIp="129.158.0.0" 
       targetUrl="snmp://129.158.168.63:164/mod/topology+view-103" type="" 
       writeInfo="" xCoord="38" yCoord="181">
       <ENTITY arch="" config="" desc="129.158.168.0" entityId="e-1" 
          family="subnetwork-view" fulldesc="129.158.168.0" 
          hostname="129.158.168.0" ipAddr="129.158.168.0" 
          isPoll="true" isSoftGroupLink="false" netMask="255.255.255.0" 
          pollType="aview" readInfo="espublic" targetHost="129.158.168.0" 
          targetIp="129.158.168.0" 
          targetUrl="snmp://129.158.168.63:164/mod/topology+view-104" 
          type="" writeInfo="" xCoord="" yCoord="">
          <ENTITY arch="SunOS 5.8" config="" desc="wizard" entityId="e-1" 
           family="sun4u-Sun-Ultra-2" 
           fulldesc="SUNW,Ultra-2" hostname="wizard" ipAddr="129.158.168.63" 
           isPoll="false" isSoftGroupLink="false" netMask="255.255.255.0" 
           pollType="ahost" readInfo="public" targetHost="" targetIp="" 
           targetUrl="snmp://129.158.168.63:1100/sym//base/mibman/modules"
           type="" writeInfo="" 
           xCoord="" yCoord="" 
          />
        </ENTITY>
      </ENTITY>
      <ENTITY arch="" config="" desc="myworkstation" entityId="e-5" 
        family="nonagent-sun4u-Sun-Ultra30" fulldesc="" hostname="wizard" 
        ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" 
        netMask="" pollType="snmp" readInfo="public" targetHost="" 
        targetIp="" targetUrl="snmp://wizard:1100/oid//1.3.6.1.2.1.1.7.0"
        type="" writeInfo="private" xCoord="52" yCoord="253" 
      />
      <ENTITY arch="SunOS 5.8" config="" desc="System Group" entityId="e-6" 
        family="base-agent" fulldesc="MIB tree branch" hostname="wizard" 
        ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" 
        netMask="255.255.255.255" pollType="amod" readInfo="" 
        targetHost="wizard" targetIp="129.158.168.63"
        targetUrl="snmp://129.158.168.63:1100/mod/mib2-simple/system" 
        type="" writeInfo="" xCoord="52" yCoord="329" 
      />	
   <ADORNMENT Config="bus" Id="adorn-7" Type="layout" XCoord="0" YCoord="0" />
   </DOMAIN>
</DOCUMENT>