62
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Konfigurációkezelés Kocsis Imre http://mit.bme.hu/~ikocsis Intelligens rendszerfelügyelet

Konfigurációkezelés

Embed Size (px)

DESCRIPTION

Intelligens rendszerfelügyelet. Konfigurációkezelés. Kocsis Imre http://mit.bme.hu/~ikocsis. Forgatókönyv 1. Megérkezett a bérszámfejtő program frissítése (új GUI) – telepíteni kellene. …hova?. Munkavállalói emlékezet „Kockás füzet” Visio (Konfiguráció) adatbázis?. - PowerPoint PPT Presentation

Citation preview

Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék

Konfigurációkezelés

Kocsis Imrehttp://mit.bme.hu/~ikocsis

Intelligens rendszerfelügyelet

Forgatókönyv 1.

Nézzük végig a munkaállomásokat. Azokról van valami

listánk…?

…hova?

Megérkezett a bérszámfejtő program frissítése (új GUI) – telepíteni kellene.

1. Munkavállalói emlékezet2. „Kockás füzet”3. Visio4. (Konfiguráció) adatbázis?

Forgatókönyv 1.

Rendben; melyiken is van bérszámfejtő szoftver és milyen verziójú?

1. Munkavállalói emlékezet2. „Kockás füzet”3. Visio4. (Konfiguráció) adatbázis?

Forgatókönyv 1.

És ha nem frissek az adatok?

1. Odamegyünk2. ssh/RDP/VNC/…3. Házilagos „varázslat”…4. Platformtámogatás?

Forgatókönyv 1.

Ok, akkor kezdjünk neki; távoli MSI install…

?!?@#!

1. Délután három van; nem elég hogy nem tudok dolgozni, a mai munkám elveszett.

Forgatókönyv 1.

2. Negyedéves zárás holnap.

3. A GUI szép, csak egy pár dolog most nem megy. Tesztelte ezt valaki? Ki engedélyezte? Álljunk gyorsan vissza mentésre!

…?

Forgatókönyv 2.

?!?@#!Nem megy a

vállalati portál!!!

Melyik gépek is szolgálják ki?

Ühm… 15 szerver, 2 hálózat…Monitorozó rendszer

mérései?

Forgatókönyv 2.

Megvan, az egyik adatbázis került inkonzisztens állapotba.

2 x = ? $

Tanulságok?

1. konfiguráció-adatbázisok Igény: konfiguráció adatbázisok

o Nem triviális méretű rendszerek

Területek és „silók” szerint több adatbázis lesz!o HWo Hálózati eszközök és topológia (~IP szintig)o OS platformok és szoftverek – leltáro SW licenszek!o OS és alkalmazás/kiszolgáló beállításoko Szolgáltatások erőforrásoko …

Ha tényleg adatbázis: modellezni is kell… Minden esetben új adatmodell? Common Information Model

2. szabványosítás Igény: konfigurációs aspektusok távoli

lekérdezése/módosítása

Kitérő: mikor és miért nem optimális?o SSH + $foo parancso SSH + expecto…oWindows…?

A „konfigurációkezelés” koncepcionálisan erősen keveredik egyéb operatív feladatokkal!

2. szabványosítás Mi szabványosítható?

Hordozóprotokollo Ötletek?

Üzenet-típusok és paraméterezésüko Feltételezve a kérdés/válasz + események modellt

Üzenetekben szállított adatok modelljeoMiért ≠ az előbbi adatmodellel?

Létező szabványok?o SNMP, CIM-XML, WMI, WS-Management (WinRM),

WSDM, JMX, …

Konfigurációkezelés – architektúra?

Konfigurációs adatbázis/Konfiguráció-menedzser

Form TitleForm Title

DB ...

Tárolás vagy igény esetén lekérdezés?

Beavatkozás?

Konfigurációkezelés – architektúra?

Konfigurációs adatbázis/Konfiguráció-menedzser

