SUSE Manager/osa-dispatcher

From MicroFocusInternationalWiki
Jump to: navigation, search

Introduction to osad on SUSE Manager

osad

osad is a client-side service written in Python. This service responds to pings and runs rhn_check when commanded to by osa-dispatcher.

osa-dispatcher

osa-dispatcher is a server-side service written in Python. This service checks when an osad instance on a SUSE Manager Server client requires to be pinged or if it must run an rhn_check and then dispatches a message commanding it to do so.

jabberd

jabberd is a server-side service written in C that implements the XMPP protocol. osad and osa-dispatcher both connect to this daemon to exchange messages. jabberd also handles authentication between server and client.

osa-dispatcher, osad, and jabberd in Practice

osa-dispatcher on SUSE Manager runs a database query periodically that checks to see if there are any clients which are overdue for a ping. If clients requiring a ping are found, osa-dispatcher dispatches a message through jabberd to the osad instances running on the clients it needs a response from. The osad instances then respond to the message sent through the jabberd server. osa-dispatcher receives the response, and marks the client as 'online'. If osa-dispatcher does not receive a response from an osad instance on the client within the a timeout range, it is marked 'offline'.

The osa-dispatcher daemon also performs a second periodic query to see if there are any clients which have actions that need to be performed. If an action has been scheduled from either the WebUI or the command line, osa-dispatcher dispatches a message through jabberd to the osad instance running on the client to execute the rhn_check command. rhn_check then takes over performing the scheduled action.


SUSE Manager osa-dispatcher Diagram

Adjusting the osa-dispatcher.notify_threshold parameter

The osa-dispatcher.notify_threshold option is used to adjust the maximum number of osad clients that are simultaneously served actions by the SUSE Manager Server.

The notifiy_threshold parameter is required as actions performed on clients configured with the osad contact method are performed instantly. Issues will occur when an action is scheduled on a high number of clients at the same time, as a result the SUSE Manager Server can then be overloaded by the flood of clients connecting. Setting this parameter to 100 for example will allow osa-dispatcher to serve only 100 clients at once and queue up the remaining actions for the rest of the clients requiring this action at a later time.

The current SUSE notifiy_threshold parameter is set to unlimited by default in SUSE Manager 2.1, but it is recommended to change this value to 100. For SUSE Manager 3 this parameter will be set to a limited value by default.

Changing the default value

The default settings are located in:

/usr/share/rhn/config-defaults/rhn_osa-dispatcher.conf

Example rhn_osa-dispatcher.conf file:

   # Default log file
   log_file        = /var/log/rhn/osa-dispatcher.log
   # SSL cert
   osa_ssl_cert  = /usr/share/rhn/RHNS-OSA-CERT
   # Jabber server to connect to
   jabber_server   = jabberserver.example.org:5234
   poll_interval = 5
   # number of systems that can run actions until
   # osad-dispatcher stops notifying more clients.
   # current default is unlimited
   notify_threshold =


To override the default value of an unlimited threshold add the osa-dispatcher.notify_threshold = 100 parameter to the following file:

/etc/rhn/rhn.conf

Note

It should be noted that adjusting the notify_threshold parameter to a value higher than that of Apache httpd's MaxClients can result in timeouts occurring on clients connecting to SUSE Manager as latter also limits the number of simultaneous connections. For more information see also the advanced Apache and Tomcat tuning instructions.

References

https://fedorahosted.org/spacewalk/wiki/OsadHowTo