Ten monitor sprawdza, czy agent APM poprawnie przetwarzał konfigurację monitorowania APM po stronie klienta. Monitor przechodzi w stan ostrzegawczy w razie wykrycia nieprawidłowej konfiguracji lub sprzecznych konfiguracji.
Gdy konfiguracja APM do monitorowania środowiska .NET po stronie klienta jest nieprawidłowa lub powoduje konflikt, wystąpienie przechodzi w stan złej kondycji.
Infrastruktura konfiguracji APM generuje konfigurację dla agenta APM do monitorowania środowiska .NET po stronie klienta na podstawie ustawień określonych w szablonie monitorowania wydajności aplikacji .NET, pakietów administracyjnych oraz szeregu plików zawierających dyrektywy konfiguracji domyślnej, a zainstalowanych wstępnie z agentem. W razie problemów z agentami lub sprzeczności ustawień podczas tego procesu mogą wystąpić błędy uniemożliwiające pomyślne załadowanie i wykorzystanie konfiguracji. Przyczyny są między innymi następujące: nieprawidłowe ustawienia określone w procesie konfiguracji, konfliktowe ustawienia określone dla tej samej aplikacji w różnych szablonach, a nawet instalacja agenta, która jest uszkodzona i wymaga naprawy.
Najczęstszą przyczyną tego typu błędu jest konflikt konfiguracji, na przykład: wiele szablonów z konfliktowymi ustawieniami dla tej samej aplikacji.
Monitorowanie APM po stronie klienta jest stosowane osobno do każdej z witryn sieci Web i tylko jedną konfigurację można zastosować do każdej z nich. W przypadku konfigurowania monitorowania dla różnych aplikacji, których hostem jest ta sama witryna sieci Web, niektóre ustawienia konfiguracji muszą być takie same dla wszystkich monitorowanych aplikacji w procesie, ponieważ będą one współdzielić jeden moduł zbierający w ramach monitorowania po stronie klienta (CSM).
W niektórych przypadkach przyczyną błędu tego typu może być uszkodzony klucz szyfrowania.
Jeśli konflikt konfiguracji nie zostanie skorygowany, monitorowanie wydajności aplikacji po stronie klienta nie będzie działać zgodnie z oczekiwaniem w przypadku danej witryny sieci Web.
Sprawdź kontekst alertu oraz dziennik zdarzeń programu Operations Manager dla tego agenta, aby uzyskać dodatkowe informacje na temat przyczyny konfliktu. Dziennik zdarzeń może zawierać wiele komunikatów dotyczących jednego konfliktu lub błędu, co pomoże w wyizolowaniu grupy aplikacji powodujących konflikty konfiguracji w przypadku danego agenta.
Korzystając z informacji podanych z błędami, zapewnij, aby wszystkie progi i inne ustawienia zostały skonfigurowane tak samo w każdej z określonych grup aplikacji. Aby zaktualizować konfigurację grupy aplikacji:
Otwórz konsolę Operacje.
Przejdź do obszaru Tworzenie.
Rozwiń węzeł Szablony pakietów administracyjnych.
Wybierz opcję Monitorowanie wydajności aplikacji .NET.
Wybierz pierwsze sprzeczne wystąpienie szablonu i kliknij opcję Właściwości w okienku Zadania.
Korzystając z kreatora właściwości, można skorygować konfliktowe ustawienia w grupach aplikacji.
W przypadku uszkodzonego konta polecenia Uruchom jako wystarczy otworzyć szablon monitorowania wydajności aplikacji .NET i zapisać go ponownie, tak aby wszystkie ustawienia, razem z ustawieniem konta polecenia Uruchom jako, zostały zapisane ponownie już w poprawnym formacie.
Target | Microsoft.SystemCenter.Apm.ApmAgent | ||
Parent Monitor | System.Health.ConfigurationState | ||
Category | ConfigurationHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.2SingleEventLog2StateMonitorType | ||
Remotable | False | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SystemCenter.Apm.Infrastructure.Monitoring.ApmAgent.CSMConfigurationConflict.Monitor" Accessibility="Public" Enabled="true" ParentMonitorID="Health!System.Health.ConfigurationState" Target="AI!Microsoft.SystemCenter.Apm.ApmAgent" TypeID="Windows!Microsoft.Windows.2SingleEventLog2StateMonitorType" Remotable="false" Priority="Normal" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.Apm.Infrastructure.Monitoring.ApmAgent.CSMConfigurationConflict.Monitor.AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/EventDescription$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="NOConflict" MonitorTypeStateID="SecondEventRaised" HealthState="Success"/>
<OperationalState ID="Conflict" MonitorTypeStateID="FirstEventRaised" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<FirstComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</FirstComputerName>
<FirstLogName>Operations Manager</FirstLogName>
<FirstExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">.NET app monitoring</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<Or>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">34240</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">34246</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">34247</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">34248</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">34249</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">34250</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</Or>
</Expression>
</And>
</FirstExpression>
<SecondComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</SecondComputerName>
<SecondLogName>Operations Manager</SecondLogName>
<SecondExpression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">.NET app monitoring</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="UnsignedInteger">EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="UnsignedInteger">34243</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</SecondExpression>
</Configuration>
</UnitMonitor>