Hauptmenü

Logging

Begonnen von otto001, 18.04.2018 15:58:52

⏪ vorheriges - nächstes ⏩

otto001

Hallo,

ich bin dabei, eine kix-Instanz auf einem debian aufzusetzen.
Um ein wenig besser zu verstehen, warum manche Dinge nicht so funktionieren, wie ich es möchte, hab ich versucht, logging zu aktivieren.
Auszug aus der Config.pm:
$Self->{LogModule} = 'Kernel::System::Log::File';
    $Self->{'LogModule::LogFile'} = '/opt/kix/var/log/kix.log';
    $Self->{'LogModule::MinimumLogLevel'} = 'Debug';


Kix selbst läuft aus /opt/kix und das Verzeichnis /opt/kix/var/log/ existiert ebenfalls.
Nur wird leider nichts in ein entsprechendes Logfile geschrieben, im error.log des Apachen hab ich auch nichts, nur immer wieder:
Config.pm: Subroutine Load redefined at /opt/kix//Kernel/Config.pm line 17.

Kennt das jemand? Wäre wirklich froh über Hinweise!

Cheers,
Otto

wucherpfennig

Hi Otto


Kannst du mal die komplette Config posten? Es scheint mir, als ob du einen Syntaxfehler drin hättest...


Beste Grüsse


wuchferpennig

otto001

Hi,

sehr gerne - die Passwörter und domain-Infos habe ich geschwärzt,

Cheers,
Otto

package Kernel::Config;

use strict;
use warnings;
use utf8;

