К основному контенту

Weblogic Diagnostic Framework Run Bash Script (reboot managed server) - (bad practices)

Вообщем переодически сервер дохнет по: The WebLogic Server encountered a critical failure java.lang.OutOfMemoryError: Metaspace Reason: There is a panic condition in the server. The server is configured to exit on panic И хотя это гавно пишет типа  Reason: There is a panic condition in the server. The server is configured to exit on panic чёт ни хуя он ни куда не exit.... Вообщем т.к разбираться с тем чем он жрётся нет ни времени ни желания (оно обязательно появится)... как вариант можно приделать костыль... костыль будет заключаться в ребуте сервера при возникновении этой ошибки. Что значит для этого надо... Желания и понимание что так жить нельзя, и вообще... Делаем новый модуль называем скажем:  Reboot-OOMMetaSpace Идём в в новый модуль делаем Policy: Называем его OOM-Metaspace и говорит что это Server log: Жмём next в Configuration Policy пишем: log.logMessage.contains('java.lang.OutOfMemoryError: Metaspace')

Oracle Access Manager 11gR2 OAMAuthnCookie parser (Webgate11g) OAMSDK

В догонку к этому посту
http://eugenpolyakov.blogspot.ru/2013/05/obssocookie-parser.html

Только парсить будем OAMAuthnCookie и webgate будет 11.
Первое что понадобится Oracle Access Manager Access SDK 11.1.2.3.0 его можно скачать тут:
http://www.oracle.com/technetwork/middleware/id-mgmt/downloads/oid-11gr2-2104316.html

Далее по шагам:
1. mkdir -p /opt/oracle/OAMSDK/OAMCookie
2. vi cookieParser.java
import java.util.*;
import oracle.security.am.asdk.*;

public class cookieParser {
                public static void main(String[] arg) {
                        String cookie = arg[0];
                        try {
                        AccessClient ac = AccessClient.createDefaultInstance();
                        UserSession sess = new UserSession(cookie,true);
                        System.out.println("==============================");
                        System.out.println("user: " + sess.getUserIdentity());
                        System.out.println("last use: " + new Date(sess.getLastUseTime()*1000L));
                        System.out.println("getLevel(): " + sess.getLevel());
                        System.out.println("getLocation(): " + sess.getLocation());
                        System.out.println("getSessionToken(): " + sess.getSessionToken());
                        System.out.println("getStartTime(): " + new Date(sess.getStartTime()*1000L));
                        System.out.print("Session status: ");
                        String status="";
                        switch (sess.getStatus()) {
                                case 0: status = "AWAITINGLOGIN"; break;
                                case 1: status = "LOGGEDIN";break;
                                case 2: status = "LOGGEDOUT";break;
                                case 3: status = "LOGINFAILED";break;
                                case 4: status = "EXPIRED";          break;
                        }

                        System.out.println(status);
                        ac.shutdown();
                        } catch (Exception ex) {
                        ex.printStackTrace();
                        }
        }
}

3. В этой же директории распаковываем OAMSDK
unzip V75953-01.zip

4. . $DOMAIN_HOME/bin/setDomainEnv.sh (тут не забыть точку в начале)
5. cd /opt/oracle/OAMSDK/OAMCookie
export CLASSPATH=`pwd`/oamasdk-api.jar:.:$CLASSPATH
6. cp /opt/oracle/middleware/user_projects/domains/oamtst_domain/output/test1_WG12/cwallet.sso ./config/
 cp /opt/oracle/middleware/user_projects/domains/oamtst_domain/output/test1_WG12/ObAccessClient.xml . 
(т.е копируем cwallet.sso и ObAccessClient.xml с webgate )
7. cd /opt/oracle/OAMSDK/OAMCookie
8. /opt/oracle/java/latest/bin/javac cookieParser.java
9. /opt/oracle/java/latest/bin/java cookieParser <OAMAuthnCookie>
user: cn=lalalal
last use: Tue May 26 13:34:11 MSK 2015
getLevel(): 2
getLocation(): 1.1.1.1
getSessionToken(): z807QV4clTwGpg/+M3d24o1wp4+J55G4Tl0wgU4Ei7N8Yz/XBJ/NpPHgfOgntYD7/7TW+NDhdMnj7788svkFJJ1MzpoG7ipQvhOyE4JVNKU5OuOzIxIbpyoKQbDDgCZcqkz5qktv1faPbuTgotvLlo0IbjiHJl2Gvp9/AvkcjS2EauGH6P6jea0WQdO5LkszZHwYxrPKpnQMYYd7UoMGPhKyodSym1TBokc/47vQQ1VjJRQvXF6n6gTHD8auA5U+SJUm/9dGPOeryLVylge9+7cKfUnJRqtEVKjNQhlLMn7OTKTYleDQ==
getStartTime(): Tue May 26 13:34:11 MSK 2015

Session status: LOGGEDIN

OAMAuthnCookie можно вытащить с помощью Firebug или чего угодно после захода на какой нить Protected ресурс.



P.S Возможные ошибки:


1. OAMAGENT-02081: No agent key entry found due to JPS config error or wallet file does not exist or contains no agent key.

Говорит о том что не найден "правильный файл" cwallet.sso
Решается пунктом 6 данного поста т.е:
6. cp $DOMAIN_HOME/output/test1_WG12/cwallet.sso ./config (т.е копируем cwallet.sso и ObAccessClient.xml с webgate в директорию /opt/oracle/OAMSDK/OAMCookie)

