Follow Us on Twitter
by Sam Ramji on June 06, 2008 04:48pm
A number of people have alerted me in the last 24 hours that a Microsoft project called Sandcastle, located on Codeplex, used the Ms-PL and called itself “open source” yet never posted the source code.
This is unacceptable and represents a violation of Microsoft’s Open Source policy. I take it extremely seriously.
I have directed the project to be unpublished from Codeplex immediately, including removal of the project’s use of the Ms-PL. If the team chooses to publish the source code and follow Microsoft policy, then the project may be re-published in the future. If not, we will remove all references to Sandcastle from Codeplex.
I apologize to the OSI on behalf of Microsoft for this mistake.
We are strengthening our controls on Codeplex projects and the governance process that we use for Microsoft-led external projects to ensure that this type of error does not happen again.
Our policy regarding use of the term Open Source is clear: Open Source refers to projects using OSI-approved licenses.
My colleague Grigori Melnik has a great blog post about the CQRS Journey project, which aims to deliver the source code for a complete, working reference implementation (an end-to-end sample app) that illustrates the key concepts, patterns, and approaches related to Command Query Responsibility Segregation and Event Sourcing (CQRS & ES), and a written guide to accompany the code, provide explanations, context, and references to other relevant material.
CQRS is an architectural pattern in which you separate your read model from the write model. The benefits include almost infinite scalability, adaptability to changing business requirements, resolution of concurrency conflicts, and overall simplification of the design.
As Grigori notes in his blog, they have positioned the CQRS guidance project as a learning journey. An advisory board has been established and some public consultation has taken place that helped scope the project initially.
"Unfortunately, there’s no solid guidance around implementing it and so we are embarking on a development project where we will implement a real world, non-trivial system using variety of CQRS approaches and share those learnings with the community," he told me. "The good news now is that we can have members of the community to participate in this journey together with us."
He goes on to say that while this is good news, "we recognize that for this project to be successful, we need to be not only open and transparent, but we also need to collaborate with the community (in its way a global village) more closely. That’s why I am extremely happy and proud to announce that for the first time in the history of the Microsoft Patterns & Practices team, the following: In the true spirit of open source, we will be taking community contributions on the CQRS Journey project,” he said.
This means:
The project will be hosted on GitHub and the contribution guidelines will be published soon. You can read his full blog here and find the project site here.
by Sam Ramji on May 31, 2007 05:36pm
I got the chance to meet many extremely smart developers last month at SambaXP, the annual Samba developer conference. After attending I’m convinced that the Samba team knows more about how Windows networking works than most Microsoft developers.
One of the most informative sessions I attended was led by Dr. David Holder, an expert on IP networking and Windows/Linux interoperability. Specifically, he focuses on the IPv6 protocol, implementation, and interop, where he sees great opportunities for improved service levels in a range of applications and environments, but also sees a coming wave of interoperability problems between IPv6 implementations on various platforms.
He’s done some very slick stuff in getting Samba to work with Windows Vista and Longhorn’s IPv6 stack, which is encouraging, and lays out a roadmap for future interop work between the platforms.
We are posting the link to his slides along with this podcast of his interview, and David will be available to answer questions posted to the comments section of this page.
Cheers,
Sam
Links:
Dr. Holder's SambaXP “Vista and Samba with IPv6” presentation:
samba-and-vista-with-ipv6v2.pdf
Details regarding how to IPv6 enable Samba4:
http://www.ipv6consultancy.com/ipv6blog/?p=12
Attachment: davidholder.mp3
by Scott Collison on March 09, 2010 06:00am
As we get ready for the Open Source Business Conference in San Francisco later this month, Microsoft asked us to pull some statistics around how Windows plays in the broader Open Source ecosystem.
As you may know, the Geeknet network includes SourceForge, Slashdot, ThinkGeek, Ohloh, and freshmeat. Each month, we provide over 40 million geeks with content, connections and commerce.
What we found when we pulled the data was really interesting: starting with the fact that the amount of Open Source Software (OSS) that is Windows compatible has been steadily climbing over time, from 72 percent in early 2005 to some 82 percent in late 2009.
In terms of actual numbers, this means that some 350,000 Open Source projects are now Windows compatible, out of a total of about 433,000 Open Source projects.
This growth pretty much mirrors Microsoft's increased engagement with Open Source Software, with increased participation in open source projects, supporting open source applications on its platforms and even using open source code in some of its products.
What we also found was that the majority of new OSS projects starting today are operating system agnostic, largely thanks to the popularity of scripting languages and managed runtimes.
Interestingly, our research also found that Windows is the only operating system that runs all of the top 10 all-time most downloaded projects on SourceForge: eMule, Azureus/Vuze, Ares Gallery, 7-Zip, Filezilla, GTK+ and Gimp Installer for Windows, Audacity, PortableApps.com: Portable Software/USB, DC++, and BitTorent.
Also, of the top 25 all-time most-downloaded projects on SourceForge, 23 run on Windows, and 14 of them only run on Windows.
We will be available to discuss this, and other, data in greater depth at our Birds of a Feather lunch discussion at OSBC on Wednesday March 17, between 12h30 and 14h00. At the lunch we will focus on how open source development and proprietary development models are becoming increasingly complementary, and the trends we are seeing around open source development on Microsoft platforms.
I look forward to seeing you there for a lively conversation!
by jcannon on May 29, 2008 01:59pm
Abstract: In the UNIX and Linux world, vi and EMACS have long held positions as the best-developed editors for handling large amounts of code or other text. More recently, an improved vi clone has emerged named VIM (Short for Vi, IMproved). VIM features syntax highlighting, a vi-like command-line interface, and many powerful features for editing large text projects. It has quickly become one of the favorite text editors outside the Windows world. This analysis looks at using VIM with Windows PowerShell, with considerations for code signing.
Download VIM, Powershell & Signed Code.
Note: This paper represents testing and documentation in a lab environment. User Account Control (UAC) is an essential security component to Windows and Microsoft does not recommend turning off UAC in production environments.
by Peter Galli on February 01, 2011 09:40am
Today, Microsoft Research, in collaboration with the University of Cambridge's Unilever Centre for Molecular Science Informatics and the Outercurve Foundation, jointly announced the free and broad availability of the Chemistry Add-in for Microsoft Word v1 as well as the platform's transition to the Foundation.
The Chemistry Add-in for Word, which was released as a beta last year, makes it easier to insert and modify chemical information, such as labels, formulas, and 2-D depictions, within Microsoft Office Word. It also enables the creation of inline "chemical zones," the rendering of print-ready visual depictions of chemical structures, and the ability to store and expose chemical information in a semantically rich manner.
By using Chemical Markup Language (CML) - a chemistry-specific XML - the Chemistry Add-in for Word makes it possible not only to author chemical content in Word 2007 and 2010, but also to include the data behind those structures. The Chemistry Add-in and CML help make chemistry documents open, readable, and easily accessible to humans as well as other technologies. The Chemistry Add-in supports publishing and data-mining scenarios for authors, readers, publishers, and others throughout the chemical information community.
Microsoft's collaboration with the Outercurve Foundation shows its continued commitment to interoperability and Microsoft's Openness Initiative, and now makes the tool widely available for users across various disciplines to use, build upon, and share their research.
As Paula Hunter, Outercurve Foundation's Executive Director, notes: "The Chemistry Add-In for Word shows the power of collaborative development that exists in the open source community. The assignment of Chemistry Add-In for Word to the Outercurve Foundation will enable researchers and scientists to benefit from a tool that will speed creation and sharing of documents that include chemical information. We are pleased to work with Microsoft Research and the University of Cambridge to continue to foster improvements in the development of this tool."
For his part, Alex Wade, the director of scholarly communication at Microsoft External Research, says the Chemistry Add-In for Word helps the scientific and academic research community simplify the authoring and semantic annotation of chemical information. "We are delighted to collaborate on the tool development with the University of Cambridge and pleased to assign the project to the Outercurve Foundation in an effort to advance scholarly communications and pave the way for scientific discovery and innovation," he says.
The platform is being made available as a free download on Outercurve's Research Accelerators Gallery, a collection of open source projects that benefit the research and science communities, in an effort to facilitate the authoring of chemical information in Microsoft Word, specifically the inclusion of chemical structures.
You can read more about all this on the Microsoft External Research Team Blog and on the project page here.
by Peter Galli on July 20, 2009 11:48am
In what many may see as a surprising move, Microsoft today released 20,000 lines of device driver code to the Linux community under the popular General Public Licence v2. The code includes three Linux device drivers, and has been submitted to the Linux kernel community for inclusion in the Linux tree. The drivers will be available to both the Linux community and customers, and will enhance the performance of the Linux operating system when virtualized on Windows Server 2008 Hyper-V or Windows Server 2008 R2 Hyper-V. In an article posted to Microsoft's PressPass site, Tom Hanrahan, director of Microsoft's Open Source Technology Center, notes that this is a significant milestone because it's the first time the company has released code directly to the Linux community. "Additionally significant is that we are releasing the code under the GPLv2 license, which is the Linux community's preferred license," he said. In the same article, Sam Ramji, senior director of Platform Strategy at Microsoft, points out that Microsoft communities and open source communities are growing together, which is ultimately of benefit to customers. An example of this is the Linux community, which has built a platform used by many customers. "So our strategy is to enhance interoperability between the Windows platform and many open source technologies, which includes Linux, to provide the choices our customers are asking for," he said. Ramji also alluded to the fact that people are often surprised when they hear how much open source community and development work is happening across Microsoft, which is largely due to the fact that these collaborations focus more on getting the work done and engaging with the various communities on a one-to-one basis and less about promoting them. One example of how Microsoft participates with, and contributes to, open source is its relationship with the PHP Community. The company's involvement includes contributing to the PHP Engine, optimizing PHP 5.3 to perform strongly on Windows, and working to improve the performance of numerous PHP applications on Windows. Then there is the ongoing participation in various Apache Software Foundation projects, such as Hadoop, Stonehenge and QPID. "In short, we're focused on building sustainable business strategies for open source at Microsoft ... we see open source playing into three key areas, one of which is the use of 'inbound' open source and the open source development model to make our software development processes more efficient." "Good examples of this include what we did recently with jQuery in Visual Studio 2008, the implementation of OpenPegasus connectors and adaptors into System Center Operations Manager, and work that the Microsoft High Performance Computing team did with the Argonne National Lab (ANL) to source its MPICH2 implementation, which is a portable implementation of the Message Passing Interface (MPI) used in cluster computing and super computers," Ramji said. We'll be posting a number of other articles on the release of the device driver code to the Linux community over the week, several of which will be penned by Hank Janssen from Microsoft's Open Source Technology Center, so look out for those.
In what many may see as a surprising move, Microsoft today released 20,000 lines of device driver code to the Linux community under the popular General Public Licence v2.
The code includes three Linux device drivers, and has been submitted to the Linux kernel community for inclusion in the Linux tree.
The drivers will be available to both the Linux community and customers, and will enhance the performance of the Linux operating system when virtualized on Windows Server 2008 Hyper-V or Windows Server 2008 R2 Hyper-V.
In an article posted to Microsoft's PressPass site, Tom Hanrahan, director of Microsoft's Open Source Technology Center, notes that this is a significant milestone because it's the first time the company has released code directly to the Linux community. "Additionally significant is that we are releasing the code under the GPLv2 license, which is the Linux community's preferred license," he said.
In the same article, Sam Ramji, senior director of Platform Strategy at Microsoft, points out that Microsoft communities and open source communities are growing together, which is ultimately of benefit to customers. An example of this is the Linux community, which has built a platform used by many customers. "So our strategy is to enhance interoperability between the Windows platform and many open source technologies, which includes Linux, to provide the choices our customers are asking for," he said.
Ramji also alluded to the fact that people are often surprised when they hear how much open source community and development work is happening across Microsoft, which is largely due to the fact that these collaborations focus more on getting the work done and engaging with the various communities on a one-to-one basis and less about promoting them.
One example of how Microsoft participates with, and contributes to, open source is its relationship with the PHP Community. The company's involvement includes contributing to the PHP Engine, optimizing PHP 5.3 to perform strongly on Windows, and working to improve the performance of numerous PHP applications on Windows. Then there is the ongoing participation in various Apache Software Foundation projects, such as Hadoop, Stonehenge and QPID.
"In short, we're focused on building sustainable business strategies for open source at Microsoft ... we see open source playing into three key areas, one of which is the use of 'inbound' open source and the open source development model to make our software development processes more efficient."
"Good examples of this include what we did recently with jQuery in Visual Studio 2008, the implementation of OpenPegasus connectors and adaptors into System Center Operations Manager, and work that the Microsoft High Performance Computing team did with the Argonne National Lab (ANL) to source its MPICH2 implementation, which is a portable implementation of the Message Passing Interface (MPI) used in cluster computing and super computers," Ramji said.
We'll be posting a number of other articles on the release of the device driver code to the Linux community over the week, several of which will be penned by Hank Janssen from Microsoft's Open Source Technology Center, so look out for those.
by Peter Galli on October 22, 2010 08:00am
Microsoft today announced a partnership with Cloud.com to provide support for our Windows Server Hyper-V virtualization stack to the OpenStack project, an open source cloud computing platform. In order to get more information on this partnership, I asked Ted MacLean, the general manager for Microsoft's Open Solutions Group, a few questions.
Peter: What is Microsoft announcing today around Openstack?
Ted: Today we announced an open source cloud collaboration that may surprise some people, but not our customers and partners who have relied on our interoperability solutions over the past few years. Today Microsoft announced that it has partnered with Cloud.com to provide integration and support of Windows Server 2008 R2 Hyper-V to the OpenStack project, an open source cloud infrastructure platform. The Hyper-V addition provides enterprise customers running a mix of Microsoft and non-Microsoft technologies greater flexibility when using OpenStack. Until today, OpenStack only supported several open source virtualization products.
Peter: Why did Microsoft decide to participate in Openstack?
Ted: We understand how customers today are multi-sourcing solutions within their IT infrastructure. Support for Windows Server Hyper-V on OpenStack reinforces Microsoft's commitment to delivering choice and flexibility to customers in the cloud. Giving customers the option to use Microsoft's enterprise-ready virtualization platform, Windows Server R2 Hyper-V, when they deploy OpenStack as their cloud solution is win for all. Microsoft is committed to meet the interoperability needs for our customers running mixed source environments on Windows Azure and on partner clouds. Now that OpenStack is open to Windows' Hyper-V, customers can realize the benefits of our enterprise-ready virtualization platform if they choose to deploy OpenStack as their cloud solution.
Peter: This project is a collaboration between Microsoft and Cloud.com. Tell me how that works.
Ted: As part of the collaboration, Microsoft will provide architectural and technical guidance to Cloud.com. In turn, Cloud.com will develop the code to support OpenStack on Windows Server 2008 R2 Hyper-V. The Cloud.com team has been great to work with. Once completed, the project code will be checked into the public code repository here.
Peter: How does this participation fit into the growing list of Microsoft contributions to, and participation in, open source projects?
Ted: Microsoft's support for the OpenStack project underscores our commitment to providing customers with technologies that promotes interoperability and openness. The cloud is accelerating the need for us to interoperate with other vendor technologies and open source software. You can find more information on the various OSS projects that Microsoft is participating in here.
Any time you can open up a platform to more options for interoperability, it’s a great thing. It’s even better if the platform is as popular as Apache Hadoop and the new option is one that has been accepted as a popular choice. And earlier today, HortonWorks announced another interoperability achievement for the Apache Hadoop project on their blog by highlighting how Hadoop now runs natively on Microsoft Windows platforms:
“One of the things we believe strongly in here at Hortonworks is community driven open source and, obviously, the bigger the community, the better. The community opens itself up to new members by the developmental choices it makes and last week the Apache Hadoop community voted to significantly expand itself by agreeing to accept enhancements into the core trunk that make Apache Hadoop run natively on the Microsoft Windows platforms including Windows Server and Windows Azure. These enhancements were the result of many, many months of joint engineering work from Microsoft and Hortonworks and we are glad to see the community accept and embrace them. So far, as is common in the Apache Hadoop project, we developed these in a development branch for over a year and once this work was complete, the community voted to incorporate these changes into the mainline trunk.”
We at Microsoft Open Technologies, Inc., want to congratulate the teams at the Apache Software Foundation, HortonWorks and Microsoft Corporation that made this happen! We’re excited to see where native support for Apache Hadoop on Windows Server and Windows Azure will take the community.
by MichaelF on August 11, 2006 09:30am
In this, the last of our interviews from the LANG.NET Symposium, Sam sits down with Miguel de Icaza, VP Development Platform at Novell and co-founder of Ximian. Miguel is also responsible for starting two Open Source project you may have heard of: GNOME and Mono.
In this interview Sam and Miguel talk about the history behind Mono, the current state of the project and Miguel's thoughts on Mono as it relates to .NET.
by Peter Galli on November 20, 2009 02:42pm
As you know, Microsoft recently committed to making the source code as well as binaries for the Windows 7 USB/DVD Tool available this week, under the terms of the General Public License v2 as described here.
While we worked extremely hard to try and get the code ready for release by today, we still need to test and localize it. Our goal is now to release the tool in all languages on the same day in the next few weeks.
We appreciate your patience and understanding as we work to make the Windows 7 USB/DVD Tool available once again.
by Sam Ramji on July 23, 2009 08:38pm
Microsoft on Monday contributed the Linux Integration Component drivers to the Linux community for the reasons stated in our release. Microsoft chose the GPLv2 license for the mutual benefit of our customers, partners, the community, and Microsoft.
Microsoft's decision was not based on any perceived obligations tied to the GPLv2 license. For business reasons and for customers, we determined it was beneficial to release the drivers to the kernel community under the GPLv2 license through a process that involved working closely with Greg Kroah-Hartman, who helped us understand the community norms and licensing options surrounding the drivers.
The primary reason we made this determination in this case is because GPLv2 is the preferred license required by the Linux community for their broad acceptance and engagement. For us to participate in the Linux Driver Project, GPLv2 was the best option that allowed us to enjoy the tremendous offer of community support. The community's response even within a few hours of posting the code was welcoming and we appreciate it greatly.
We arrived at the decision to release the drivers to the community under the GPLv2 through this process. Both Greg K-H and Jim Zemlin of the Linux Foundation have reiterated that this is the same process that other companies follow when deciding how to release new device drivers to the Linux community.
We are looking forward to the positive collaboration and acceptance that has marked the vast majority of our interactions with customers and community members regarding this important project.
Updated 7/25/2009 @ 11:54 AM Pacific: Dave Roberts of Vyatta posted a blog entry rebutting recent cloims that we were accused of a licensing violation with some detail on the technical issues.
by Peter Galli on March 16, 2010 11:15am
In his keynote address today at MIX10, Scott Guthrie, the Corporate Vice President of Microsoft's .NET Developer Platform, announced Microsoft is taking a more active role participating in the open-source, community-driven development of the jQuery JavaScript Library.
Microsoft will now work in concert with the jQuery JavaScript Library team to accelerate the creation of new features that make creating rich-web applications on any platform faster and easier.
Microsoft's first involvement with the jQuery JavaScript Library team is to propose a powerful feature making it easier for developers to build client-side, data-driven web applications and, as such, the company has contributed a templating engine for evaluation and improvement to the jQuery JavaScript Library.
The goal here is to help ensure this is a primary way to develop rich, JavaScript based client-side internet applications. Read more about this on Scott's blog and John Resig's blog.
And, going forward, the company also plans to assist in the development of both standards-based and ASP.NET based jQuery Plugins aimed to simplify interoperability between the two platforms, and Microsoft will now help make the jQuery JavaScript Library a primary development option on Windows. Microsoft is already a big, and longtime supporter of the jQuery JavaScript Library, and will include the jQuery JavaScript Library 1.4.1 in its releases of both Visual Studio 2010 and ASP.NET MVC 2 products.
As such, Microsoft is also adopting the open source approach to development that the jQuery JavaScript Library community uses, meaning the community can provide direct feedback and contribute to the materials that Microsoft's developers contribute to the jQuery JavaScript Library.
The jQuery Foundation will redistribute works provided under its own licenses.
Also announced at MIX10 was the release of new software development kits for the Open Data Protocol (OData), which make it easier for developers to access data from the cloud to create more compelling cross-platform Web applications.
by Peter Galli on April 06, 2010 12:21pm
Last summer, a new team within Microsoft, Education Labs, debuted the popular Live Services Plug-in for Moodle. Part of the charter for that team is to listen and quickly respond to educators' feedback so, when the team started to hear the positive feedback for that tool, they reached out to find out what other needs educators had with respect to Moodle, an open-source learning management system.
They quickly realized that, while educators liked the efficiency and time savings of the single sign-on that tool provided users of both Moodle and Live@edu, they also wanted other critical actions to be made simpler and faster. For example, they wanted to save time when using Office and Moodle together. Additionally, school administrators wanted to find out how to get the robustness of the SharePoint platform to underlie Moodle.
Today, the Education Labs team responded and launched a free Office Add-in for Moodle, as well as releasing a white paper on how to integrate SharePoint with Moodle.
Office Add-in for Moodle: As described in this blog post, this tool is easy to install and brings saving an Office document to Moodle down from some eight steps to around four. When uploading a lot of files to one or more Moodles, that can equate to a lot of time savings. As many educators use Moodle to upload their course content at the beginning of the semester, that upload now just got easier and faster.
You can download the tool, which is available in 6 languages, here.
In addition to saving Office documents to a Moodle, educators frequently need to update or edit those files on Moodle. Until now, if you needed to make changes to an Office document on a Moodle, you could click on it to open it, but then you had to save it to the desktop and then have to upload it again. Now, with the new Office Add-in installed, that eight step process goes to just one step: Save!
You can watch the Channel 9 video here.
White paper on integrating SharePoint as the file system for Moodle: In contrast to the Office Add-in, which is a free download of an actual piece of software, those schools already using SharePoint and Moodle have all the software they require.
They just need to follow the instructions in the white paper to give IT pros the ability to restore files accidentally overwritten or deleted by teachers using versioning and/or the recycle bin and/or the capabilities of SharePoint. In addition, SharePoint brings file search capabilities that Moodle does not have.
And, speaking of bulk upload, an educator can use SharePoint to add multiple files simultaneously to their Moodle. Note that even with the add-in, they will still upload a file at a time.
These initiatives all underscore how Microsoft is focused on providing compelling solutions that meet user needs, and that those solutions will continue to use open source tools like Moodle.
by kishi on June 21, 2007 12:16pm
Background: This is Part 5, continuation of the series of 8 blogs I’m doing on Systems Manageability. In this specific blog, I will focus on and explain the third part of the “ontology” which is “Monitoring”
Level-Set – Monitoring: Monitoring and other data collection tools are an essential component of any management strategy. The proper collection and organization of host data allows for manual and sometimes automated reactive corrective measures. This section outlines many of the open source and free software monitoring tools available on the Linux platform. Much of the analysis in this section is focused on the inner workings of these tools as data collection systems, rather than feature comparisons between the various monitoring applications. The WBEM/CIM overview has been placed in this section due to its basis as a data collection and management system, even though its use is not limited the confines of this category.
I.WBEM/CIM: The following section includes an overview of the WBEM initiative and the open-source CIM implementations that exist today. The Distributed Management Task Force (DMTF) classifies WBEM (Web Based Enterprise Management) as the following:
“[WBEM is] a set of management and Internet standard technologies developed to unify the management of distributed computing environments. WBEM provides the ability for the industry to deliver a well-integrated set of standard-based management tools, facilitating the exchange of data across otherwise disparate technologies and platforms.”
Core components and industry standards used in WBEM include CIM, CIM-XML, CIM Query Language, SLP (Service LocationProtocol, for WBEM Discovery) and WBEM URI (Universal Resource Identifier) mapping. The DMTF has also developed a WBEM Management profile template for the purpose of systems manageability. WBEM has been designed to be compatible with all the major existing management protocols, including SNMP, DMI, and CMIP. There are several open source implementations of WBEM including OpenWBEM, WBEM Services, OpenPegasus and SBLIM. These are discussed in more detail below. Additionally, there are both client and server implementations available for the WBEM standard:
“provides a common definition of management information for systems, networks, applications and services, and allows for vendor extensions. CIM’s common definitions enable vendors to exchange semantically rich management information between systems throughout the network. It is a conceptual information model for describing management that is not bound to a particular implementation. This allows for the interchange of management information between management systems and applications. This can be either "agent to manager" or "manager to manager" communications that provides for Distributed System Management.”
CIM includes two components; a specification and a Schema.
WBEM (CIM) Architecture Diagram
OpenPegasus:
OpenPegasus is an open-source implementation of the DMTF CIM and WBEM standards being driven under the auspices of The Open Group. OpenPegasus is open source and is licensed under the MIT open-source license. The distribution is available via CVS, and as snapshot images in tar, zip, and (self-extracting) exe file formats on the OpenPegasus web site. Based on documentation posted on the site, simply put, Pegasus is an open-source CIM Server for DMTF CIM objects. It is written in C++ and includes the Object manager (CIMOM), a set of defined interfaces, an implementation of the CIM Operations over HTTP operations and their cimxml HTTP encodings, and Interface libraries for both clients and providers. It is maintained to be compliant with the DMTF CIM and WBEM specifications with exceptions noted in the documentation. It is designed to be portable and modular. It is coded in C++ and translates the object concepts of the CIM objects into a programming model. Pegasus is designed to be inherently portable and builds and runs today on most versions of UNIX(R), Linux, and Windows. OpenPegasus includes the following components:
OpenWBEM On SLES10:
OpenWBEM is included in SUSE Linux Enterprise Server 9 and 10, allowing any WBEM enabled management console to access configuration information on the system. A CIM schema and a MOF compiler are also included as packages in SLES9 and 10, which can be used to create and import the schema.
## Create the namespace called /root/cimv2 SLES10:/etc/openwbem # owcreatenamespace -n /root/cimv2 Creating namespace (/root/cimv2) ## Import the CIM schema. SLES10:/etc/openwbem # owmofc /usr/share/mof/cimv2.12/cimv212.mof [ ... Lots of Output ... ] Compilation finished. 0 errors occurred. Compiling and Importing the CIM Schema ## Start the OpenWBEM Daemon. SLES10:~ # /etc/init.d/owcimomd start Using common server certificate /etc/ssl/servercerts/servercert.pem Starting the OpenWBEM CIMOM Daemon done ## Check the status of the OpenWBEM service. SLES10:~ # /etc/init.d/owcimomd status Checking for service OpenWBEM CIMOM Daemon running Starting the OpenWBEM Service on SLES10
## Create the namespace called /root/cimv2
SLES10:/etc/openwbem # owcreatenamespace -n /root/cimv2
Creating namespace (/root/cimv2)
## Import the CIM schema.
SLES10:/etc/openwbem # owmofc /usr/share/mof/cimv2.12/cimv212.mof
[ ... Lots of Output ... ]
Compilation finished. 0 errors occurred.
Compiling and Importing the CIM Schema
## Start the OpenWBEM Daemon.
SLES10:~ # /etc/init.d/owcimomd start
Using common server certificate /etc/ssl/servercerts/servercert.pem
Starting the OpenWBEM CIMOM Daemon done
## Check the status of the OpenWBEM service.
SLES10:~ # /etc/init.d/owcimomd status
Checking for service OpenWBEM CIMOM Daemon running
Starting the OpenWBEM Service on SLES10
II. NAGIOS: Nagios is a system monitoring application designed to monitor remote hosts and applications over a network. The application provides a web-based graphical display that allows one to view the status of nodes and particular applications running on the nodes. The following is an excerpt from the Nagios documentation listing some of Nagios’ feature set: Some of the many features of Nagios include:
Nagios can poll servers and obtain data in a number of different ways. The most straight-forward method is to connect to a remote system directly and test to see if the host is available or if a particular service is running. Data internal to the host, such as free memory or processor usage, however, must be gathered using the Nagios agent, SNMP, another custom script or program or a Nagios plug-in called check_by_ssh - which is a standard plug-in designed to run a command on a remote machine and collect the output. The configuration of Nagios is done entirely via text-based configuration files. Hosts and other resources are defined inblocks, which can also inherit information from other pre-defined blocks, making complex configurations possible and more manageable. There are several third-party applications available that provide a web or other GUI interface to assist one with configuring Nagios, but these were not tested for this project. The following configuration block defines a generic host template called “linux-server”. Many of the configuration values such as “24x7” and “workhours” are actually defined in other configuration blocks within the Nagios configuration. This allows administrators to define custom names to a specific time period, such as “workhours”, and use that definition in other parts of the configuration.
define host { name linux-server use generic-host check_period 24x7 max_check_attempts 10 check_command check-host-alive notification_period workhours notification_interval 120 notification_options d,u,r contact_groups admins register 0 }
define host {
name linux-server
use generic-host
check_period 24x7
max_check_attempts 10
check_command check-host-alive
notification_period workhours
notification_interval 120
notification_options d,u,r
contact_groups admins
register 0
}
Nagios Host Definition Template
Individual hosts are defined in configuration blocks. Below is a sample configuration for an individual host called management. Notice the use statement is inheriting other definitions from the previously defined generic template mentioned above called “linux-server”.
define host { use linux-server ;Name of host template to use. host_name management alias Management Server address 10.197.173.100 }
use linux-server ;Name of host template to use.
host_name management
alias Management Server
address 10.197.173.100
Finally, hosts may be organized into logical groups for easier management. The following is a hostgroup that defines a group that includes five hosts.
define hostgroup { hostgroup_name test alias Test Servers members localhost,management,www,rhel4-production2,network }
define hostgroup {
hostgroup_name test
alias Test Servers
members localhost,management,www,rhel4-production2,network
Nagios is distributed with a wide assortment of plug-ins that can be used to obtain data or check a particular service. Plug-ins are distributed as a separate package which must be installed with both the server and the agent if an agent is to be used. The Nagios plug-ins are simply stand-alone executable programs, each of which can perform a particular task and return a result code for each service or subsystem being tested. Since plug-ins are individual scripts or binary programs, they often will accept different arguments to change their behavior and what information they return. The command usage of each plug-in must be defined individually within the configuration files using the define command syntax. Some plug-ins can accept multiple options which can be customized when writing the configuration for a particular system. The define command definition provides a sort of usage template so that Nagios will know how to run the command later. Luckily for new users, the default sample configuration files already provide accurate definitions for the default plug-ins. Once one is familiar with how commands are defined, however, new commands or custom scripts can also be defined here as well.
NRPE: is the Nagios Remote Plugin Executor that is installed on a remote host. It is designed simply to execute Nagios plugins on behalf of the Nagios server and return the results. The same plugins that are installed on the server must then be installed on the remote host for NRPE to utilize. A new plug-in called check_nrpe is also distributed with the NRPE agent and is used to query the NRPE daemon from the Nagios server. NRPE utilizes a rudimentary access control system to assure that only particular Nagios hosts will be allowed to contact the NRPE client. A configuration directive such as the following within NRPE’s configuration file will only allow communication with a particular host:
allows_hosts=10.197.173.100
It is possible to configure NRPE run nearly any command with any arguments, although one is warned against doing this in the documentation. By default, NRPE will only run specific commands and their arguments as specified in its own configuration file (located on the host itself). Meaning that the Nagios server can tell NRPE to execute only specific commands specified in the remote host’s /etc/nrpe.cfg file, but the server may not pass arbitrary commands or plug-in arguments for the agent to execute. Below is a sample NRPE configuration. The specific commands (plug-ins) and arguments must be specified here. The Nagios server can then request NRPE to execute one or more of these commands and return the results:
command[check_users]=/usr/local/nagios/libexec/check_users –w 5 –c 10 command[check_load]=/usr/local/nagios/libexec/check_load –w 15,10,5 –c 30,25,20 command[check_disk_root]=/usr/local/nagios/libexec/check_disk –w 20 –c 10 –p /dev/sda1 command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs –w 5 –c 10 –s Z command[check_total_procs]=/usr/local/nagios/libexec/check_procs –w 150 –c 200
By default NRPE utilizes SSL communications between itself and the Nagios server. The SSL parameters are generated at compile time and stored in the C header file called dh.h within the NRPE source tree. This header file is then used to compile the NRPE daemon and the check_nrpe plugin. This means that both the NRPE daemon and the check_nrpe plugin must be compiled using the same parameters (typically from the same source tree) if one wishes to utilize SSL communications.
III. Hyperic: Hyperic HQ is a Java-based monitoring application consisting of a central monitoring server and one or more remote agents to report node status information to the server. Hyperic HQ is supported on a wide array of platforms, including Linux, Solaris, Windows, HP-UX, AIX, Mac OS X and FreeBSD. Hyperic distributes two versions of its software;
HQ Open Source and HQ Enterprise Feature Set Comparison Note: As of HQ 3.0 thefeature-set distribution between the Open-Source and Enterprise versions has changed. Please see https://www.vmware.com/tryvmware/?p=hyperic&lp=1 for more details.
Hyperic Installation and Configuration: Hyperic HQ aims to be quick to install and relatively easy to configure. The installation is performed via the command-line, and will prompt the administrator for all the information (administrator password, database information, etc) it will need to successfully run. Upgrading can also be done relatively easily by simply running the installer with the –upgrade option. Hyperic HQ provides a web interface to deliver monitoring alerts and status information to the end-user. However, unlike other monitoring applications the web-interface is also used as the primary configuration interface for the application. All node and agent details, metric options and alerts may be configured directly over the web interface. The monitoring agent is installed in a similar manner as the server. Because all agent configuration is done via the web interface on the server, the only information the agent installation script needs is login information for the server, the preferred path on the node to which it should install the agent files and various other pieces of information such as the port numbers on which the server and agent will be running. Once the agent successfully registers itself with the server, the administrator can then log in to the web interface and import the new system into its list of monitored hosts. The Hyperic HQ server utilizes the open-source PostgreSQL database application to store configuration and monitoring data. PostgreSQL comes prepackaged with the Hyperic HQ software, and can be installed and configured automatically by the installation system. One may also choose to use an existing PostgreSQL or Oracle database server if one exists. The installation system would then prompt the administrator for information about the database so that Hyperic HQ may log in and store its data. By default, Hyperic HQ stores its authentication information within this database as well, but may also be configured to utilize and external LDAP server if one is available.
Auto-Discovery: A unique feature of the Hyperic HQ monitoring solution is its ability to automatically locate and monitor services and daemons running on the remote node. Once the agent is installed on the remote node it can then scan for a variety of known services and add it to the hosts inventory. Once added to the inventory, metrics and alerts can be configured to monitor that particular service. Hyperic HQ supports two scanning options, auto-scan and file-scan. Agents run an auto-scan periodically by default which scans the process list for known server types. A more comprehensive scan called a file-scan can actually search through the file system on the remote node and locate known applications. Because it requires more time to run and is more resource intensive, this type of scan must be scheduled and configured manually by the administrator.
Alerts and Notifications: Hyperic HQ supports the configuration of alerts based on any metric for any particular resource (such as the host itself) or service running on the host. For example, an alert can be triggered when the Availability metric for a host falls changes at all, or falls below a predefined value. When an alert is triggered an email can be sent to a predefined email address. Depending on the priority of the alert, a message will also be posted to the Dashboard, the Hyperic HQ administration front page. The HQ Open Source version lacks many of the more advanced notification options that are available in the Enterprise version. HQ Enterprise also supports the concept of Recovery Alerts, which are alerts that can be configured to cancel and reset triggered alerts. When an alert is triggered in the Open Source version, the alert will continue to be triggered until the problem is fixed or the alert is disabled. Recovery Alerts allow an administrator to automate the process of disabling an active alert, and then re-enabling the alert when the problem is corrected. HQ Enterprise also supports the option of sending SNMP traps as a notification option.
Hyperic HQ Plugins: Hyperic HQ plugins are distributed as .jar or .xml files that are deployed on the server and the agent. Plugins can be developed to enhance the collection of metrics from certain applications or services, locate and inventory new services and control actions to control specific resources. The Hyperic website provides comprehensive documentation on plugin development. Developing and adding a new plugin tends to be a more complex process compared to Nagios or other monitoring applications. The framework provided by Hyperic HQ, however, provides advanced APIs from which the plugins can query information on multiple platforms. On Windows, for example, Hyperic HQ includes classes which a plugin may use to access Windows specific data and functions. These functions can provide access to performance information, registry data, event log information and the Service Control Manager (SCM). Hyperic HQ also provides support for simple script-based plugins to gather particular metrics. Even individual scripts or Nagios plugins may be imported and configured for use by the Hyperic HQ server and agents.
SIGAR – System Information Gatherer And Reporter: SIGAR is the primary data collection component of the Hyperic HQ agent. The software is designed to collect system and process information from a number of platforms - including Linux, Windows, Solaris, AIX, HP-UX, FreeBSD and Mac OSX. SIGAR is written in C, but Hyperic provides C, C#, Java and Perl APIs which one may use to to integrate SIGAR into their applications. The SIGAR component is licensed under the GNU GPL, and is distributed separately from the Hyperic monitoring agent for potential use in third-party applications. The Sigar API provides a portable interface for gathering system information such as:
user@linux:~/hyperic-sigar-1.3.0.0> java -jar sigar-bin/lib/sigar.jar Loaded rc file: /home/user/hyperic-sigar-1.3.0.0/sigar-bin/lib/.sigar_shellrc sigar> help Available commands: alias - Create alias command cpuinfo - Display cpu information df - Report filesystem disk space usage du - Display usage for a directory recursively free - Display information about free and used memory get - Get system properties help - Gives help on shell commands ifconfig - Network interface information iostat - Report filesystem disk i/o kill - Send signal to a process mps - Show multi process status netinfo - Display network info netstat - Display network connections pargs - Show process command line arguments penv - Show process environment pfile - Display process file info pinfo - Display all process info pmodules - Display process module info ps - Show process status ptql - Run process table query quit - Terminate the shell route - Kernel IP routing table set - Set system properties sleep - Delay execution for the a number of seconds source - Read a file, executing the contents sysinfo - Display system information test - Run sigar tests time - Time command ulimit - Display system resource limits uptime - Display how long the system has been running version - Display sigar and system version info who - Show who is logged on sigar> Example SIGAR usage from the command-line.
user@linux:~/hyperic-sigar-1.3.0.0> java -jar sigar-bin/lib/sigar.jar
Loaded rc file: /home/user/hyperic-sigar-1.3.0.0/sigar-bin/lib/.sigar_shellrc
sigar> help
Available commands:
alias - Create alias command
cpuinfo - Display cpu information
df - Report filesystem disk space usage
du - Display usage for a directory recursively
free - Display information about free and used memory
get - Get system properties
help - Gives help on shell commands
ifconfig - Network interface information
iostat - Report filesystem disk i/o
kill - Send signal to a process
mps - Show multi process status
netinfo - Display network info
netstat - Display network connections
pargs - Show process command line arguments
penv - Show process environment
pfile - Display process file info
pinfo - Display all process info
pmodules - Display process module info
ps - Show process status
ptql - Run process table query
quit - Terminate the shell
route - Kernel IP routing table
set - Set system properties
sleep - Delay execution for the a number of seconds
source - Read a file, executing the contents
sysinfo - Display system information
test - Run sigar tests
time - Time command
ulimit - Display system resource limits
uptime - Display how long the system has been running
version - Display sigar and system version info
who - Show who is logged on
sigar>
Example SIGAR usage from the command-line.
And that does it for the “Monitoring” section. There are so many other tools we got a chance to play with like Monit, Argus, OProfile etc. but am running out of space …… As always, please let us know if you found the above mentioned useful and any comments/feedback you may have. Thank you for tuning into Port25.