sub Load {
    my $Self = shift;

    # ---------------------------------------------------- #
    # database settings                                    #
    # ---------------------------------------------------- #

    # The database host
    $Self->{DatabaseHost} = 'localhost';

    # The database name
    $Self->{Database} = 'kix17';

    # The database user
    $Self->{DatabaseUser} = 'kix';

    # The password of database user. You also can use bin/kix.Console.pm
    # for crypted passwords
    $Self->{DatabasePw} = 'xxx';

    # The database DSN
    $Self->{DatabaseDSN} = "DBI:Pg:dbname=$Self->{Database};host=$Self->{DatabaseHost};";

    # ---------------------------------------------------- #
    # insert your own config settings "here"               #
    # config settings taken from Kernel/Config/Defaults.pm #
    # ---------------------------------------------------- #
    $Self->{CheckMXRecord} = 0;
    $Self->{SecureMode} = 1;
    $Self->{FQDN} = 'xxx';
    $Self->{LogModule} = 'Kernel::System::Log::File';
    $Self->{'LogModule::LogFile'} = '/opt/kix/var/log/kix.log';
    $Self->{'LogModule::MinimumLogLevel'} = 'Debug';

    # ---------------------------------------------------- #

    # ---------------------------------------------------- #
    # data inserted by installer                           #
    # ---------------------------------------------------- #
    # $DIBI$
    # $$KIX4UCS-start$$
    $Self->{'KIX4UCS::Configured'}    = 1;
    $Self->{'ProductName'}            = 'KIX';
    $Self->{'CustomerHeadline'}       = 'KIX';
    $Self->{'NotificationSenderName'} = 'xxx Helpdesk';
    $Self->{'Organization'}           = 'AT';
    $Self->{'FQDN'}                   = 'xxx';
    $Self->{'AdminEmail'}             = 'xxx';
    $Self->{'LDAPBaseDN'}             = 'dc=xxx,dc=xxx,dc=xxx';
    $Self->{'DomainMaster'}           = 'xxx';
    $Self->{'LDAPAgentGroupDN'}       = 'cn=kix-agents,cn=groups,dc=xxx,dc=co,dc=at';
    $Self->{'LDAPAdminGroupDN'}       = 'cn=kix-admins,cn=groups,dc=xxx,dc=co,dc=at';
    $Self->{'LDAPCustomerGroupDN'}    = 'cn=kix-customers,cn=groups,dc=xxx,dc=co,dc=at';
    $Self->{'LDAPBindUserDN'}         = 'uid=kixldapusr,cn=users,dc=xxx,dc=co,dc=at';
    $Self->{'LDAPBindUserPw'}         = 'xxx';

    $Self->{'SendmailModule'}         = 'Kernel::System::Email::SMTP';
    $Self->{'SendmailModule::Host'}   = 'xxx.xxx.co.at';

    # ---------------------------------------------------- #
    # LDAP auth for agents
    # ---------------------------------------------------- #
    $Self->{'AuthModule'}                   = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host'}       = $Self->{'DomainMaster'};
    $Self->{'AuthModule::LDAP::BaseDN'}     = 'cn=users,' . $Self->{'LDAPBaseDN'};
    $Self->{'AuthModule::LDAP::UID'}        = 'uid';
    $Self->{'AuthModule::LDAP::GroupDN'}    = $Self->{'LDAPAgentGroupDN'};
    $Self->{'AuthModule::LDAP::AccessAttr'} = 'memberUid';
    $Self->{'AuthModule::LDAP::UserAttr'}   = 'UID';
    $Self->{'AuthModule::LDAP::Die'}        = 0;
    $Self->{'AuthModule::LDAP::SearchUserDN'} = $Self->{'LDAPBindUserDN'};
    $Self->{'AuthModule::LDAP::SearchUserPw'} = $Self->{'LDAPBindUserPw'};
    $Self->{'AuthModule::LDAP::Params'} = {
        port    => 7389,
        timeout => 120,
        async   => 0,
        version => 3,
    };

    # --------------------------------------------------- #
    # authentication sync settings                        #
    # (enable agent data sync. after succsessful          #
    # authentication)                                     #
    # --------------------------------------------------- #
    $Self->{AuthSyncModule} = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'} = $Self->{'DomainMaster'};
    $Self->{'AuthSyncModule::LDAP::BaseDN'} = 'cn=users,' . $Self->{'LDAPBaseDN'};
    $Self->{'AuthSyncModule::LDAP::UID'} = 'uid';
    $Self->{'AuthSyncModule::LDAP::Die'} = 1;
    $Self->{'AuthSyncModule::LDAP::AccessAttr'} = 'memberUid';
    $Self->{'AuthSyncModule::LDAP::UserAttr'} = 'UID';
    $Self->{'AuthSyncModule::LDAP::UserAttr'} = 'DN';

    # Agent erhält folgende Gruppenzugehörigkeit bei erstem Login
    $Self->{'AuthSyncModule::LDAP::UserSyncInitialGroups'} = ['users','it-infrastruktur', 'it-prozesse'];
    # ---------------------------------------------------- #
    # LDAP auth for admins
    # ---------------------------------------------------- #
    $Self->{'AuthModule1'}                   = 'Kernel::System::Auth::LDAP';
    $Self->{'AuthModule::LDAP::Host1'}       = $Self->{'DomainMaster'};
    $Self->{'AuthModule::LDAP::BaseDN1'}     = 'cn=users,' . $Self->{'LDAPBaseDN'};
    $Self->{'AuthModule::LDAP::UID1'}        = 'uid';
    $Self->{'AuthModule::LDAP::GroupDN1'}    = $Self->{'LDAPAdminGroupDN'};
    $Self->{'AuthModule::LDAP::AccessAttr1'} = 'memberUid';
    $Self->{'AuthModule::LDAP::UserAttr1'}   = 'UID';
    $Self->{'AuthModule::LDAP::Die1'}        = 0;
    $Self->{'AuthModule::LDAP::SearchUserDN1'} = $Self->{'LDAPBindUserDN'};
    $Self->{'AuthModule::LDAP::SearchUserPw1'} = $Self->{'LDAPBindUserPw'};
    $Self->{'AuthModule::LDAP::Params1'} = {
        port    => 7389,
        timeout => 120,
        async   => 0,
        version => 3,
    };

    # ---------------------------------------------------- #
    # LDAP sync for agents
    # ---------------------------------------------------- #
    $Self->{'AuthSyncModule'}                    = 'Kernel::System::Auth::Sync::LDAP';
    $Self->{'AuthSyncModule::LDAP::Host'}        = $Self->{'DomainMaster'};
    $Self->{'AuthSyncModule::LDAP::BaseDN'}      = 'cn=users,' . $Self->{'LDAPBaseDN'};
    $Self->{'AuthSyncModule::LDAP::UID'}         = 'uid';
    $Self->{'AuthSyncModule::LDAP::UserAttr'}    = 'UID';
    $Self->{'AuthSyncModule::LDAP::Die'}         = 0;
    $Self->{'AuthSyncModule::LDAP::SearchUserDN'} = $Self->{'LDAPBindUserDN'};
    $Self->{'AuthSyncModule::LDAP::SearchUserPw'} = $Self->{'LDAPBindUserPw'};
    $Self->{'AuthSyncModule::LDAP::UserSyncMap'} = {
        UserFirstname => 'givenName',
        UserLastname  => 'sn',
        UserEmail     => 'mailPrimaryAddress',
        UserLogin     => 'uid',
    };
    $Self->{'AuthSyncModule::LDAP::Params'} = {
        port    => 7389,
        timeout => 120,
        async   => 0,
        version => 3,
    };

    $Self->{'AuthSyncModule::LDAP::UserSyncGroupsDefinition'} = {
        # ldap group
        $Self->{'LDAPAdminGroupDN'} => {
            # otrs group
            'admin' => {
                # permission
                rw => 1,
                ro => 1,
            },
            'faq_admin' => {
                rw => 1,
                ro => 1,
            'itsm-service' => {
                rw => 1,
                ro => 1,
            },
            'stats' => {
                rw => 1,
                ro => 1,
            },
        },
        $Self->{'LDAPAgentGroupDN'} => {
            'users' => {
                rw => 1,
                ro => 1,
            },
            'faq' => {
                rw => 1,
                ro => 1,
            },
            'itsm-configitem' => {
                rw => 1,
                ro => 1,
            },
            'itsm-service' => {
                rw => 0,
                ro => 1,
            },
            'stats' => {
                rw => 0,
                ro => 1,
            },
        }
    };

    # ---------------------------------------------------- #
    # DB fallback for agents
    # ---------------------------------------------------- #
    $Self->{'AuthModule10'} = 'Kernel::System::Auth::DB';

    # ---------------------------------------------------- #
    # LDAP auth for customers
    # ---------------------------------------------------- #
    $Self->{'Customer::AuthModule'}                   = 'Kernel::System::CustomerAuth::LDAP';
    $Self->{'Customer::AuthModule::LDAP::Host'}       = $Self->{'DomainMaster'};
    $Self->{'Customer::AuthModule::LDAP::BaseDN'}     = 'cn=users,' . $Self->{'LDAPBaseDN'};
    $Self->{'Customer::AuthModule::LDAP::UID'}        = 'uid';
    $Self->{'Customer::AuthModule::LDAP::GroupDN'}    = $Self->{'LDAPCustomerGroupDN'};
    $Self->{'Customer::AuthModule::LDAP::AccessAttr'} = 'memberUid';
    $Self->{'Customer::AuthModule::LDAP::UserAttr'}   = 'UID';
    $Self->{'Customer::AuthModule::LDAP::Die'}        = 0;
    $Self->{'Customer::AuthModule::LDAP::SearchUserDN'} = $Self->{'LDAPBindUserDN'};
    $Self->{'Customer::AuthModule::LDAP::SearchUserPw'} = $Self->{'LDAPBindUserPw'};
    $Self->{'Customer::AuthModule::LDAP::Params'} = {
        port    => 7389,
        timeout => 120,
        async   => 0,
        version => 3,
    };

    # ---------------------------------------------------- #
    # LDAP sources for customer users
    # ---------------------------------------------------- #
    $Self->{CustomerUser} = {
        #KIX-DB
        Name   => 'Database Backend',
        Module => 'Kernel::System::CustomerUser::DB',
        Params => {
             Table => 'customer_user',
        },

        CustomerKey => 'login',
        CustomerID             => 'customer_id',
        CustomerValid          => 'valid_id',
        CustomerUserListFields => [ 'first_name', 'last_name', 'email' ],
        CustomerUserSearchFields           => [ 'login', 'first_name', 'last_name', 'customer_id', 'email' ],
        CustomerUserSearchPrefix           => '*',
        CustomerUserSearchSuffix           => '*',
        CustomerUserSearchListLimit        => 3000,
        CustomerUserPostMasterSearchFields => ['email'],
        CustomerUserNameFields     => [ 'title', 'first_name', 'last_name' ],
        CustomerUserEmailUniqCheck => 1,

        CustomerCompanySupport => 1,
        CustomerCompanySupportPersonalCustomerID => 1,

        Map => [

            # note: Login, Email and CustomerID needed!
            # var, frontend, storage, shown (1=always,2=lite), required, storage-type, http-link, readonly, http-link-target, link class(es)
            [ 'UserTitle',        Translatable('Titel'),       'title',    1, 0, 'var', '', 0 ],
            [ 'UserFirstname',    Translatable('Firstname'),   'first_name', 1, 1, 'var', '', 0 ],
            [ 'UserLastname',     Translatable('Lastname'),    'last_name',  1, 1, 'var', '', 0 ],
            [ 'UserLogin',        Translatable('Username'),    'login',      1, 1, 'var', '', 0 ],
            [ 'UserPassword',     Translatable('Password'),    'pw',         0, 0, 'var', '', 0 ],
            [ 'UserEmail',        Translatable('Email'),       'email',      1, 1, 'var', '', 0 ],
            [ 'UserCustomerID',   Translatable('CustomerID'),  'customer_id', 0, 1, 'var', '', 0 ],
            [ 'UserPhone',        Translatable('Phone'),       'phone',        1, 0, 'var', '', 0 ],
            [ 'UserFax',          Translatable('Fax'),         'fax'  ,        1, 0, 'var', '', 0 ],
            [ 'UserMobile',       Translatable('Mobile'),      'mobile',       1, 0, 'var', '', 0 ],
            [ 'UserStreet',       Translatable('Street'),      'street',       1, 0, 'var', '', 0 ],
            [ 'UserZip',          Translatable('Zip'),         'zip',          1, 0, 'var', '', 0 ],
            [ 'UserCountry',      Translatable('Country'),     'country',      1, 0, 'var', '', 0 ],
            [ 'UserComment',      Translatable('Comment'),     'comments',     1, 0, 'var', '', 0 ],
            [ 'ValidID',          Translatable('Valid'),       'valid_id',     0, 1, 'int', '', 0 ],
        ],
    };
    $Self->{CustomerUser2} = {
        #LDAP
        Name   => 'UCS Customers',
        Module => 'Kernel::System::CustomerUser::LDAP',
        Params => {

            # ldap host
            Host => $Self->{'DomainMaster'},

            # ldap base dn
            BaseDN => 'cn=users,' . $Self->{'LDAPBaseDN'},

            # ldap group dn
            GroupDN => $Self->{'LDAPCustomerGroupDN'},

            # search scope (one|sub)
            SSCOPE => 'sub',

            # Net::LDAP new params (if needed - for more info see perldoc Net::LDAP
            port                        => 7389,
            version                     => 3,
            CustomerUserSearchListLimit => 2000,
            SourceCharset               => 'utf-8',
            DestCharset                 => 'utf-8',
            AlwaysFilter                => '(mailPrimaryAddress=*)',

            # search binding
            UserDN => $Self->{'LDAPBindUserDN'},
            UserPw => $Self->{'LDAPBindUserPw'},
        },

        # customer uniq id
        CustomerKey => 'uid',

        # customer #
        CustomerID                         => 'o',
        CustomerUserListFields             => [ 'cn', 'mailPrimaryAddress' ],
        CustomerUserSearchFields           => [ 'uid', 'cn', 'mailPrimaryAddress', 'o', 'l' ],
        CustomerUserPostMasterSearchFields => ['mailPrimaryAddress'],
        CustomerUserNameFields => [ 'givenname', 'sn' ],
        CustomerUserSearchPrefix => '*',
        CustomerUserSearchSuffix => '*',
        LinkedPersonKey => 'UserLogin',
        CacheTTL => 0,
                ReadOnly => 1,
        Map      => [
            # note: Login, Email and CustomerID needed!
            # var, frontend, storage, shown, required, storage-type, link, udm parameter
            [ 'UserCompany',      'Company',      'o',     1, 0, 'var', '', '', 'organisation' ],
            [ 'UserOrganisation', 'Organisation', 'ou',    1, 0, 'var', '', '', '' ],
            [ 'UserSalutation',   'Title',        'title', 1, 0, 'var', '', '', 'title' ],
            [ 'UserFirstname', 'Firstname', 'givenname',        1, 1, 'var', '', '', 'firstname' ],
            [ 'UserLastname',  'Lastname',  'sn',               1, 1, 'var', '', '', 'lastname' ],
            [ 'UserFunction',  'Function',  'businessCategory', 1, 0, 'var', '', '', '' ],
            [ 'UserLogin',     'Login',     'uid',              1, 1, 'var', '', '', 'username' ],
            [ 'UserPassword',  'Password',  'password',         1, 1, 'var', '', '', 'password' ],
            [ 'UserEmail',     'Email',     'mailPrimaryAddress', 1, 1, 'var', '', '', 'mailPrimaryAddress' ],
            [ 'UserCustomerID', 'CustomerID', 'o', 0, 1, 'var', '', '', 'organisation' ],
            [ 'UserPhone',      'Phone',      'telephoneNumber',    1, 0, 'var', '', '', 'phone' ],
            [ 'UserMobile',     'Mobile', 'mobile', 1, 0, 'var', '', '', '' ],
            [ 'UserFax',        'Fax', 'facsimileTelephoneNumber', 1, 0, 'var', '', '', '' ],
            [ 'UserStreet', 'Street', 'street',     1, 0, 'var', '', '', 'street' ],
            [ 'UserRoom',   'Room',   'roomNumber', 1, 0, 'var', '', '', 'roomNumber' ],
            [ 'UserZIP',    'ZIP',    'postalCode', 1, 0, 'var', '', '', 'postcode' ],
            [ 'UserCity',   'City',   'l',          1, 0, 'var', '', '', 'city' ],
            [ 'UserCounty', 'County', 'st', 1, 0, 'var', '', '', '' ],
            [ 'UserComment', 'Comment', 'description', 1, 0, 'var', '', '', 'description' ],
        ],

    };


    # $$KIX4UCS-end$$

    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
    #                                                      #
    # end of your own config options!!!                    #
    #                                                      #
    # ---------------------------------------------------- #
    # ---------------------------------------------------- #
}

# ---------------------------------------------------- #
# needed system stuff (don't edit this)                #
# ---------------------------------------------------- #
use strict;
use warnings;

use vars qw(@ISA);

use Kernel::Config::Defaults;
push (@ISA, 'Kernel::Config::Defaults');

# -----------------------------------------------------#

1;

wucherpfennig

Hi Otto

Ich vermute es liegt an den Zeilen ab "'AuthSyncModule::LDAP::UserSyncGroupsDefinition". Meiner Meinung nach sollte das in etwa so aussehen, kenne mich aber mit LDAP Konfigurationen nicht aus:



$Self->{'AuthSyncModule::LDAP::UserSyncGroupsDefinition'} = {
        # ldap group
        IRGENDEINKEY => $Self->{'LDAPAdminGroupDN'} => {
        ...


vgl. mal mit einer anderen Config von hier:

http://forums.otterhub.org/viewtopic.php?t=23319


otto001

Hi,

danke für die rasche Antwort.
Ich denke aber nicht, daß das das Problem ist, denn die Variable wird weiter oben gesetzt:
$Self->{'LDAPAdminGroupDN'}       = 'cn=kix-admins,cn=groups,dc=xxx,dc=co,dc=at';

Tino Voigt

Hallo otto001.

das Logging kann direkt in der SysConfig im Adminbereich konfiguriert werden.

Unter der Gruppe "Framework" in der Untergruppe "Core::Log" findet man den Schlüssel MinimumLogLevel.

In diesem Schlüssel kann das gewünschte LogLevel ausgewählt werden.

Viele Grüße, Tino Voigt

otto001

Hallo Tino,

vielen Dank für die rasche Antwort!
Leider klappt das trotz Einstellung von debug nicht wirklich.
Ich habe daneben noch LogModule::LogFile auf /opt/kix/var/log/kix.log gesetzt (hier wird leider nichts geschrieben).
Es ist auch nicht möglich in der Oberfläche den modus von File auf syslog zu setzen (nach drücken von Übernehmen springt die Anzeige wieder auf File zurück).
Da wir einen zentralen Log-Server betreiben, wäre ein logging per syslog vorteilhaft...

Wir haben hier eine Installation unter UCS, also ziemlich straight-forward.

Cheers,
Otto

Tino Voigt

Hallo otto001,

kannst du um den Fehler einzugrenzen, den Eintrag der SysConfig von LogModule::LogFile wieder auf den Standardwert: <KIX_CONFIG_Home>/var/log/kix.log und den Schlüssel MinimumLogLevel auf "notice" stellen?

Wird dann etwas geloggt?

Viele Grüße, Tino Voigt

Tino Voigt

Hallo otto001,

kannst du folgende Einträge aus der Config.pm auskommentieren:

$Self->{LogModule} = 'Kernel::System::Log::File';
$Self->{'LogModule::LogFile'} = '/opt/kix/var/log/kix.log';
$Self->{'LogModule::MinimumLogLevel'} = 'Debug';

Viele Grüße, Tino Voigt