Sunday, December 30, 2012

The Open Source Company

When setting up a company, one of the primary concerns we face is that our income must exceed our cost of doing business. For many businesses, that cost is difficult to calculate -- any single user touches a half dozen services per day at minimum -- probably more, especially for smaller companies where users wear so many hats.

Open-source software can be a great answer to that question. For those outside of the software/computer world, open-source software is software whose authors have donated their time and work for the better good. Anyone may use and improve the product as long as they attribute the previous authors. That allows great tools to be freely available to smaller companies with shallower pockets than larger companies.

So how far can open-source software take you? Paid software from full-time development companies must be superior, right? Well -- yes and no. Paid software generally has 5 times as many features, but the core features are typically available and solid on both.

Here's what I've built for my companies:

Open Source/Free:

Wiki - MediaWiki
The same source-code that Wikipedia uses, most people are familiar with the layout.

Instant Messaging - OpenFire XMPP server with Pidgin desktop client
Both OpenFire from Jive Software and Pidgin are open-source software which are freely available. They both support the open-source XMPP chat protocol which allows us to federate (link up to) other software and protocols. OpenFire in particular is just fantastic server software, and pidgin is an old favorite of mine.

Server virtualization platform - ESXi 
Though not open-source, their base-level server virtualization is available free of charge. This version allows up to 32gb of memory to be dynamically divvied up between any number of machines. This dynamic sharing of resources is both efficient for enterprises and green for the environment - fewer machines gobbling up power. Just fantastic software.

Voice conferencing: Asterisk software (AsteriskNow prepackaged)
Asterisk is an open-source framework for communication -- telephony, conferencing, and (I believe) video telephony. To ease set-up, we installed a pre-packaged kit which includes most features and involves little customization...at least in theory. Setting it up has been a beast, and its still not entirely working -- not a recommended product. If you know a great open-source conferencing platform, send it my way!

Application/Network monitoring: Nagios with a Monarch GUI front-end. 
Nagios is the monitoring framework which is fully SNMP compatible and includes many pre-packaged monitoring tools which makes it fantastic. That said -- it's just the framework. Unless you want to do all your configuration in CLI, you need a GUI. We selected Monarch because a partner highly recommended it, and it is extensive. Recommended, at least for a business of our size (small to medium).

IT Ticketing: GLPI
GLPI is an open-source ticketing system geared towards small to (small-)medium businesses. It can also do cataloging of computers and other data with an OCS module that fully integrates. We compared a few other products which were much more complex and harder for users to ... use. GLPI is a form -- category, urgency, title and summary. Submit. Users get it. And that's what we're looking for here. Highly recommended for smaller businesses.

Server OS: Fedora from Red Hat software
Red Hat has an interesting business model -- release great software, open-source, free of charge. Then charge for support. As a small-business, I'm interested. Great, stable, freely available software. As a medium business, my software is highly integrated with their platform and I need a support contract. I'm snared. And everybody wins. Highly stable, great platform -- Recommended. VM that and play today.

Paid Software:

There is always that paid software which cannot be avoided without significant risk or detriment to your company. Here are some of the examples and reasons why.

Desktop OS: Windows 7 x64
Almost always the most polarized software, the Windows OS has come a long way. I'm (obviously) a big proponent of open-source software, but Microsoft has done a great job of patching security holes and adding features to their desktop OS. We're still evaluating Win8, but it looks like something that could really take off if some usability tweaks are implemented.

Server OS: Windows Server 2008R2
With the stability issues of the past few releases behind it, 2008/2008R2 is pretty good. Very graphical, it's a great option for file-serving to the Windows OS. That's the primary reason we run it. When something goes wrong, it takes quite a bit of experience and digging to find the logs which reflect the problem, and even then troubleshooting is difficult. When the code is closed, you are forced to turn to the company which wrote it (Microsoft) for answers. And they're not too easy to reach, either. If we could effectively run file-serving from a *nix, we'd be planning a migration today.

Document Editing/Email Client: Microsoft Office 2010
I've spent hours and hours playing with Thunderbird and OpenOffice/LibreOffice and they simply do not stand up to Microsoft Office in terms of features (in a huge way) and compatibility with Microsoft Office (which, of course, is everywhere).
A wildcard here is Google Docs, but it simply isn't there yet in terms of features or compatibility either. That said, it's the most interesting product in the bunch here, and I sincerely hope they pick up their game. There's at least one interested party here.

Email Server: Microsoft Exchange 2010
The most graphical and user-friendly email server I've seen is also the most popular and therefore the most techs have experience with. Honestly haven't even looked at other services (all cloud-based services are out due to security concerns) because once it is configured, it simply runs.