Relációs adatbázis, OO adatbázis/modelltér, nem OO

memóriastruktúrák, …

Export/import:AdatmodellAdatok

Form TitleForm Title

DB ...

Jól szabványosítható:Adatmodell/modell leírónyelv

Adatmodellek

Konfigurációkezelés – architektúra?

Konfigurációs adatbázis/Konfiguráció-menedzser

Form TitleForm Title

DB ...

Kliens Hordozóprotokoll

OperációkAdatok

Jól szabványosíthatók

Konfigurációkezelés – architektúra?

Konfigurációs adatbázis/Konfiguráció-menedzser

Form TitleForm Title

DB ...

Kliens

Jellemző hoszt határ

Technológiafüggő

lib/tool

Praktikum…

Az architektúra, amire szabványokat illesztünk

Konfigurációs adatbázis/Konfiguráció-menedzser

Form TitleForm Title

DB ...

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

Hordozóprotokoll

OperációkAdatok

Jellemzően nem szabványos

3. folyamatok Igény: megfelelő folyamatok

o Konfiguráció-változás bevezetéséreo Eltérés monitorozására és kezelésére

Mennyire jól szabványosítható?

„best practice” gyűjtemények: mintákoMinimálisan: fogalmi keretrendszero ITIL – „adapt & adopt”

4. CMDB Igény: konfigurációs adatbázisok között kapcsolat

o Pl.: fizikai hely, IP cím és szolgáltatás más DB-beno Egyesítés? Federáció?oMetamodell harmonizáció és egyesítés?

Hiányzó kapcsolatoko Az igazi hozzáadott érték…o… cserébe nehéz feladat

ITIL v3: „Configuration Management DataBase”

Konfigurációkezelés - tematika

•szabványos modellezés•szabványos távoli hozzáférés•eszközök, szabványos „provider”-ek

1. Alapok, modellezés, szabványok

•WMI: alapok, architektúra•WMI: eszközök, PowerShell•WS-Management, mint WinRM

2. Windows konfigurációkez

elés

•Az ITIL CMDB fogalma; modellezés•Funkcionális és architekturális jellemzők•Felderítés

3. CMDB-k

CIM (Common Information Model)Kibocsájtó: Distributed Management Task Force (OMG)Megalkotók: IBM, HP, EMC, VMware, Symantec, …Verziók: CIM Schema: 2.20 (2008)CIM Infrastructure Specification: 2.5 (preliminary, 2008)Cél: menedzsment információk objektum-orientált modellezése és szabványos modellek megadása

Rendszermenedzsment és modellezés Rendszermenedzsment: az objektum orientált

modellezés adódiko Különösen a konfiguráció-menedzsmentben

WindowsService

+Account: String+Started: Boolean+ProcessId: Integer

+forceStateChange(toState: integer): boolean

SoftwareService

+Manufacturer: String+Name: String+SoftwareVersion: String

WindowsOperatingSystem

serviceToOS

+os

+services

1

*

Entitás-jellemzők modellezése

Menedzsment akciók

modellezése

Kapcsolatok, tartalmazások modellezése

OO modellezés és menedzsment célok “standalone” menedzsment eszköz belső OO adatmodellel

o szokásos modellvezérelt fejlesztés

Menedzsment eszközök OO adatcseréjeo „Mely számítógépeken van Windows OS, és ezek mikor lettek utoljára frissítve”

A távoli menedzsment operációi mint objektumtér módosításoko Példányosítás: „hozzunk létre új felhasználót”o Metódushívás: „indítsuk újra az OS-t”o …

A Common Information Model Szabványos, kiterjeszthető rendszermenedzsment

adatmodell („információs modell”)oWindows Management Instrumentation!

Core Model: általános fogalmako Példák: ManagedElement, Setting, Location, FRU

Common Model: szokásos területek technológia-független modelljeio Példák: Application, Database, Device

