Cacti auf CentOS 7 mit LAMP Stack und SNMP installieren
Cacti ist ein kostenloses Open-Source-Tool zur Netzwerküberwachung und Datenvisualisierung, das mit PHP entwickelt wurde. Mithilfe von RRDtool (Round-Robin-Datenbankwerkzeug) bietet Cacti umfangreiche Funktionen wie lokale und entfernte Datensammler, vorgefertigte Diagrammvorlagen, automatisierte Netzwerkerkennung und effiziente Geräteverwaltung.
Voraussetzungen
- Eine neue CentOS 7 x64 Serverinstanz, z. B. mit der IP-Adresse
203.0.113.1
. - Ein Benutzerkonto mit sudo-Rechten.
- Das System sollte auf dem neuesten Stand sein und das EPEL-YUM-Repository verwenden.
Schritt 1: LAMP-Stack einrichten
Vor der Installation von Cacti muss eine funktionsfähige LAMP-Umgebung (Linux, Apache, MariaDB, PHP) eingerichtet werden. Die folgende Anleitung hilft dir, Apache 2.4, MariaDB 10.2 und PHP 7.1 auf CentOS 7 zu installieren.
Apache 2.4 installieren
sudo yum install httpd -y
sudo sed -i 's/^/#&/g' /etc/httpd/conf.d/welcome.conf
sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/httpd/conf/httpd.conf
sudo systemctl start httpd.service
sudo systemctl enable httpd.service
MariaDB 10.2 installieren
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo yum install MariaDB-server MariaDB-client -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
MariaDB absichern
sudo /usr/bin/mysql_secure_installation
Bei der Konfiguration antworte auf die Fragen wie folgt:
- Aktuelles Root-Passwort eingeben (Enter drücken, falls leer)
- Root-Passwort setzen? [Y/n]: Y
- Neues Passwort: dein-MariaDB-Root-Passwort
- Passwort bestätigen: dein-MariaDB-Root-Passwort
- Anonyme Benutzer entfernen? [Y/n]: Y
- Root-Login aus der Ferne verbieten? [Y/n]: Y
- Testdatenbank entfernen? [Y/n]: Y
- Berechtigungen jetzt neu laden? [Y/n]: Y
Datenbank für Cacti erstellen
mysql -u root -p
CREATE DATABASE cacti;
CREATE USER 'cactiuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON cacti.* TO 'cactiuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
Hinweis: Ersetze zur Sicherheit die Platzhalter cacti
, cactiuser
und yourpassword
durch sichere, eigene Werte.
PHP 7.1 und erforderliche Erweiterungen installieren
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
sudo yum install -y mod_php71w php71w-process php71w-common php71w-pdo php71w-xml php71w-ldap php71w-mbstring php71w-gd php71w-snmp php71w-mysqlnd php71w-cli php71w-mcrypt php71w-opcache php71w-imap php71w-intl
sudo cp /etc/php.ini /etc/php.ini.bak
sudo sed -i 's#;date.timezone =#date.timezone = America/Los_Angeles#' /etc/php.ini
HTTP-Dienst in der Firewall öffnen
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --reload
Schritt 2: Weitere Abhängigkeiten installieren
Zusätzlich zum LAMP-Stack benötigt Cacti einige weitere Pakete. Installiere diese mit folgendem Befehl:
sudo yum install -y net-snmp net-snmp-utils rrdtool
sudo systemctl start snmpd.service
sudo systemctl enable snmpd.service
Schritt 3: Cacti-Dateien und Datenbank vorbereiten
Beginne damit, das Archiv für Cacti Version 1.1 herunterzuladen und zu entpacken.
cd
wget http://www.cacti.net/downloads/cacti-1.1.20.tar.gz
tar -zxvf cacti-1.1.20.tar.gz
Verschiebe das entpackte Cacti-Verzeichnis an den Zielort, erstelle die erforderliche Logdatei und passe Eigentumsrechte und Berechtigungen an.
sudo mv ~/cacti-1.1.20 /opt
sudo ln -s /opt/cacti-1.1.20 /var/www/html/cacti
sudo touch /opt/cacti-1.1.20/log/cacti.log
sudo chown -R apache:apache /opt/cacti-1.1.20
Importiere Zeitzoneninformationen und lade die Cacti-Datenbankdatei in MariaDB.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
mysql -u root -p cacti < /var/www/html/cacti/cacti.sql
mysql -u root -p
Gib innerhalb der MySQL-Sitzung die folgenden Befehle ein, um Berechtigungen zu setzen und zu beenden:
GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost IDENTIFIED BY 'yourpassword';
FLUSH PRIVILEGES;
EXIT;
Cacti-Konfiguration anpassen
Bearbeite die Konfigurationsdatei von Cacti mit dem Editor vi
:
sudo vi /var/www/html/cacti/include/config.php
Stelle sicher, dass die folgenden Einstellungen korrekt sind:
$database_type = 'mysql';
$database_default = 'cacti';
$database_hostname = 'localhost';
$database_username = 'cactiuser';
$database_password = 'yourpassword';
$database_port = '3306';
$database_ssl = false;
$url_path = '/cacti/';
Speichere die Datei und beende den Editor mit:
:wq!
Cronjob für den Cacti Poller einrichten
Um die regelmäßige Ausführung des Poller-Skripts sicherzustellen, richte einen Cronjob für den Apache-Nutzer ein:
sudo crontab -u apache -e
Füge die folgende Zeile in die Crontab-Datei ein:
*/5 * * * * php /var/www/html/cacti/poller.php > /dev/null 2>&1
Schritt 4: Apache Virtual Host für Cacti konfigurieren
Damit Apache Cacti ausliefern kann, muss eine eigene Virtual-Host-Konfiguration erstellt werden.
Hinweis: Ersetze die Platzhalter ServerAdmin
, ServerName
und ServerAlias
durch die tatsächlichen Angaben deiner Umgebung.
cat <
ServerAdmin admin@example.com
DocumentRoot /var/www/html/
ServerName cacti.example.com
ServerAlias www.cacti.example.com
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
ErrorLog /var/log/httpd/cacti.example.com-error_log
CustomLog /var/log/httpd/cacti.example.com-access_log common
EOF
Starte Apache neu, damit die Änderungen übernommen werden:
sudo systemctl restart httpd.service
Schritt 5: MariaDB-Konfiguration optimieren
Um die Leistung von Cacti zu verbessern, sollten die folgenden empfohlenen MariaDB-Einstellungen gesetzt werden.
Erstelle zunächst eine Sicherung der bestehenden Konfiguration und öffne die Datei mit vi
:
sudo cp /etc/my.cnf /etc/my.cnf.bak
sudo vi /etc/my.cnf
Suche den Abschnitt [client-server]
oder einen geeigneten Platz und füge folgende Werte hinzu:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
max_heap_table_size=64M
tmp_table_size=80M
join_buffer_size=80M
innodb_buffer_pool_size=256M
innodb_doublewrite=OFF
innodb_flush_log_at_timeout=3
innodb_read_io_threads=32
innodb_write_io_threads=16
Speichere und verlasse den Editor:
:wq!
Aktiviere die Änderungen durch einen Neustart von MariaDB:
sudo systemctl restart mariadb.service
Schritt 6: Cacti-Installation im Browser abschließen
Rufe im Webbrowser http://203.0.113.1/cacti
auf. Dies öffnet den Installationsassistenten von Cacti.
Auf der Seite Lizenzvereinbarung aktiviere die Option zur Zustimmung zur GPL-Lizenz. Klicke anschließend auf Next.
Auf der Seite Pre-installation Checks sollte alles erfüllt sein. Klicke auf Next, um fortzufahren.
Wähle auf der Seite Installation Type die Option New Primary Server und klicke auf Next.
Die Seite Critical Binary Locations and Versions zeigt möglicherweise einen Fehler bezüglich Spine – dieser kann ignoriert werden. Fahre mit Next fort.
Auf der Seite Directory Permission Checks stelle sicher, dass alle angegebenen Verzeichnisse schreibbar sind. Klicke auf Next.
Wähle im Schritt Template Setup die Option Local Linux Machine und beende den Assistenten mit Finish, um zur Login-Seite zu gelangen.
Melde dich auf der Login-Seite mit Benutzername admin
und Passwort admin
an.
Nach dem Einloggen wirst du aufgefordert, das Passwort zu ändern. Verwende ein sicheres Passwort, das alle Anforderungen erfüllt.
Die Einrichtung und Konfiguration von Cacti ist damit abgeschlossen. Als nächsten Schritt solltest du RRDtool korrekt konfigurieren, damit Cacti die benötigten Daten für Diagramme erfassen kann.
Fazit
Du hast nun die vollständige Installation und Einrichtung von Cacti auf einem CentOS 7 Server abgeschlossen. Von der Vorbereitung der LAMP-Umgebung über die MariaDB-Konfiguration bis hin zum Abschluss im Webinterface – dein System ist nun bereit für die Netzwerküberwachung. Mit einer funktionierenden Cacti-Installation kannst du jetzt RRDtool einbinden und weitere Monitoring-Optionen konfigurieren, um deine Infrastruktur effizient zu visualisieren.
Speichere und beende den Editor mit:
:wq!