Switching/ASA: Cisco
When a company practically (literally) invents the category, it's difficult to find great software which can compete. And especially in the security/backbone category, its important to use software which others are experienced with for quick troubleshooting if (when) problems arise. This puts us firmly in Cisco's (very costly) grasp.

Telephony: Cisco
Call-Manager Express (and at some point Call Manager Business Edition) is the platform that carries our voice traffic. The platform is stable and somewhat feature-rich, but difficult to configure, at least for us on CME. Entirely CLI, we're able to easily dig into difficult issues, but even the simplest of changes can cause serious problems, so there's a difficult trade-off here. If we can find a better product that can provide stable, feature-rich telephony in an open-source package, we'll consider migration.

I hope my thoughts and ramblings can help you select better tools for your projects.
Thanks!
kyler

Thursday, December 27, 2012

GLPI -- Awesome IT Ticketing (if you speak french)

Despite Chrome's admittedly fantastic automatic translations for other languages, software written in other language is still tough to grasp.

Let me restart -- GLPI is an open-source ticketing tool created for IT Ticketing. And it's not bad. There's tons of customizations you can make, and (of course) - the code is published and available, so you can break down how pages are displayed and how data is processed.

Some issues I've seen:

1. Time-stamps on the platform OS is correct, but php/apache's time is wrong.

GLPI used to have an interface where you could update the time and time-zone of php's embedded time-keeping mechanism. I haven't been able to find it. To fix this issue, I searched and found a post by Nokia390  here:
Open the php.ini configuration file
   vi /etc/php5/php.ini
Update the following line. Note: You can find all supported syntax for time-zones here.
   date.timezone = Europe/Lisbon
Restart the apache service to reload the php.ini file
   service httpd restart

2. GLPI receivers just will NOT pull email from email inbox

Our Exchange version: 2010
There are some pre-reqs for our Exchange version - 2010.
* You need to start either the IMAP4 or POP3 service on Exchange. These are the only supported way to pull email from an inbox.
* Verify the user inbox you're utilizing allows email to be pulled with your chosen protocol -- we made sure IMAP4 was enabled (the default on our system)

Reading through the GLPI wiki, you'd think setting up an email scrape would be really easy. And it was... once I found my way around the completely undocumented problem I hit.

Here are our example values:
Name (email address): help@(ourdomain).com
Server: (IP of our email server)
Connection Options: IMAP // (BLANK) // TLS // NO-VALIDATE-CERT
Login: help
password: (password for our help user).

I played for hours with different configurations, looked over the (very, very thin) logs, set up different receive connectors with different options, recreated the user account, etc. In short, I drove myself crazy.

Here are the logs I saw:

12-27-2012 23:14
Warning(2): imap_open(): Couldn't open stream {(server IP)/ssl}INBOX
Backtrace :
/var/www/html/glpi/inc/mailcollector.class.php:833 imap_open()
/var/www/html/glpi/inc/mailcollector.class.php:403 MailCollector->connect()
/var/www/html/glpi/front/mailcollector.form.php:72 MailCollector->collect()

The final, tiny, gotcha? I needed to use the FQDN ahead of the user name. For example,
I used this: help
I should have used this: full.fulldomain.com\help

After that update, it immediately synced. *sigh*.
Hope it helps all of you!
kyler

About Me

Hello, World.

So.. why a blog?

I started this blog for two reasons. The most important of which is -- I have learned so much from many, many random posts online as I work on different systems. I feel I should give back and post my own revelations, tribulations, and solutions to tough and confusing issues so others can benefit from the time and effort I've put in. Not doing good -- just doing my best to even the score a little bit.

The least important of the why is so I can remember my own solutions.

Information wants to be Free

It's my deep belief that information wants to be free, and this is a small way that I can help. The world has become flat and cheap in terms of accessibility of information and the ability for someone to both learn a great deal and improve the lives of others, even at great distance. I hope to do that, and I hope this blog encourages others to do that, also.

Open Source Software Rocks

The sense of community, flexibility, and general do-gooder-ness of open-source software encourages me to use it and contribute when I can. I also work for a small company with a careful budget, so that type of software is great for our situation.

Please, contribute!

We all help one another by contributing. I'll doubtlessly post information that's misleading, wrong, etc. -- tell me! We, as a group, improve one another. I'll do my best to listen to posts and update my entries to provide correct information (and I'll do my best to attribute corrections to you!)

How to find me

LinkedIn: www.linkedin.com/in/kylermiddleton
Twitter: https://twitter.com/kymidd
GitHub: https://github.com/KyMidd
Or use the contact me form on the right sidebar!