2. Exception in thread "main" java.lang.NoSuchFieldError: PROPERTY_RESOURCE_ACTIONS_SEED
at oracle.security.jps.internal.policystore.ldap.JpsLdapAttributeMapper.<init>(JpsLdapAttributeMapper.java:1368)
at oracle.security.jps.internal.policystore.rdbms.JpsDBDataManager.<clinit>(JpsDBDataManager.java:526)

Такая херня может случаться, я уже не помню почему но с этом случае начните всё сначала=)

3. WLS ManagedService is not up running. Fall back to use system properties for configuration.
May 26, 2015 1:55:37 PM oracle.security.am.asdk.impl.Configuration readAgentKey
SEVERE: JPS operation failure while reading key from wallet
oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized..
Caused by: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized.
May 26, 2015 1:55:37 PM oracle.security.am.asdk.AccessClient initialize
SEVERE: Oracle Access SDK initialization failed. 
oracle.security.am.asdk.AccessException: OAMAGENT-02082: JPS operation failure while reading key from wallet
Caused by: oracle.security.jps.service.idstore.IdentityStoreException: JPS-00056: Failed to create identity store service instance idstore.ldap.provider:idstore.ldap. Reason: weblogic.security.service.SecurityServiceRuntimeException: The WLS ManagementService has not been initialized..

Данная ошибка может появлятся если в cookieParser.java написано
System.setProperty("oracle.security.jps.config","/opt/oracle/middleware/user_projects/domains/oamtst_domain/config/fmwconfig/jps-config.xml");

или при вызове указали путь к этому jps-config.xml...

Для того что бы всё работало верно нужно использовать jps-config.xml из OAMSDK!

Комментарии

Популярные сообщения из этого блога

Oracle Cloud Control 12c/13c modify target setup Life Cycle Status (emcli, multiple targets)

https://pardydba.wordpress.com/2012/10/17/how-and-why-you-should-set-target-lifecycle-status-properties-in-em12c/+&cd=1&hl=ru&ct=clnk&gl=ru Итак есть куча таргетов middleware, host и т.д ... Менять руками  LifeCycle Status для всех таргетов внутри middleware это геморой поэтому сделать надо это скриптом. По ссылке выше предлагается это сделать для хостов. Ниже будет описано как это сделать для всех таргетов. В краце инструкция такова: Ставим emcli: oracle@omshost$ export JAVA_HOME=$OMS_HOME/../jdk16/jdk oracle@omshost$ export PATH=$JAVA_HOME/bin:$PATH oracle@omshost$ export ORACLE_HOME=$OMS_HOME oracle@omshost$ cd $ORACLE_HOME oracle@omshost$ mkdir emcli oracle@omshost$ java -jar $ORACLE_HOME/sysman/jlib/emclikit.jar client -install_dir=$ORACLE_HOME/emcli Oracle Enterprise Manager 12c Release 2. Copyright (c) 1996, 2012 Oracle Corporation. All rights reserved. EM CLI client-side install completed successfully. oracle@omshost$ $ORACLE_HOME/emcli/emcli setup -u

Backup elasticsearch with curator.

Сжато кратко, в падлу много расписывать... Вообщем пробуем забэкапить elasticsearch 5.0 с помощью curator 4.2 Что имеем: 2 ноды 1) vapp-cn1 2) vapp-cn2 Репозиторий для бэкапа есть на обоих хостах находится в /backup/el_backup/front права для пользователя под который запущен elasticsearch есть, на обоих нодах в конфиге elasticsearch.yml указанно: path.repo: ["/backup/el_backup/front"] Настройка curator, бэкапить будем все индексы поэтому: 1. snapshot-script.yml actions:   1:     action: snapshot     description: >-       Snapshot logstash- prefixed indices older than 1 day (based on index       creation_date) with the default snapshot name pattern of       'curator-%Y%m%d%H%M%S'.  Wait for the snapshot to complete.  Do not skip       the repository filesystem access check.  Use the other options to create       the snapshot.     options:       repository: elbackup       # Leaving name blank will result in the default 

Oracle SOA email notification или какого х.. оно не работает.

От делать нех задокументируем.... Вообщем то всё рассписанно по ссылке: http://www.rubiconred.com/blog/email-notification-with-soa-suite-11g/ Ссылка походу сдохла!!! Придётся на всякий случай записать пока не забыл... Собственно основные настройки делаются на этой странице: Тут будет текст дабы не плодить картинок: MailAccessProtocol : POP3 RetryLimit : -1 MailDelFreq : 600 AutoDelete : not check Debug : not check CheckMailFreq : 30 ReceiveFolder: INBOX OutgoingMailServer :  mail4.ru OutgoingMailServerPort : 25 OutgoingMailServerSecurity : None OutgoingDefaultFromAddr :  pklmn@mail.ru OutgoingPassword: вроде ни чё не трогал... IncomingMailServer: mail3.ru IncomingMailServerPort: 110 IncomingMailServerSSL: not check IncomingMailIDs: pklmn@mail.ru IncomingUserIDs: pklmn IncomingUserPasswords: тут настраиваем пароль При настройке рекомендуется обращать внимания на всплывающие подсказки например: Sender Address должен выглядеть как EMAIL :ptm