Archive for the 'Misc' Category

Icinga introduces… Michael Friedrich (Icinga Core and IDOUtils)

Day job: I am working at the Vienna University Computer Center at the Internet Domain Administration department.  My daily work consists of administrating and monitoring DNS services for *.at and the Vienna University. Furthermore I am in charge of several (DNS) Monitoring projects. One of them is the database backend for Icinga Core, named IDOUtils and supporting Oracle/Postgresql.

Which part of Icinga could you put your name on?
Especially IDOUtils and all 3 RDBMS (MySQL, Postgres, Oracle). Regarding the core I am at a fast growing learning stage, but my main focus is on IDOUtils. And if you wanna know, the Postgres and Oracle implementation was running through my fingers and always will be ;-)

What are you currently working on?
Having finished improved Oracle implementation for IDOUtils and finishing the threaded housekeeper from Hendrik, I am currently working on getting the last patches and enhancements into the Core and IDOUtils. I will be in charge of doing the release 1.0.1 on the technical point of view.

Afterwards, Icinga will get deployed onto a productive environment. Other things next to Icinga are kept confidential, but regarding Icinga IDOUtils there might be the chance to improve Postgresql just like I did with Oracle. And on the core side of life I want to see more community patches being applied :)

What attracted you to Icinga?
In the first time the only plan was to get former and now closed NDOUtils Oracle project back to the upstream. In April 2009 I got into that project and I also read about the fork and the ongoing development (and also about the discussions about dead Nagios development).It was a wise and logical decision to catch up with Icinga and to offer IDOUtils Oracle.

In the meantime – after several philosophical sessions with Hendrik – I started coding then and back in August 2009 initial Postgres support has been done. For my work schedule it was only a small step into Oracle direction, but imho a real nice community output :)

What do you enjoy about working on the project?
Getting the Oracle stuff done was a bit harder to keep up with but getting my time alone and several weekends with too much coffee and good music … Anyhow, I really enjoy coding and listening to Tiesto or Armin van Buuren. Most of my initial inspiration and motivation for coding sessions comes from there.

But hey .. I also like to get in touch with the others, looking over their stuff and commits (and to be honest icinga web is a black hole for me). And I like that community feeling… if something is wrong or fresh ideas pop up – No negative auras or words at all. Just like a positive flow and regarding the results – what the heck were we doing in our spare time?

What was one big challenge or memorable moment while on the Icinga team?
Big Challenge: Release of Icinga Core 1.0RC1 and Web 0.9.0-alpha during OSMC. Pure chaos but I liked it … not always the coding stuff but also getting things together and “play” project release manager. The toughest one was the upload of the web – at night after the evening event nobody was online and I was able to upload it to SF.net at 5 a.m. ;-)
Other Challenges were coding with Antibiotika and getting Postgres as a result. And finally Oracle of course.

Memorable moment: Since I am the only one from Vienna, Austria the only thing we had to communicate was Skype and Emails. I got ill the week before the Icinga Weekend and so meeting all Icinga members after arriving somewhere in Nuremberg was a real pleasure. It was like never seen before but we were behaving like old friends getting together after a long time. Such memories keep me running and afterall we will meet again and get our ideas together :-)

Outside of Icinga, what are some of your other pet projects?
Some internal projects concerning DNS in general, based on C and Perl. And the usual work stuff – setting up nameservers and administrating dns related stuff. My work is not really related to my former studies except coding C (but not on hardware anymore).

What would you bet to be the next big thing in the open source or IT world?
Difficult to say. What I can tell – definitely not inserting dollars for a bundled monitoring toolkit and getting a new webinterface and reporting. Not the way the open source thoughts should spread the word.

I am hoping more people will recognize Icinga. Everyone who ever wanted their patches in the upstream is very welcome to contribute. Or even support the team with active development. Remember – it’s free and a community project…

