[Openstack] [Dashboard] Server error during logging

Piotr Kopec pkopec17 at gmail.com
Mon Aug 26 18:43:12 UTC 2013


Hello folks;

I have problem with dashboard. I enter login and password, page is loading
for a while (about 10s) and then I receive an Server Error.
I managed to log in once just after dashboard installation, after that I
have been doing some admin stuff with Nova only and from that moment
dashboard does not work properly.

Logs below:

[root at openstack182 ~]# tail /var/log/httpd/access_log
10.132.28.31 - - [26/Aug/2013:20:15:58 +0200] "GET /dashboard
HTTP/1.1" 302 20 "http://10.133.31.136/dashboard" "Mozilla/5.0 (X11;
Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:15:58 +0200] "GET /dashboard/admin/
HTTP/1.1" 500 750 "http://10.133.31.136/dashboard" "Mozilla/5.0 (X11;
Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:19:05 +0200] "GET /dashboard/
HTTP/1.1" 200 747 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64;
rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:19:07 +0200] "POST
/dashboard/auth/login/ HTTP/1.1" 302 20
"http://10.133.31.136/dashboard/" "Mozilla/5.0 (X11; Ubuntu; Linux
x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:19:08 +0200] "GET /dashboard
HTTP/1.1" 302 20 "http://10.133.31.136/dashboard/" "Mozilla/5.0 (X11;
Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:19:08 +0200] "GET /dashboard/admin/
HTTP/1.1" 500 750 "http://10.133.31.136/dashboard/" "Mozilla/5.0 (X11;
Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:26:10 +0200] "GET /dashboard
HTTP/1.1" 200 746 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64;
rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:26:13 +0200] "POST
/dashboard/auth/login/ HTTP/1.1" 302 20
"http://10.133.31.136/dashboard" "Mozilla/5.0 (X11; Ubuntu; Linux
x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:26:13 +0200] "GET /dashboard
HTTP/1.1" 302 20 "http://10.133.31.136/dashboard" "Mozilla/5.0 (X11;
Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"
10.132.28.31 - - [26/Aug/2013:20:26:13 +0200] "GET /dashboard/admin/
HTTP/1.1" 500 750 "http://10.133.31.136/dashboard" "Mozilla/5.0 (X11;
Ubuntu; Linux x86_64; rv:23.0) Gecko/20100101 Firefox/23.0"

[root at openstack182 ~]# tail /var/log/httpd/error_log
[Mon Aug 26 20:14:11 2013] [notice] Digest: generating secret for
digest authentication ...
[Mon Aug 26 20:14:11 2013] [notice] Digest: done
[Mon Aug 26 20:14:11 2013] [notice] Apache/2.2.15 (Unix) DAV/2
mod_ssl/2.2.15 OpenSSL/1.0.0-fips mod_wsgi/3.2 Python/2.6.6 configured
-- resuming normal operations
[Mon Aug 26 18:18:47 2013] [error] DeprecationWarning: The SECRET_KEY
setting must not be empty.DeprecationWarning: Translations in the
project directory aren't supported anymore. Use the LOCALE_PATHS
setting instead.DeprecationWarning: The syntax for the url template
tag is changing. Load the `url` tag from the `future` tag library to
start using the new behavior.DeprecationWarning: Authentication
backends without a `supports_inactive_user` attribute are deprecated.
Please define it in <class 'openstack_auth.backend.KeystoneBackend'>.
[Mon Aug 26 20:18:47 2013] [notice] caught SIGTERM, shutting down
[Mon Aug 26 20:18:48 2013] [notice] SELinux policy enabled; httpd
running as context unconfined_u:system_r:httpd_t:s0
[Mon Aug 26 20:18:48 2013] [notice] suEXEC mechanism enabled (wrapper:
/usr/sbin/suexec)
[Mon Aug 26 20:18:48 2013] [notice] Digest: generating secret for
digest authentication ...
[Mon Aug 26 20:18:48 2013] [notice] Digest: done
[Mon Aug 26 20:18:48 2013] [notice] Apache/2.2.15 (Unix) DAV/2
mod_ssl/2.2.15 OpenSSL/1.0.0-fips mod_wsgi/3.2 Python/2.6.6 configured
-- resuming normal operations

Keystone log does not shows any authentication problem.

Conf files:

[root at openstack182 ~]# cat /etc/openstack-dashboard/local_settings
import os

from django.utils.translation import ugettext_lazy as _

from openstack_dashboard import exceptions

