Pigeons on a Euca: Eucalyptus Cloud Monitoring Mobile App via Twitter
Being a system administrator is the easiest job in the building when the system is working; no one questions your presence nor existence. Your tasks are highly under-appreciated during the time of peace, yet you do not mind for such vanity since you’d rather be reading blogs and watching youTubes in serenity. Every once in a while, an idiot cracks an ancient joke, “hey, aren’t you supposed be working?”. But, I’m working, you imbecile employ-of-the-month.
However, the curse begins once you step out of the building, entering the realm of unknowns, far-disconnected from the comfort of your Macbook and Wi-Fi. While staring at endless tail-lights on a freeway, having a long walk on the beach, or being queued behind 7 shopping carts at a grocery market, your mind begins to wonder, “how’s my system doing?”
Since the day 1, you have set up numerous layers of email-notification alarms, but it’s never enough; “getting the e-mails” only means “it’s too late”. Always there is an urge of logging in. But you can’t. You are cut off. You are trapped; the lady in front of you just pulled out a checkbook while the sign clearly says “credit or cash only.” You begin to panic. You compulsively refresh emails on your smartphone, but no answers. Silence is deafening. No news is never the good news. The only exit is when the system whispers in your ear: “Have no worries. Everything is working… For now.”
Now, your concerning days are over. In the midst of the 3G wilderness, the application Pigeons on a Euca will deliver you peace and tranquilly that are comparable to those of a laptop on VPN. Of course, that is if you are equipped with a smartphone at all times and the system is running Eucalyptus Cloud.
The trick is to run a periodic Cloud monitoring app via Twitter.
Instead of being passively notified by emails when there arise problems in the system, you can set up the application Pigeons on a Euca that runs a small script that actively “tweets” the status of the cloud for you and your co-sys.admins to follow.
Screenshot of Pigeons on a Euca on iPhone
Here are the requirements:
- Have a twitter account opened for this application.
- Have a machine, or a virtual machine, running Linux with network capability.
- Have the cloud admin’s credentials.
- Have a smartphone with Twitter Client App installed.
Current (Beta) Features**:
- In every 1 min, it tweets the status-change on running instances*.
- In every 10 min, it tweets the number of currently running instances in the cloud*.
- In every 10 min, it tweets the number of newly-launched instances in the cloud*.
- In every 10 min, it tweets each availability zone information
* These features rely on the new version of euca2ools (v 2.0)
** The application is highly configurable so that more reporting can easily be added when needed.
Instructions on How to Set up the Application Pigeons on a Euca
First, you need to open a new twitter account.
1. Go to twitter.com and sign up for a new account; if you already have an account with Twitter, you are going to need a new email address to create a new twitter account for this application.
2. As soon as the new twitter account is open, check the “Protect my Tweets” box on the Tweet Privacy section so that your tweets do not accidently get broadcast to the public channel.
3. Apply for a developer account at dev.twitter.com.
4. After opening the twitter developer account, you need to create an application at dev.twitter.com.
5. Fill out the application details form. There is no requirement on what you put in the name and description boxes. For the website box, you may specify any working web URL of your choice; it won’t matter for this application.
6. After creating the application, on the “settings” page, change the access level to be “Read and Write“
7. Click the button “Change this Twitter application’s settings” at the bottom of the page to apply the change. It might take a few minutes for the change to be applied.
8. On the “Details” page, verify that the access level is changed to “Read and write“. After seeing that the change has taken place, click on the button “Create my access token” at the bottom of the page.
9. Go to the page “OAuth tool” and verify the consumer key and access token are generated. You will need these keys to configure the application Pigeons on a Euca later.
10. At this point, your twitter account is configured to receive script-generated tweets from the application Pigeons on a Euca.
Second, after the twitter account is ready, you need to set up the machine where the application Pigeons on a Euca will be running on.
1. Install a perl module “Net::Twitter::Lite” on your Linux box.
You may install the module from source by visting the link:
Or, for UBUNTU distributions, such as Lucid, you may simply add the line:
deb http://ubuntu.mirror.cambrium.nl/ubuntu/ lucid main universe
Then, install the perl module twitter-lite-perl by using the commands:
apt-get install libnet-twitter-lite-perl
2. Install the latest version of “euca2ools” (v 2.0)
Visit the website (http://open.eucalyptus.com/downloads) for detailed instructions on how to install the latest euca2ools.
For UBUNTU distributions, such as Lucid, you add the line:
deb http://downloads.eucalyptus.com/software/euca2ools/2.0/ubuntu lucid universe
Then, install euca2ools by using the commands:
apt-get install euca2ools
Third, after all the necessary modules and tools are installed on the machine, now you can finish setting up the application on the machine.
1. Download the tarball pigeons_on_a_euca.tar.gz from the project repository:
2. Untar the tarball at a directory of your choice:
tar zxvf pigeons_on_a_euca.tar.gz
3. On the “my applications” page on dev.twitter.com, copy the lines in the “OAuth tool” section, as shown in the Step 9. of the first instruction set.
4. Change the lines in the file “./pigeon_on_a_euca/pigeon_cage/key/o_auth_settings.key” with your account’s actual values.
5. Perform a quick check to validate the setups so far by running the commands:
perl ./tweet_it_away.pl ./tweets/mytest.tweet
6. Check the twitter account to verify that the line “this is a test” was tweeted. Also notice the lock sign on the tweet that indicates the security level is private.
7. After verifying the test tweet, go to the directory “./pigeons_on_a_euca/credentials” and store your Eucalyptus cloud’s admin credentials.
8. Verify that you can talk to your Eucalyptus cloud via the admin credentials by running the commands:
9. At this point, the application is all set to run. Do a quick check by running the main script:
10. Check the twitter account to verify that the status of instances running on the cloud are being tweeted.
11. To run the main script in the background, do:
nohup perl ./activate_the_pigeons.pl > ./stdout.log >> ./stderr.log &
12. To monitor the run:
tail -f stdout.log
Last, install any Twitter Client App on your smartphone and follow the account that you created above.
Now you have an mobile application that keeps you updated with the status of the cloud.
Warning: The amount of tweets generated by the application might be overwhelming; at its maximum rate, it will upload 350 tweets per hour. It is recommended that you and your co-workers open a separate twitter account exclusively for receiving tweets from this application.
And, if you decide to modify the script, please be aware of the hourly limit of the tweet updates, which is set to be 350 tweets per hour. Carefully limit your tweets so that the application maintains consistent tweet-ability.
Thank you for your interest in the application, and feel free to contribute and share.