Extension Schemas: technológiaspecifikus kiterjesztések

A CIM jellemző alkalmazásai

„CIM Object Manager”(CIMOM)

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

Szabvány/kiterj.metamodell és modellek, .mofformátumban

A CIM jellemző alkalmazásai

„CIM Object Manager”(CIMOM)

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

Hordozóprotokoll

OperációkAdatok

Szabvány/kiterjesztettmetamodell és modellek, valamilyen „konkrét szintaxissal”

A CIM Meta Schema Metametamodell: „CIM Meta Schema” Szokásos fogalmak

o Osztály, példány, metódus, tulajdonság, asszociáció CIM specifikus fogalmak

o Séma, trigger, jelzés, minősítő (qualifier)

UML-ben részlegesen felrajzolható A (meta)modelleket is (kvázi) UML-ben szokás

vizualizálnio A szabványos konkrét szintaxis szöveges

A CIM Meta Schemaegy osztálynév egy

sémában egyedi kell legyen

nincs többszörös öröklés

referencia típusa

példány állapotváltás vagy hozzáférés

felismerése Trigger eredményeként jön létre

Metaadat-típusok kontrollált bővíthetőségéért

(pl. Units = „bytes”)

CIM Meta Schema Példányosítás

o Def.: „egy osztály azon példányok halmaza, melyek ugyanazon metódusokkal és tulajdonságokkal rendelkeznek”

o A definiáló osztály tulajdonságaihoz értékeko NEM nevesített elemek! (minősítő)o Kulcs ([key]) tulajdonságok

Értékadás: adattípusok?o Tulajdonságok, referenciák, paraméterek, visszatérési

értékek, minősítőko Csak a beépített típusok vagy azok tömbjei

{u/s}int{8/16/32/64}, string, boolean, real{32/64}, Datetime,

char 16+

<classname> ref – erősen típusos!

Példa: CIM_Core részlet

LogicalElement

(See Core Model (Managed System Element))

ManagedSystemElement

(See Core Model (Managed System Element))

PhysicalElement

(See Core Model (Physical & Logical Device))

*Caption : string Description : stringElementName : string

ManagedElement DependencyComponent

**

*ConcreteDependency

**

ConcreteComponent **

LogicalIdentity **

ConcreteIdentity

* *

SoftwareIdentity

(See Core Model (Product, FRU & SoftwareID))

HostedDependency0..1

*

EnabledLogicalElement

(See Core Model (Enabled Logical Element))

Job

(See Core Model (Managed System Element))

OrderedComponent

* *

Példa: CIM_System részlet

(See Core Model)

EnabledLogicalElement

System

(See Core Model)

ComputerSystem

(See System Model (Computer System))

OperatingSystem

CreationClassName : string {key}Name : string {override, key}OSType : uint16 {enum}OtherTypeDescription : stringVersion : stringLastBootUpTime : datetimeLocalDateTime : datetimeCurrentTimeZone : sint16 NumberOfLicensedUsers : uint32NumberOfUsers : uint32NumberOfProcesses : uint32MaxNumberOfProcesses : uint32TotalSwapSpaceSize : uint64 {units}TotalVirtualMemorySize : uint64 {units}FreeVirtualMemory : unit64 {units}FreePhysicalMemory : uint64 {units}TotalVisibleMemorySize : uint64 {units}SizeStoredInPagingFiles : uint64 {units}FreeSpaceInPagingFiles : uint64 {units}MaxProcessMemorySize : uint64 {units}Distributed : booleanMaxProcessesPerUser : uint32

Reboot() : uint32Shutdown() : uint32

InstalledOS

*

RunningOS

FileSystem

See System Model (File Systems))

BootOSFromFS

*

10..1

0..1

w *

Példa: CIM_Network részletProtocolEndpoint

(See Core Model)

