pixel
Select Page

Icinga 2 – Monitoring automatisiert mit Puppet Teil 11: Profile Part III

by | Dec 7, 2018 | Linux, Icinga, Puppet, PHP

This entry is part 11 of 14 in the series Icinga 2 Monitoring automatisiert mit Puppet

Die heutige Fortsetzung dieser Serie befasst sich mit dem Management einer PHP-Umgebung für daen Betrieb eines Icinga Web 2 auf dem Icinga-Server. Icinga Web 2 benötigt in aktuellen Versionen mindestens ein PHP in der Version 5.6, kommen dann noch Module hinzu, wird damit einhergehend ein PHP 7 oder neuer vorausgesetzt.
Server mit Debian Stretch bekommen ein aktuelles PHP aus ihren eigenen Repositories, bei RedHat 7 muss auf das SCL (Softwarer Collection Linux) Repository zurückgegriffen werden.
[ruby]class profile::icinga2::server(

) {
case $::osfamily {
‘redhat’: {
require ::profile::repo::epel
require ::profile::repo::icinga
require ::profile::repo::scl
$manage_package = false
$manage_repo = false
$php_globals = {
php_version => ‘rh-php71’,
rhscl_mode => ‘rhscl’,
}
$php_extensions = { mbstring => {}, json => {}, ldap => {}, gd => {}, xml => {}, intl => {}, mysqlnd => {}, pgsql => {}, },

}
‘debian’: {
$manage_package = true
$manage_repo = true
$php_globals = {}
$php_extensions = { mbstring => {}, json => {}, ldap => {}, gd => {}, xml => {}, intl => {}, mysql => {}, pgsql => {}, },

}
default: {
fail("’Your operatingsystem ${::operatingsystem} is not supported.’")
}
}
…[/ruby]
PHP selbst lässt sich mit dem Puppet-Module puppet/php des Projektes Vox Pubuli konfigurieren. Hierbei werden über die Klasse php::globals Einstellungen getätigt, welches PHP, aus welchen Quellen benutzt werden soll. Im Anschluss wir über die Hauptklasse php das Management auf das Betreiben eines FPM (FastCGI Process Manager) eingeschränkt. Dieser lauscht standardmäßig auf TCP-Port 9000 ausschließlich auf localhost.
Neben einem erhöhen des Speicherlimits und dem Setzen der Zeitzone, werden auch die von Icinga Web vorausgesetzten PHP-Extensions aktiviert.
[ruby]

#
# PHP
#
class { ‘::php::globals’:
* => $php_globals,
}
class { ‘::php’:
ensure => installed,
manage_repos => false,
apache_config => false,
fpm => true,
extensions => $php_extensions,
settings => {
‘PHP/memory_limit’ => ‘128M’,
‘Date/date.timezone’ => ‘Europe/Berlin’,
},
dev => false,
composer => false,
pear => false,
phpunit => false,
require => Class[‘::php::globals’],
}[/ruby]
Bei der Klasse profile::repo::scl beschränken wir uns im folgenden Beispiel auf CentOS basierte Systeme, wie es auf RHEL einzubinden ist muss aus der Installations-Dokumentation abgeleitet werden.
[ruby]class profile::repo::scl {
case $::operatingsystem {
‘centos’: {
package { ‘centos-release-scl’:
ensure => installed,
}
} # CentOS
default: {
fail("’Your plattform ${::operatingsystem} is not supported.’")
}
} # case
}[/ruby]

Lennart Betz
Lennart Betz
Senior Consultant

Der diplomierte Mathematiker arbeitet bei NETWAYS im Bereich Consulting und bereichert seine Kunden mit seinem Wissen zu Icinga, Nagios und anderen Open Source Administrationstools. Im Büro erleuchtet Lennart seine Kollegen mit fundierten geschichtlichen Vorträgen die seinesgleichen suchen.

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

More posts on the topic Linux | Icinga | Puppet | PHP

check_prometheus ist jetzt öffentlich verfügbar!

Monitoring ist komplex, das wissen wir hier bei NETWAYS leider zu gut. Deswegen laufen in der Infrastruktur auch mal gerne mehrere Tools für die Überwachung. Zwei gern gesehene Kandidaten sind dabei Icinga und Prometheus. Icinga und Prometheus erfüllen...

Icinga Director auf RHEL 7 / 8 / 9 installieren

Der Icinga Director ist die grafische Konfigurationsmöglichkeit für Icinga. Zu Beginn als unabhängiges Modul für die Open Source Monitoring Lösung Icinga entwickelt, ist er heute ein vollwertiger Teil des Icinga Stacks. Wenn du statt der Konfiguration mit der Icinga...

Trainings

Web Services

Events

Series



Other posts in series: