Features/Matahari

= Matahari =

Summary
Matahari is a collection of APIs accessible over remote and local interfaces for system monitoring and management. Matahari APIs are served via a collection of agents. Matahari also includes a framework for adding new agents and APIs.

Matahari is a Red Hat community project.

Owner

 * Name: Jaroslav Reznik, Andrew Beekhof and the Matahari team


 * Email: jreznik@redhat.com, andrew@beekhof.net and matahari@lists.fedorahosted.org

Current status

 * Targeted release: Fedora 16
 * Last updated: 2011-07-26
 * Percentage of completion: 100%

Detailed Description
The initial set of implemented agents in the Fedora 16 timeframe is:
 * Host - An agent for viewing and controlling hosts
 * View basic host information such as OS, hostname, CPU, RAM, load average, and more.
 * Host control (shutdown, reboot)
 * Networking - An agent for viewing and controlling network devices
 * Get a list of available network interfaces and information about them, such as IP and MAC addresses
 * Start and stop network interfaces
 * Services - An agent for viewing and controlling system services
 * List configured services
 * Start and stop services
 * Monitor the status of services
 * More agents will come soon (Logging, Generic configuration agent, and more)

Matahari supports access to its APIs over two different transports, QMF and D-Bus. QMF provides remote access over a Qpid bus. D-Bus is used as a standard and well known local system bus.

The plan is to ship a stable and easily deployable version Matahari for Fedora users. The aim of this feature is to make Fedora the prominent consumer and showcase of Matahari, for both users/administrators and developers.

Upstream website: http://matahariproject.org/

Benefit to Fedora

 * Provides easy deployment of Fedora to cloud and clustered environments
 * Allows for local and remote management of Fedora systems
 * Provides well defined interfaces to a Fedora system for administrators (scripiting, maintanance) and for 3rd party Matahari client developers
 * Allows the upstream Matahari project to use Fedora as a development platform
 * Provides the core for future system configuration tools (replacement of s-c-*)

Scope
The scope of Matahari is limited in that we are now mostly working on the bottom layer, which is the agents side as opposed to implementing applications that use these APIs.

How To Test
  Install Matahari agent  Start Matahari broker  Start Matahari agent  Test D-Bus interface
 * 1) yum install matahari\*
 * 1) systemctl start matahari-broker.service
 * 1) systemctl start matahari- .service

For example get hostname from the Host agent $ dbus-send --system --dest=org.matahariproject.Host --print-reply /org/matahariproject/Host org.freedesktop.DBus.Properties.Get string:org.matahariproject.Host string:hostname Result should contain your hostname method return sender=:1.73 -> dest=:1.85 reply_serial=2 variant      string "localhost.localdomain"  Test QMF interface $ qmf-tool localhost:49000 qmf: list agents QMF Agents: Id Vendor               Product  Instance                              Epoch

=
=====================================================================  2   matahariproject.org  host     d0175049-b186-41a7-a10b-11589107c20a  4 3  matahariproject.org  net      97e02c72-8ac4-4fd5-901b-77574af3d45c  2 4  matahariproject.org  service  bbf07d98-be32-4046-bf7b-c1d162b0611d  2 To verify the agents actually work we'll do some interactions with one. qmf: set default 2 Default Agent: matahariproject.org:host:d0175049-b186-41a7-a10b-11589107c20a qmf: query Host org.matahariproject Data Objects Returned: 1: Number Data Address ==============================================   1       26205118-e589-44ca-969d-d79b8ae40b2a qmf: show 1 Properties: Name               Value
 * 1  apache.org           qpidd    971e8d8b-38f8-45ad-9ccf-f82ea85e3ed7  4

=
======================================== load               {'1': 0.1, '5': 0.22, '15': 0.23} hostname           localhost.localdomain ... You should see properties with correct values for your system. 

How To Test Matahari can be found in the Matahari Test Plan. We are interested in a general community testing of currently available agents and core Matahari for both local (DBus) and remote sides (QMF). Just try to use Matahari for your needs and report possible issues or requests for enhancements.

User Experience
Users can access well defined interfaces for system configuration and management over D-bus and QMF to manage their systems locally and remotely using Matahari agents. Matahari also allows developers to create more agents to make the system more powerful and to develop system configuration tools on top of this core Matahari technology.

Dependencies

 * Qpid with QMFv2 (Qpid Management Framework)
 * D-bus
 * Sigar library
 * Optional matahari-broker requires Qpid broker daemon.

Contingency Plan
No packages in Fedora currently depend on Matahari, so we will continue with development efforts in Rawhide.

Documentation

 * Getting Started with Matahari
 * Developers Manual
 * API documentation

Release Notes
Fedora 16 features Matahari, a collection of APIs accessible over remote and local interfaces for system monitoring and management. Matahari APIs are served via a collection of Agents. Matahari also includes a framework for adding new Agents and APIs.

The available agents are:
 * Host - An agent for viewing and controlling hosts
 * Networking - An agent for viewing and controlling network devices
 * Services - An agent for viewing and controlling system services

… TBD …

Comments and Discussion

 * See Talk:Features/Matahari