IPv4Address: stringIPv6Address: stringAddress: string {D}SubnetMask: stringPrefixLength: uint8AddressType: uint16 {D,enum}IPVersionSupport: uint16 {D,enum}AddressOrigin: uint16 {E}

IPProtocolEndpoint

Address: string

IPXProtocolEndpoint

PortNumber: uint32

TCPProtocolEndpoint

PortNumber: uint32

UDPProtocolEndpoint

PortNumber: uint16

SwitchPort

Name stringConnectionType uint16Role uint16TargetRelativePortNumber uint32OtherConnectionType string

SCSIProtocolEndpoint

Name stringRole uint16

ISCSIProtocolEndpoint

OverruleLSR: booleanTotalBandwidth: uint32 {units}AvailableBandwidth: uint32 {units}ResourceClasses: uint32

MPLSProtocolEndpoint {E}

SSID: stringWEPEnabled: booleanWEPKeyMixEnabled: boolean

WirelessLANEndpoint {E}

A CIM Schema (V2.20) struktúrája CIM_Schema

o CIM_Application o CIM_Application-J2eeAppServero CIM_Coreo CIM_Databaseo CIM_Deviceo CIM_Evento CIM_InteropCIM_IPsecPolicyo CIM_Metricso CIM_Networko CIM_Physical o CIM_Policy o CIM_Security o CIM_Support o CIM_System o CIM_User

A teljes modell hatalmas.

Viszont: egy eszköz „CIM megfelelősége” pusztán a képesség MOF állományok

betöltésére és exportálására

DEMO

http://www.dmtf.org

CIM_System megtekintése (Visio)

wbemtest.exe ( a Windows mélyén tényleg van ilyen)o „show MOF”

Messze nem csak konfigurációkezelés: Win32_Process

CIM

Managed Object Format Managed Object Format: szöveges leírónyelv

o Felfogható a CIM Meta Schema konkrét szintaxisaként Menedzsment információk deklaratív leírása Egy „MOF specifikáció”:

mofSpecification = *mofProductionmofProduction = compilerDirective|

classDeclaration | assocDeclaration | indicDeclaration | qualifierDeclaration | instanceDeclaration

Modell és példány-információ akár

együtt is!

Osztálydeklaráció//This is the MOF specification for our //custom temperature sensor.

[Description("temp. sensor class")]class Sensor_TempSensor : CIM_ManagedElement{

[Description("Meas. station ID"), MaxLen(64)] string StationID = "UNDEFINED";

sint8 GetCentigrade([IN] datetime AtTime); boolean IsComponentOK([IN]

Sensor_SensorComponent REF Component);};

Osztály minősítők

Séma neve (az _ előtt)

Öröklés

MOF állomány alapú adatcseremodell.mof

Definíció...

csakpeldany.mof

Példánya...

modellpeldannyal.mof

Definíció…Példánya...

Névtér

Objektum manager vagy

adatbázis implementáció

Fordítás

Fordítás és importálás

ImportálásNévtér: „olyan objektum, amely által megadott hatókörben az objektumok kulcsaik szerint

egyediek”

\default

Objektum manager

implementáció

Implementáció több névtérrel

\default\old

\local

CIM objektumok megnevezéseTeljes mértékben

implementációfüggőImplementáció-

független

N.B. 1. A névterek átlapolódhatnak tartalmukat nézve.N.B.2. Két azonos „model path”-ú objektum két különböző névtérben referálhat a valóságban különböző entitásokra

DEMO

A különböző CIMOM-implementációk szokásosan tárolnak önmagukra vonatkozó metaadatokat

Wbemtest.exeo root névtérhez csatlakozáso __NAMESPACE osztály példányai

• Rekurzív!o root\MSAPPS12 névtér megnyitása,

Win32_PowerpointPresentation példányok

CIM névterek

Összefoglaló A Common Information Model:

o Definiál egy nyelvet menedzsment adatok objektum orientált modellezésére (MOF)

