Sun Management Center 3.5 使用者指南

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

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

本章說明以下主題:

拓樸匯入和匯出概念

拓樸匯入和匯出公用程式可用於進行以下作業:

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

拓樸匯入和匯出架構

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

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

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

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

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

匯出拓樸資訊

您可從主要主控台視窗或 CLI 啟動拓樸匯出公用程式,請參閱匯入和匯出 CLI 介面中的說明。

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

    在主要主控台視窗的「工具」功能表中選擇「匯出拓樸」。

    「匯出拓樸」對話方塊即會出現。

    從「匯出領域名稱」清單中選取領域。

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

    鍵入要匯出檔案的名稱,或使用「瀏覽」按鈕選取現有檔案。

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

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

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

    從「有效天數」功能表中選擇資料有效的天數。

    您可以從下列值中選擇:

    • 7 天

    • 15 天

    • 30 天

    • 90 天

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

    (選擇性的)

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

    按一下「確定」將資料匯出到指定檔案,並關閉「匯出拓樸」視窗。

匯入拓樸資訊

您可從主要主控台視窗或 CLI 啟動拓樸匯入公用程式,請參閱匯入和匯出 CLI 介面中的說明。

從檔案匯入拓樸資料

    從主要主控台的「工具」功能表中選取「匯入拓樸」。

    「匯入拓樸」視窗即會出現。

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


    提示 –

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


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

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

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

    從「名稱」清單中選取要將資料匯入其中的領域。

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


    註解 –

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


    按一下「確定」以匯入資料,並關閉「匯入拓樸」視窗。

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

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

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

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

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

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

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

      取代

      用新值取代衝突的資料。

      取代全部

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

      忽略

      不更新衝突的資料。

      忽略全部

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

      取消匯入

      停止匯入操作。

匯入和匯出 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

確認訊息

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

匯入指令的輸出訊息

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


匯入:完成。

原因:

成功。

描述:

操作成功完成。


filename: 無此文件。

原因:

檔案不存在。

描述:

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


匯入: 無法開啟 filename

原因:

許可權拒絕。

描述:

檔案無法開啟以供讀取。


匯入: 不支援檔案格式。

原因:

格式錯誤。

描述:

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


匯入:檔案過時(xx 天)。

原因:

資料過時。

描述:

您使用的資料已過時。


匯入:認證失敗。

原因:

認證失敗。

描述:

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


匯入:錯誤的參數檔。

原因:

參數檔錯誤。

描述:

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


匯入:非法的參數 - < para>。


請使用 -h 選項來取得用法。

原因:

非法的參數。

描述:

已將非法的參數傳入匯入操作。請使用 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"

匯出註解

呼叫匯出指令後,會要求您輸入註解。提示符號為 >。按 Return 鍵可斷行。按兩下 Return 鍵可結束註解。


範例 19–3 CLI 匯出註解


> export -p domain=ALL mode=append <return>
請為匯出輸入註解:
> Comment text line 1 <Return>
> Comment text line 2 <Return>
> <Return>
<
狀態 = 正常
訊息 = 完成。
>

匯出指令的輸出訊息

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


匯出:完成。

原因:

成功。

描述:

操作成功完成。


匯出:無法開啟 file

原因:

檔案不存在。

描述:

參數檔不存在。


filename:許可權拒絕。

原因:

檔案錯誤。

描述:

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


匯出:不支援檔案格式。

原因:

格式錯誤。

描述:

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


匯出:領域 < domainname> 不存在

原因:

物件錯誤。

描述:

您要匯出的領域不存在。


匯出:錯誤的參數檔。

原因:

參數檔錯誤。

描述:

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


匯出:目前使用者與上一位不同。

原因:

使用者衝突。

描述:

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


匯出:資料過時。

原因:

資料太舊。

描述:

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


匯出:非法的參數 - < para>。


請使用 -h 選項來取得用法。

原因:

非法的參數。

描述:

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

匯入和匯出檔案內容

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

實體資訊

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

修飾資訊

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

關係資訊

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

檔案格式說明

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

檔案格式設計

檔案分為四個部份:

Magic 資訊

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


<? XML version = 1.0 ?>

DTD(文件類型聲明)

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


範例 19–4 匯入和匯出檔案 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–5 新的領域的匯出檔案

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

<?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.0</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-30" fulldesc="wizard" hostname="wizard" 
        ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" 
        netMask="255.255.255.255" 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-30" fulldesc="" hostname="u30-1" 
        ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" 
        netMask="255.255.255.255" 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-30" fulldesc="" hostname="wizard" 
            ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" 
            netMask="255.255.255.255" 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-30" fulldesc="" hostname="wizard" 
            ipAddr="129.158.168.63" isPoll="false" isSoftGroupLink="false" 
            netMask="255.255.255.255" 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-30" fulldesc="" hostname="u30-1" 
            ipAddr="129.158.168.113" isPoll="false" isSoftGroupLink="false" 
            netMask="255.255.255.255" 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-30" 
           fulldesc="SUNW,Ultra-30" 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>