How do you like to spend your time away from the keyboard and monitor?
Uhm there is? Well at this stage 50 hours or more a week are enough, you are right. I really enjoy spending time with friends, enjoying a glass of good  whiskey and sitting back, doing nothing work related of course. If I’ll need to get into my own world, I’m reading Perry Rhodan books. And I really like to watch series like How I met Your Mother, The Big Bang Theory, Two and A Half Men, and so on :) Sometimes a good movie, or going out together. But I’m kind of a workaholic, that’s true ;-)

What’s your two cents on Icinga?
1 cent: Best thing ever happened to me at work. Will continue developing and deploying it at work.

1 cent: Spread the word for all addon and plugin developers and also the community out there to join forces :-)

All together like we thought on OSMC 2009 right before the presentation of Icinga: “If we were not here in this place, working on and enjoying Icinga, others would have done it too.”

  • Share/Bookmark

Icinga meets Nabaztag!

Now for most of us we would not know what a Nabaztag is right? (yes!) Well a Nabaztag is a robotic rabbit that interfaces into your WiFi network and can be used for a range of clever things! to explain this rabbit better you can see the introductory clip here

Hans Moser has set up his cleaver little rabbit to announce his Icinga notifications using PHP.  Here is a short clip on how he went about it and what this little rabbit is capable of…

You can find the full details on Hans’s blog post here also Hans has expanded further on this to also include Icinga status messages, the details can be viewed here

A rather nice alternative to an E-mail or SMS !!!

  • Share/Bookmark

Icinga introduces…

…the team! Over the coming weeks the Icinga team will be making themselves a little better known. They’ll share a bit on what they do for Icinga, what keeps them busy 9 to 5, their offline alter egos and more. So stay tuned!

  • Share/Bookmark

Icinga IDOUtils – More improvements Part I

It’s been a while since I made several changes to the initial Oracle implementation in Icinga IDOUtils. Code has been split, first start of using prepared statements and binded params with ocilib and some other changes to the code.

In the last few weeks I have been investigating a lot on how to implement more improvements and optimize the critical path of data input from Icinga Core.

I want to start with IDOUtils Oracle, more information on other improvements for Icinga and IDOUtils will follow :)

Oracle implementation splits up into several parts taken care of:

  • Rewrite all queries to prepared statements and bind params at runtime
  • Add dynamic procedures for DELETE statements
  • Drop autoincrement emulation by one sequence and insert triggers
  • Add sequences for each table and use INSERT INTO … (id, …) VALUES (seq_name.nextval, …)
  • Add RETURNING id INTO :id for INSERT statements to save one round trip
  • MERGE does not support returning INTO, added SELECT seq_name.currval query instead for fetching last inserted id
  • Rewrite selecting cached objects from DB

The rewritten queries are divided as follows:

  • 1x SELECT latest data time as is (called only at startup)
  • dynamic procedure for DELETE on table by instance_id called at startup for cleaning config/status
  • dynamic procedure for DELETE on tably by instance_id, field compared to time called during periodic cleanup
  • all other queries are prepared with their own statement handler
    • 4x DELETE
    • 52x MERGE
    • 9x INSERT
    • 9x UPDATE
    • 5x SELECT

This summarizes into about 8000 lines (+) and 2000 lines (-) of code modifications :-)

Furthermore I have been thinking on how to provide an upgrade path for all existing IDOUtils Oracle users. Importing data using the newly applied sequences might lead into errors regarding currval of each sequence. A basic upgrade procedure has been provided already – if you want to try, get the latest GIT master.

Stay tuned for more interesting stories to tell :)

… and watch out for Icinga 1.0.1 and fresh IDOUtils Oracle!

  • Share/Bookmark

Icinga demo move

We’re moving our demo systems to a new place. This needs a couple of hours, sorry for the downtime.

Affected systems:

The systems are up and running again. Happy testing!

Kind Regards,

Marius.

  • Share/Bookmark

A Productive Year for Icinga!

Well 2009 has certainly been a very exciting year for the Icinga project, from what started as an idea has become a reality! But this would not have been without your support. What has been achieved in such a short period is due to feedback from you, the user! This is what has shaped the project and made it what it is…