DEBUG = False
TEMPLATE_DEBUG = DEBUG
# Set SSL proxy settings:# For Django 1.4+ pass this header from the
proxy after terminating the SSL,# and don't forget to strip it from
the client's request.# For more information see:#
https://docs.djangoproject.com/en/1.4/ref/settings/#secure-proxy-ssl-header#
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTOCOL', 'https')
# If Horizon is being served through SSL, then uncomment the following
two# settings to better secure the cookies from security
exploits#CSRF_COOKIE_SECURE = True#SESSION_COOKIE_SECURE = True
# Default OpenStack Dashboard configuration.
HORIZON_CONFIG = {
    'dashboards': ('project', 'admin', 'settings',),
    'default_dashboard': 'project',
    'user_home': 'openstack_dashboard.views.get_user_home',
    'ajax_queue_limit': 10,
    'auto_fade_alerts': {
        'delay': 3000,
        'fade_duration': 1500,
        'types': ['alert-success', 'alert-info']
    },
    'help_url': "http://docs.openstack.org",
    'exceptions': {'recoverable': exceptions.RECOVERABLE,
                   'not_found': exceptions.NOT_FOUND,
                   'unauthorized': exceptions.UNAUTHORIZED},
}
# Specify a regular expression to validate user passwords.#
HORIZON_CONFIG["password_validator"] = {#     "regex": '.*',#
"help_text": _("Your password does not meet the requirements.")# }
# Disable simplified floating IP address management for deployments
with# multiple floating IP pools or complex network requirements.#
HORIZON_CONFIG["simple_ip_management"] = False
# Turn off browser autocompletion for the login form if so desired.#
HORIZON_CONFIG["password_autocomplete"] = "off"

LOCAL_PATH = os.path.dirname(os.path.abspath(__file__))
# Set custom secret key:# You can either set it to a specific value or
you can let horizion generate a# default secret key that is unique on
this machine, e.i. regardless of the# amount of Python WSGI workers
(if used behind Apache+mod_wsgi): However, there# may be situations
where you would want to set this explicitly, e.g. when# multiple
dashboard instances are distributed on different machines (usually#
behind a load-balancer). Either you have to make sure that a session
gets all# requests routed to the same dashboard instance or you set
the same SECRET_KEY# for all of them.# from horizon.utils import
secret_key# SECRET_KEY =
secret_key.generate_or_read_from_file(os.path.join(LOCAL_PATH,
'.secret_key_store'))
# We recommend you use memcached for development; otherwise after
every reload# of the django development server, you will have to login
again. To use# memcached set CACHES to something like# CACHES = {#
'default': {#        'BACKEND' :
'django.core.cache.backends.memcached.MemcachedCache'#
#'LOCATION' : '127.0.0.1:11211',#    }#}

CACHES = {
    'default': {
        'BACKEND' : 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION' : '192.168.0.1:11211'
    }
}
# Send email to the console by default
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'# Or
send them to /dev/null#EMAIL_BACKEND =
'django.core.mail.backends.dummy.EmailBackend'
# Configure these for your outgoing email host# EMAIL_HOST =
'smtp.my-company.com'# EMAIL_PORT = 25# EMAIL_HOST_USER =
'djangomail'# EMAIL_HOST_PASSWORD = 'top-secret!'
# For multiple regions uncomment this configuration, and add
(endpoint, title).# AVAILABLE_REGIONS = [#
('http://cluster1.example.com:5000/v2.0', 'cluster1'),#
('http://cluster2.example.com:5000/v2.0', 'cluster2'),# ]

OPENSTACK_HOST = "192.168.0.1"
OPENSTACK_KEYSTONE_URL = "http://%s:5000/v2.0" % OPENSTACK_HOST
OPENSTACK_KEYSTONE_DEFAULT_ROLE = "Member"
# Disable SSL certificate checks (useful for self-signed
certificates):# OPENSTACK_SSL_NO_VERIFY = True
# The OPENSTACK_KEYSTONE_BACKEND settings can be used to identify the#
capabilities of the auth backend for Keystone.# If Keystone has been
configured to use LDAP as the auth backend then set# can_edit_user to
False and name to 'ldap'.## TODO(tres): Remove these once Keystone has
an API to identify auth backend.
OPENSTACK_KEYSTONE_BACKEND = {
    'name': 'native',
    'can_edit_user': True,
    'can_edit_project': True
}

OPENSTACK_HYPERVISOR_FEATURES = {
    'can_set_mount_point': False,

    # NOTE: as of Grizzly this is not yet supported in Nova so enabling this
    # setting will not do anything useful
    'can_encrypt_volumes': False
}
# The OPENSTACK_QUANTUM_NETWORK settings can be used to enable
optional# services provided by quantum.  Currently only the load
balancer service# is available.
OPENSTACK_QUANTUM_NETWORK = {
    'enable_lb': False
}
# OPENSTACK_ENDPOINT_TYPE specifies the endpoint type to use for the
endpoints# in the Keystone service catalog. Use this setting when
Horizon is running# external to the OpenStack environment. The default
is 'internalURL'.#OPENSTACK_ENDPOINT_TYPE = "publicURL"
# The number of objects (Swift containers/objects or images) to
display# on a single page before providing a paging element (a "more"
link)# to paginate results.
API_RESULT_LIMIT = 1000
API_RESULT_PAGE_SIZE = 20
# The timezone of the server. This should correspond with the
timezone# of your entire OpenStack installation, and hopefully be in
UTC.
TIME_ZONE = "UTC"

LOGGING = {
    'version': 1,
    # When set to True this will disable all logging except
    # for loggers specified in this configuration dictionary. Note that
    # if nothing is specified here and disable_existing_loggers is True,
    # django.db.backends will still log unless it is disabled explicitly.
    'disable_existing_loggers': False,
    'handlers': {
        'null': {
            'level': 'DEBUG',
            'class': 'django.utils.log.NullHandler',
        },
        'console': {
            # Set the level to "DEBUG" for verbose output logging.
            'level': 'INFO',
            'class': 'logging.StreamHandler',
        },
    },
    'loggers': {
        # Logging from django.db.backends is VERY verbose, send to null
        # by default.
        'django.db.backends': {
            'handlers': ['null'],
            'propagate': False,
        },
        'requests': {
            'handlers': ['null'],
            'propagate': False,
        },
        'horizon': {
            'handlers': ['console'],
            'propagate': False,
        },
        'openstack_dashboard': {
            'handlers': ['console'],
            'propagate': False,
        },
        'novaclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'keystoneclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'glanceclient': {
            'handlers': ['console'],
            'propagate': False,
        },
        'nose.plugins.manager': {
            'handlers': ['console'],
            'propagate': False,
        }
    }
}

[root at openstack182 ~]# cat /etc/sysconfig/memcached
PORT="11211"USER="memcached"
MAXCONN="1024"
CACHESIZE="64"OPTIONS="-l 192.168.0.1"

Thanks for replies.

Regards.

Piotr.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack/attachments/20130826/5364b6d5/attachment.html>


More information about the Openstack mailing list