oMegadja modelleknek egy igen tág, konkrét technológiáktól független, hierarchikus, kiterjeszthető halmazát

A modellek UML-ben jól vizualizálhatóak A modellek (sémák) MOF és grafikus

formátumban is elérhetőek

Web Based Enterprise Management (WBEM)

Kibocsájtó: Distributed Management Task Force (OMG)Cél: CIM-et támogató rendszermenedzsment

protokollok

Szabványos adatmodelltől a protokollokig A CIM a saját felhasználásával kapcsolatban több

kérdést szándékoltan nyitva hagy

Hozzáférési protokollo Egy CIMOM, mint kiszolgáló milyen kéréseket

értelmezzen?o Hogyan válaszoljon?oMi legyen a hordozóprotokoll és mi a beágyazás?

Lekérdezőnyelv? Szolgáltatás-felderítés? WMI: COM/DCOM, zárt

Web Based Enterprise Management A WBEM nem egy szabvány, hanem szabvány-

készlet

Protokoll: CIM-XML vagy WS-Management

Lekérdezőnyelv: CIM Query Language

Szolgáltatás-felderítés: WBEM Discovery Using the Service Location Protocol (SLP)

WBEM

„CIM Object Manager”(CIMOM)

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

Hordozóprotokoll

OperációkAdatok

A WS-Management nem csak CIM beágyazását engedi meg

Linkek Web Based Enterprise Management

o http://www.dmtf.org/standards/wbem/ CIM-XML protocol

o http://www.dmtf.org/standards/wbem/CIM-XML Web Services for Management

o http://www.dmtf.org/standards/wsman/ CIM Query Language Specification

o http://www.dmtf.org/standards/published_documents/DSP0202_1.0.0.pdf

CIM-XMLKibocsájtó: Distributed Management Task Force

Verzió: XML DTD: 2.2.0 (final, 2007)Representation of CIM in XML: 2.2.0 (final, 2007)

CIM Operations over HTTP: 1.2.0 (final, 2007)Cél: CIM hordozó és interop. protokoll

CIM-XML Cél: XML-ben reprezentált CIM információ-csere

HTTP felett

Információ-reprezentáció XML-beno Egy XML DTD + dokumentáció („Representation of CIM

in XML”) HTTP mint „wire protocol”

o „CIM Operations over HTTP” CIM Query Language mint lekérdezőnyelv

o „CIM Query Language Specification”

WBEM: CIM-XML

„CIM Object Manager”(CIMOM)

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

HTTP

„Operations”„CIM in XML”

CIM reprezentálása XML-ben Szabványos XML DTD

o Kifejezőerő: MOF fedőhalmaza

A DTD részben a CIM metasémát írja leo A MOF-hoz hasonlóan: osztály, referencia, tulajdonság, …

elemeko A „metaséma-leképezés” helyett a „séma-leképezés”

kezelhetetlen lenne (minden sémához külön DTD, XML névterek, …)

Teljes DTD:o Deklarációs elemek (MOF)o + üzenet (message) elemek

WBEM (CIM-XML): eszköztámogatás OpenPegasus

o Red Hat Enterprise Linuxo VMware ESX Servero IBM AIX Pegasus CIM Servero HP WBEM Serviceso Microsoft System Center Operations Manager 2007 Cross Platform

Extensions Beta (csak kliens)o …

openWBEMo SUSE Linux Enterprise Server

WBEM Serviceso Solaris WBEM Services

SBLIM („sublime”): Standards Based Linux Instrumentation pyWBEM

Standards Based Linux Instrumentation Nyílt forrású, ingyenes projekt

o Eredetileg IBM fejlesztéso Több részprojekt; itt: néhány kiemelt

CIM Client for Javao JSR 48 implementáció (~ WBEM Java API)o Service Location Protocol (SLP) kliens (IETF RFC)