Behind the scenes there is a very dedicated team that has strived to achieve the impossible, and has delivered! with improvements in supporting PostgreSQL & Oracle. Also with current development to a new web UI that will both improve the look and functionality. A lot of work has been done with documentation, currently there is full docs for German & English with work being done on translation to Spanish.

So what will 2010 bring to the Icinga project?

From all of us of the Icinga Team, we wish you a safe and happy new year…

  • Share/Bookmark

Merry Christmas!

Print

  • Share/Bookmark

Developer for PostgreSQL

Are you a developer for PostgreSQL? Do you have spare time to dedicate to a good cause? Do you enjoy working in a team environment? Is coding your focus?

Well no, this is not a job offer! but a request for a competent developer who is familiar with the ways of PostgreSQL & C/C++ to either join or can assist with future development of PostgreSQL within Icinga. Now is that an offer you can’t refuse?

So if this looks like something that you would like to contribute to, then please contact  Michael Friedrich with your interest …

Michael is also available on IRC #icinga-devel

  • Share/Bookmark

Demo access: Icinga’s new web interface is online!

Hi folks,

the day has come: the new web interface is online!

Let’s visit http://alpha.icinga.org/ and log in as guest by using the password guestuser.
Sneak and poke around and give us feedback at icinga-devel@lists.sourceforge.net!

Have fun,

Christian

  • Share/Bookmark

Icinga Web UI installer (testing)

Recently work has been started on setting up an installer for the new Icinga-web UI. This is currently available via the git repository located at https://git.icinga.org/index (git clone git://git.icinga.org/icinga-web.git to get a fresh branch) then simply follow the instructions in the text file /doc/install-fromscratch.txt this will talk you through the remainder of the process.

Listed below are the configure options…

./configure --help
`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
 -h, --help              display this help and exit/
 --help=short        display options specific to this package
 --help=recursive    display the short help of all the included packages
 -V, --version           display version information and exit
 -q, --quiet, --silent   do not print `checking...' messages
 --cache-file=FILE   cache test results in FILE [disabled]
 -C, --config-cache      alias for `--cache-file=config.cache'
 -n, --no-create         do not create output files
 --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
 --prefix=PREFIX         install architecture-independent files in PREFIX
 [/usr/local/icinga-web]
 --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
 [PREFIX]

By default, `make install' will install all the files in
`/usr/local/icinga-web/bin', `/usr/local/icinga-web/lib' etc.  You can specify
an installation prefix other than `/usr/local/icinga-web' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
 --bindir=DIR            user executables [EPREFIX/bin]
 --sbindir=DIR           system admin executables [EPREFIX/sbin]
 --libexecdir=DIR        program executables [EPREFIX/libexec]
 --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
 --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
 --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
 --libdir=DIR            object code libraries [EPREFIX/lib]
 --includedir=DIR        C header files [PREFIX/include]
 --oldincludedir=DIR     C header files for non-gcc [/usr/include]
 --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
 --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
 --infodir=DIR           info documentation [DATAROOTDIR/info]
 --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
 --mandir=DIR            man documentation [DATAROOTDIR/man]
 --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
 --htmldir=DIR           html documentation [DOCDIR]
 --dvidir=DIR            dvi documentation [DOCDIR]
 --pdfdir=DIR            pdf documentation [DOCDIR]
 --psdir=DIR             ps documentation [DOCDIR]

Optional Packages:
 --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
 --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
--with-web-user=<user> sets user name to run icinga
--with-web-group=<group> sets group name to run icinga
--with-bin-user=<user> sets user name for common webfiles
--with-bin-group=<group> sets group for common webfiles

Some influential environment variables:
 CC          C compiler command
 CFLAGS      C compiler flags
 LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
 nonstandard directory <lib dir>
 LIBS        libraries to pass to the linker, e.g. -l<library>
 CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
 you have headers in a nonstandard directory <include dir>

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

Report bugs to the package provider.

So at this stage the installer is just placing the files and setting the permissions for the Icinga-web UI it is not setting up Apache nor checking the necessary prerequisites this still needs to be done manually.

Please report any bug/issues to the Icinga development team at icinga-devel@lists.sourceforge.net

  • Share/Bookmark