Collect Ironic agent ramdisk logs
This spec describes support of using syslog/systemd journal-remote to collect logs from agent ramdisk. Change-Id: I146aeae7ef24954d004d821e48fc9155fcaae2e6
This commit is contained in:
parent
107403abc4
commit
438d866294
210
specs/approved/collect-logs-from-agent-ramdisk.rst
Normal file
210
specs/approved/collect-logs-from-agent-ramdisk.rst
Normal file
@ -0,0 +1,210 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
===============================
|
||||
Collect logs from agent ramdisk
|
||||
===============================
|
||||
|
||||
https://bugs.launchpad.net/ironic/+bug/1587143
|
||||
|
||||
This spec adds support for retrieving the deployment system logs from
|
||||
agent ramdisk.
|
||||
|
||||
Problem description
|
||||
===================
|
||||
|
||||
Currently we do not have any documented mechanism to automatically retrieve
|
||||
the system logs from Bootstrap. Having access to agent ramdisk logs may be
|
||||
highly required especially after deployment failure. Collecting logs on
|
||||
remote server is common deployment thing. There are a lot of proprietary,
|
||||
opensource, standardized technologies that solve this task. Lets walk
|
||||
through linux natively supported:
|
||||
|
||||
#. Syslog: is the standardized protocol for message logging, described in
|
||||
`RFC. <https://tools.ietf.org/html/rfc5424>`_ All distros supports
|
||||
syslog in different implementations ``rsyslogd``, ``syslogd``,
|
||||
``syslog-ng``
|
||||
|
||||
#. Systemd `journal-remote <https://fedoraproject.org/wiki/Changes/Remote_Journal_Logging>`_:
|
||||
systemd tool to send/receive journal messages over the network.
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
|
||||
The proposed implementations is about adding documentation that helps
|
||||
Operators to build agent ramdisk with collecting logs feature. On top of
|
||||
syslog and systemd journal-remote technologies.
|
||||
|
||||
|
||||
Changes in IPA
|
||||
--------------
|
||||
|
||||
A new kernel parameter is added ``use_syslog``.
|
||||
|
||||
#. ``use_syslog`` (Boolean): Whether IPA should send the
|
||||
logs to syslog or not. Defaults to "False".
|
||||
|
||||
Changes in Ironic
|
||||
-----------------
|
||||
|
||||
New pxe_append parameters are added ``use_syslog`` and ``syslog_server``
|
||||
in ``[agent]`` section.
|
||||
|
||||
#. ``use_syslog`` boolean): Whether IPA should send the
|
||||
logs to syslog or not. Defaults to "False".
|
||||
|
||||
#. ``syslog_server`` (string): IP address or DNS name of syslog server
|
||||
to send system logs to. Defaults to "IP address of ironic-conductor node."
|
||||
The variable may be used to configure ``rsyslogd`` or ``syslog`` or any
|
||||
other syslog server implementation.
|
||||
|
||||
Changes in agent ramdisk
|
||||
------------------------
|
||||
|
||||
Bootstrap should support remote logging via syslog/systemd. All agent ramdisk
|
||||
changes are related to logging tool configuration (rsyslogd, syslogd,
|
||||
journal-remote). The logging service should be started right after
|
||||
networking service to make sure that we send all logs from OpenStack services.
|
||||
On ``Collector`` side (ironic-conductor) we receive messages from
|
||||
``Originator`` (agent ramdisk) and place the according to local rules.
|
||||
It may be directory on the
|
||||
filesystem: /var/log/remote/ironic/<node_uuid>/<log_filename>
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
|
||||
Implement logs collecting mechanism in Ironic and IPA as it described in
|
||||
https://review.openstack.org/323511
|
||||
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
State Machine Impact
|
||||
--------------------
|
||||
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
|
||||
None
|
||||
|
||||
Client (CLI) impact
|
||||
-------------------
|
||||
|
||||
None
|
||||
|
||||
RPC API impact
|
||||
--------------
|
||||
|
||||
None
|
||||
|
||||
Driver API impact
|
||||
-----------------
|
||||
|
||||
None
|
||||
|
||||
Nova driver impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Ramdisk impact
|
||||
--------------
|
||||
|
||||
Support will be added to ramdisk build tools, such as ``diskimage-builder``
|
||||
and image building scripts under IPA repository to build ramdisks with remote
|
||||
logging support.
|
||||
|
||||
Security impact
|
||||
---------------
|
||||
|
||||
None.
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
|
||||
None.
|
||||
|
||||
Scalability impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Performance Impact
|
||||
------------------
|
||||
|
||||
None
|
||||
|
||||
Other deployer impact
|
||||
---------------------
|
||||
|
||||
Deployer chooses which mechanism for collecting logs should be used.
|
||||
General changes to agent ramdisk described at `Changes in agent ramdisk`_
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
|
||||
None
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
|
||||
Primary assignee:
|
||||
lucasagomes <lucasagomes@gmail.com>
|
||||
vsaienko <vsaienko@mirantis.com>
|
||||
|
||||
Other contributors:
|
||||
|
||||
|
||||
Work Items
|
||||
----------
|
||||
|
||||
* Add documentation that describes how to configure ``Collector`` on
|
||||
ironic-conductor, and ``Originator`` in ironic agent ramdisk on top of
|
||||
rsyslogd or syslogd or journal-remote.
|
||||
|
||||
* Add an examples of building most popular images (coreos, tinyipa) with
|
||||
syslog support. New ``dib`` element will be added as well.
|
||||
|
||||
* Integrate configuring ``Collector`` on devstack host.
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
None
|
||||
|
||||
Testing
|
||||
=======
|
||||
|
||||
Collecting logs from agent ramdisk will be configured on gate jobs. The
|
||||
directory with logs from agent ramdisk will be archived and available in the
|
||||
jobs artefacts.
|
||||
|
||||
Upgrades and Backwards Compatibility
|
||||
====================================
|
||||
|
||||
None.
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
|
||||
Documentation will be provided about how to configure syslog ``Collector``
|
||||
to receive and store logs from ``Originator``.
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
None.
|
1
specs/not-implemented/collect-logs-from-agent-ramdisk.rst
Symbolic link
1
specs/not-implemented/collect-logs-from-agent-ramdisk.rst
Symbolic link
@ -0,0 +1 @@
|
||||
../approved/collect-logs-from-agent-ramdisk.rst
|
Loading…
Reference in New Issue
Block a user