Linux CMPI Provider-ek (lásd CMPI)o cmpi-base, cmpi-network, cmpi-rpm, cmpi-service, smpi-syslog, …o távoli CMPI-hez proxy provider és távoli démono Perl CMPI provider

Néhány SBLIM alprojekt

„CIM Object Manager”(CIMOM)

Kliens

JSR 48 impl.

wbemcli

„Provider”„Provider”„Provider”SBLIM CMPI

HTTP

„Operations”„CIM in XML”

Standards Based Linux Instrumentation Small Footprint CIM Broker (SFCB)

o Egyszerű, robosztus Linux CIMOM• Szabványtámogatás: MOF, CIM-XML, CMPI

o Alacsony tárhely (< 1MB) és memória-igényo Beágyazott környezetben is használhatóo SFCC kliens: XML (de)kódolás kihagyása

Extensible CIM UML Tooling Environment (ECUTE)o Modeler

• CIM modellezés UML-ben; MOF import/export• Rational Software Architect/Modeler 7

o Explorer• Grafikus CIMOM böngészés, lekérdezés, jelzések• CIMOM felderítés SLP-vel

DEMO

Környezet: CentOS 5o OpenPegasus, SBLIM provider-ek és wbemcli

repository-ból

Provider-ek listázása

wbemclio Szolgáltatott osztályok listázásao Linux_OperatingSystemo Linux_UnixProcess; xml nézet

OpenPegasus + wbemcli

Linkek CIM-XML protocol

o http://www.dmtf.org/standards/wbem/CIM-XML XML DTD: 2.2.0 (final, 2007)

o http://www.dmtf.org/standards/published_documents/cim.dtd Representation of CIM in XML: 2.2.0 (final, 2007)

o http://www.dmtf.org/standards/published_documents/DSP201.html

CIM Operations over HTTP: 1.2.0 (final, 2007)o http://www.dmtf.org/standards/published_documents/DSP200.

html CIM Query Language Specification

o http://www.dmtf.org/standards/published_documents/DSP0202_1.0.0.pdf

Linkek OpenPegasus

o http://www.openpegasus.org/ OpenWBEM

o http://www.openwbem.org/ WBEM Services

o http://wbemservices.sourceforge.net/ SBLIM

o http://sblim.wiki.sourceforge.net/ pyWBEM

o http://pywbem.wiki.sourceforge.net/

Common Manageability Programming Interface (CMPI)

Kibocsájtó: The Open GroupMegalkotók: IBM, Oracle, Sun, …

Verzió: -, 2004Cél: szabványos CIMOM Provider csatolófelület

CIMOM Provider-ek A CIMOM-ok „Provider”-eket használnak a

technológia-specifikus feladatok delegálásárao „példány szolgáltató”: futó Linux folyamatoko „metódus szolgáltató”: Linux folyamat leállításao…

CIM Client CIM Object Manager Repository

CIM over HTTP

Provider Provider

\dev\hda2

Dynamic Objects(Instrumentation)

CIMOM Provider-ek CIMOM Provider: WBEM-nek nem része

o Még a „Provider” fogalom sem jelenik meg

Következmény: CIMOM-onként eltérő…o Támogatott programozási nyelveko Illesztőfelület-logikao Provider-struktúra

Hiába a WBEM szabvány, az instrumentáció megvalósítója…o Vagy adott CIMOM-hoz köti magát;o Vagy többhöz is implementál

Válasz: interfész szabványosítása

CMPI

„CIM Object Manager”(CIMOM)

Kliens

lib/tool

Kliens

„Provider”„Provider”„Provider”„Provider”

CMPI

CMPI Alapfogalmak

o „Management Broker” (MB)o „Management Instrumentation” (MI)

MI fejlesztés: adott ANSI C header állományok Akár bináris kompatibilitás Nincs szükség semmilyen linkelt könyvtárra CIMOM adattípus-implementációjának fedése Támogatás:

o OpenPegasuso openWBEMo SFCB