HeikoBornholdt / uberspace-icinga

Anleitung zum Betrieb von Icinga auf einem Uberspace
17 stars 4 forks source link

Icinga2 #10

Open lescheib opened 9 years ago

lescheib commented 9 years ago

Hi,

Hast Du schon mal versucht icinga2 auf Ueberspace zu installieren?

bountin commented 9 years ago

Ich hab es heute kurz probiert:

Cmake ist von uberspace aus nicht installiert - kann man aber einfach selbst übersetzen (zB https://ricwein.com/ricwein/uberspacetutorial/tree/b2567d1ec193579ec796acf042b5c156db9f4183)

Postgres Headers fehlen -> -DICINGA2_WITH_PGSQL=OFF

cmake \
-DCMAKE_INSTALL_PREFIX=/home/$USER/opt/icinga2 \
-DICINGA2_USER=$USER \
-DICINGA2_GROUP=$USER \
-DICINGA2_COMMAND_GROUP=$USER \
-DICINGA2_PLUGINDIR=CMAKE_INSTALL_PREFIX/usr/lib/nagios/plugins \
-DICINGA2_WITH_PGSQL=OFF \
..

Hier fehlt dann Boost und Yajl - und ich wollte es nicht weiter probieren.

Der ganze Weg bis zum vorherigen cmake:

mkdir ~/src
cd ~/src/
wget https://github.com/Icinga/icinga2/archive/v2.2.2.tar.gz -O icinga-2.2.2.tar.gz
tar xzf icinga-2.2.2.tar.gz

cd icinga2-2.2.2/
mkdir build
cd build
HeikoBornholdt commented 9 years ago

Moin,

ich hatte es auch mal einen Abend lang probiert :) . Das Problem mit Boost bekommt man mittels "-DBoost_NO_BOOST_CMAKE=ON" gelöst. Das Problem mit Yajl konnte ich auch nicht lösen. Laut Icinga2-Doku soll das eigentlich auch optional sein (Bug?).

Ich habe mich mit dem Problem an den Uberspace-Support gewandt, hier die Antwort von Jonas:

Hallo Heiko,    

ich habe da jetzt auch ein wenig dran herumanalysiert, aber: Im yajl-devel-RPM gibt es nun mal schlicht keine yajl_version.h.    

$ rpm -ql yajl-devel
/usr/include/yajl
/usr/include/yajl/yajl_common.h
/usr/include/yajl/yajl_gen.h
/usr/include/yajl/yajl_parse.h
/usr/lib64/libyajl.so
/usr/share/doc/yajl-devel-1.0.7
/usr/share/doc/yajl-devel-1.0.7/COPYING    

Nun ist yajl 1.0.7 auch schon etwas betagter. Ich sehe im Icinga-Source-Verzeichnis aber ein Verzeichnis "third-party" mit einem Unterverzeichnis "yajl", in dem unter anderem diese Datei liegt:    

third-party/yajl/src/api/yajl_version.h.cmake    

Das sieht so aus, als würde hier während des Kompiliervorgangs dann erst die yajl_version.h aus dieser Datei erstellt.    

Ich stecke da jetzt nicht so wirklich tief drin, aber habe zumindest diesen Bugreport hier gefunden:    

Only build YAJL when there's no system-provided version available
https://dev.icinga.org/issues/7454    

Offenbar gibt es da im CMake-Prozess einen Switch, der dazu in der Lage wäre, den Bau der _mit Icinga gelieferten_ yajl-Bibliothek auszulösen, dies aber unterlässt, *weil* eine globale (aber ältere) Version vorhanden ist.    

In CMakeLists.txt finde ich diesen Abschnitt hier:    

find_package(YAJL)    

if(NOT YAJL_FOUND)
 include_directories(${icinga2_BINARY_DIR}/third-party/yajl/include)
 link_directories(${icinga2_BINARY_DIR}/third-party/yajl)
 set(YAJL_LIBRARIES "yajl")
endif()    

Ich orakele hier wirklich ins Blaue hinein, schätze aber, dass du das Problem insofern workarounden könntest, in dem du das if...endif um den Block, der das lokal mitgebrachte yajl baut, entfernst, damit das in jedem Fall geschieht, unabhängig vom Vorhandensein der globalen Installation.    

Davon unbenommen würde ich dir aber raten, einen Bugreport bei Icinga2 aufzumachen: Auf die mitgebrachte, vermutlich funktionierende yajl-Library zu verzichten, weil es eine globale gibt, obwohl die bei CentOS 6 schlicht zu alt ist, erscheint mir problematisch.    

Viele Grüße,
Jonas

Ich bin bisher nicht dazu gekommen, den Vorschlag von Jonas auszuprobieren.

MatthiasToberer commented 9 years ago

Hallo,

ist schon jemand weiter gekommen?

HeikoBornholdt commented 9 years ago

Nein. Ich bin mittlerweile auch darüber übergegangen mir einfach die kleinste Kiste bei DigitalOcean zu bestellen und diese automatisiert mit Chef einzurichten.

Aber auch dort habe ich mir Icinga2 noch nicht angeschaut. Die Konfiguration sieht dort ja komplett anders aus. Das hat mich bisher also abgehalten.

On 30 Apr 2015, at 12:03, MatthiasToberer notifications@github.com wrote:

Hallo,

ist schon jemand weiter gekommen?

— Reply to this email directly or view it on GitHub https://github.com/heikobornholdt/uberspace-icinga/issues/10#issuecomment-97726793.

phpfs commented 8 years ago

Hallo, ich schalte mich hier auch mal ein 😀

Ich habe mir vom Support 'boost-devel' installieren lassen. Laut IRC erfordert Icinga2 in der neuesten Version eine Boost-Installation. Yajl lässt sich durch ein paar Änderungen zufriedenstellen.

Ich poste eine kleine Anleitung falls die Installation glückt :)

HeikoBornholdt commented 8 years ago

Viel Erfolg 👍

phpfs commented 8 years ago

Hallo!

Gescheitert ist die Installation nun an zu viel RAM-Bedarf während des gcc-Builds! Die Bibliotheken und die Vorarbeit scheinen kein Problem zu sein.

phpfs

thigg commented 5 years ago

I managed to build it with:

cmake -DCMAKE_INSTALL_PREFIX=/home/$USER/opt/icinga2 -DICINGA2_USER=$USER -DICINGA2_GROUP=$USER -DICINGA2_COMMAND_GROUP=$USER -DICINGA2_PLUGINDIR=CMAKE_INSTALL_PREFIX/usr/lib/nagios/plugins -DICINGA2_WITH_PGSQL=OFF -DICINGA2_UNITY_BUILD=OFF .. The last flag prevented the make process from being killed.