Поиск по сайту:

Мониторинг сервера с помощью Icinga 2 и Icingaweb 2 на CentOS 7


На этой странице

  1. 1. Требования
  2. 2. Предварительные примечания
  3. 3. Подготовка
    1. Проверьте подключение к сети
    2. Перейти к корневому каталогу
    3. Установите предварительное программное обеспечение
    4. Отключить SELinux
    5. Обновите систему и перезагрузите компьютер.

    1. Установите дополнительные репозитории
    2. Установка Apache, php и подготовка php.ini
    3. Установка и настройка mariadb
    4. Создание и заполнение базы данных для icinga2
    5. Изменить ido-mysql.conf
    6. Включить и запускать icinga2 при запуске

    Icinga 2 — это масштабируемое программное обеспечение для мониторинга с открытым исходным кодом. В этом руководстве описывается установка Icinga 2 вместе с Icingaweb на сервере CentOS 7.

    1. Требования

    Для установки такой системы вам потребуется следующее:

    • Минимальная серверная система Centos 7. Это может быть сервер, установленный с нуля, как описано в руководстве по минимальному серверу Centos 7.1, или виртуальный сервер или корневой сервер от хостинговой компании, в которой установлена минимальная установка Centos 7.
    • Быстрое подключение к Интернету.

    2. Предварительные замечания

    • В этом руководстве я использую имя хоста icinga2.domain.tld с IP-адресом 192.168.250.100/24 и шлюзом 192.168.250.254. Эти настройки могут отличаться для вас, поэтому вам придется заменить их там, где это необходимо.
    • Выходные данные, показанные здесь, являются лишь примером и могут отличаться в вашей системе в зависимости от вашей базовой системы и уже установленных пакетов.
    • Сервером базы данных будет maria db, и он будет установлен на том же хосте.
    • Пользователь-администратор существует и находится в списке sudoers.
    • В этом руководстве мы отключим SELinux.

    3. Подготовка

    Войти как администратор

    login as: administrator
    's password:
    [ ~]$

    Проверьте подключение к сети

    мы проверим, установлено ли наше интернет-соединение и работает ли разрешение имен:

    ping www.google.de -c3

    Вывод будет таким:

    [ ~]$ ping www.google.de -c3
    PING www.google.de (172.217.20.67) 56(84) bytes of data.
    64 bytes from fra02s27-in-f3.1e100.net (172.217.20.67): icmp_seq=1 ttl=57 time=19.2 ms
    64 bytes from fra02s27-in-f3.1e100.net (172.217.20.67): icmp_seq=2 ttl=57 time=19.3 ms
    64 bytes from fra02s27-in-f3.1e100.net (172.217.20.67): icmp_seq=3 ttl=57 time=19.6 ms
    
    --- www.google.de ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2001ms
    rtt min/avg/max/mdev = 19.276/19.430/19.649/0.195 ms
    [ ~]$
    

    Изменить на корень

    Теперь сделаем себе root. Для этого введите:

    sudo su

    Вывод будет таким:

    [ ~]$ sudo su
    
    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:
    
             #1) Respect the privacy of others.
             #2) Think before you type.
             #3) With great power comes great responsibility.
    
    [sudo] password for administrator:
    [ administrator]#

    Установите предварительное программное обеспечение

    Теперь мы установим некоторое предварительное программное обеспечение:

    • deltarpm уменьшит объем загружаемых файлов, проверив наличие только разностного файла, а не всего пакета.
    • nano — текстовый редактор.
    • wget необходим для загрузки файлов с URL-адресов
    • net-tools необходим для определенных проверок сетевых процессов.
    • gcc — это компилятор GNU.

    yum -y install deltarpm

    Вывод будет таким:

    Loaded plugins: fastestmirror
    base                                                                             | 3.6 kB  00:00:00
    extras                                                                           | 3.4 kB  00:00:00
    updates                                                                          | 3.4 kB  00:00:00
    (1/4): extras/7/x86_64/primary_db
    ...
    ...
    Total download size: 82 k
    Installed size: 209 k
    Downloading packages:
    warning: /var/cache/yum/x86_64/7/base/packages/deltarpm-3.6-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Public key for deltarpm-3.6-3.el7.x86_64.rpm is not installed
    deltarpm-3.6-3.el7.x86_64.rpm                                                    |  82 kB  00:00:00
    Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    Importing GPG key 0xF4A80EB5:
     Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <>"
     Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
     Package    : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@anaconda)
     From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
      Installing : deltarpm-3.6-3.el7.x86_64                                                            1/1
      Verifying  : deltarpm-3.6-3.el7.x86_64                                                            1/1
    
    Installed:
      deltarpm.x86_64 0:3.6-3.el7
    
    Complete!
    
    yum -y install nano wget net-tools gcc

    Вывод будет таким:

    Loaded plugins: fastestmirror
    base                                                                             | 3.6 kB  00:00:00
    extras                                                                           | 3.4 kB  00:00:00
    updates                                                                          | 3.4 kB  00:00:00
    (1/4): extras/7/x86_64/primary_db
    ...
    ...
    Installed:
      gcc.x86_64 0:4.8.5-4.el7      nano.x86_64 0:2.3.1-10.el7 net-tools.x86_64 0:2.0-0.17.20131004git.el7
      wget.x86_64 0:1.14-10.el7_0.1
    
    Dependency Installed:
      cpp.x86_64 0:4.8.5-4.el7                         glibc-devel.x86_64 0:2.17-106.el7_2.4
      glibc-headers.x86_64 0:2.17-106.el7_2.4          kernel-headers.x86_64 0:3.10.0-327.13.1.el7
      libmpc.x86_64 0:1.0.1-3.el7                      mpfr.x86_64 0:3.1.1-4.el7
    
    Dependency Updated:
      glibc.x86_64 0:2.17-106.el7_2.4                 glibc-common.x86_64 0:2.17-106.el7_2.4
    
    Complete!
    

    Отключить SELinux

    отредактируйте /etc/selinux/config

    nano /etc/selinux/config

    Находить

    SELINUX=enforcing

    изменить его на

    SELINUX=disabled

    Сохраните файл

    Обновите систему и перезагрузитесь

    Теперь будем обновлять систему.

    yum -y update && yum -y upgrade

    Это может занять некоторое время. После этого перезагрузка.

    reboot

    4. Установите icinga2 и дополнительное программное обеспечение.

    Установите дополнительные репозитории

    После перезагрузки системы войдите в систему как администратор и снова сделайте себя root.

    Сменить каталог на /tmp

    cd /tmp

    Установить репозиторий epel

    yum install -y epel-release

    Установить репозиторий icinga

    rpm --import http://packages.icinga.org/icinga.key
    wget http://packages.icinga.org/epel/ICINGA-release.repo -O /etc/yum.repos.d/ICINGA-release.repo

    Перестроить кеш yum (может занять некоторое время)

    yum makecache

    Установите icinga2, icinga2 mysql-коннектор и плагины nagios.

    yum install -y nagios-plugins-all icinga2 icinga2-ido-mysql icinga-idoutils-libdbi-mysql

    Установка Apache, php и подготовка php.ini

    yum install -y httpd
    yum install -y php-cli php-pear php-xmlrpc php-xsl php-pdo php-soap php-gd php-ldap

    Изменить php.ini

    Находить

    ; Defines the default timezone used by the date functions
    ; http://php.net/date.timezone
    ;date.timezone =
    

    изменить его на

    ; Defines the default timezone used by the date functions
    ; http://php.net/date.timezone
    date.timezone = "Europe/Berlin"
    

    Сохраните файл

    Включить Apache при запуске

    systemctl enable httpd
    [ tmp]# systemctl enable httpd
    Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
    systemctl start httpd

    Проверьте, запущен ли Apache

    netstat -nlp | grep 80
    [ tmp]# netstat -nlp | grep 80
    tcp6       0      0 :::80                   :::*                    LISTEN      10360/httpd

    Установка и настройка mariadb

    yum install -y mariadb-server
    systemctl start mariadb
    systemctl enable mariadb

    Вывод:

    [ tmp]# systemctl enable mariadb
    Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

    Проверьте, работает ли mariadb

    netstat -nlp | grep 3306

    Вывод:

    [ tmp]# netstat -nlp | grep 3306
    tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      11623/mysqld
    

    Установить пароль для пользователя root

    mysql -u root

    Вывод:

    [ tmp]# mysql -u root
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 2
    Server version: 5.5.47-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]>
    
    [MariaDB [(none)]> use mysql

    Вывод:

    [MariaDB [(none)]> use mysql;
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MariaDB [mysql]>
    
    [MariaDB [(mysql)]> update user set password=PASSWORD("root_password") where User='root';

    Вывод:

    update user set password=PASSWORD("root_password") where User='root';
    Query OK, 4 rows affected (0.00 sec)
    Rows matched: 4  Changed: 4  Warnings: 0
    
    [MariaDB [(mysql)]> flush privileges;

    Вывод:

    MariaDB [mysql]> flush privileges;
    Query OK, 0 rows affected (0.00 sec0
    
    [MariaDB [(mysql)]> exit;

    Вывод:

    MariaDB [mysql]> exit;
    Bye
    

    Перезапустите MariaDB

    systemctl restart mariadb

    Создать и заполнить базу данных для icinga2

    Войдите в MySQL с паролем root.

    mysql -u root -p

    Вывод:

    [ tmp]# mysql -u root -p
    Enter password:
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 7
    Server version: 5.5.47-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]>
    
    [MariaDB [(none)]>CREATE DATABASE icinga2;

    Вывод:

    MariaDB [(none)]> CREATE DATABASE icinga2;
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB [(none)]>
    
    [MariaDB [(none)]>GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga2'@'localhost' IDENTIFIED BY 'icinga2_password';

    Вывод:

    MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga2'@'localhost' IDENTIFIED BY 'icinga2_password';
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]>
    
    [MariaDB [(none)]>flush privileges;;

    Вывод:

    MariaDB [(none)]> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    
    MariaDB [(none)]>
    
    [MariaDB [(none)]> exit;

    Вывод:

    MariaDB [none]> exit;
    Bye
    

    Заполнить базу данных

    mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql

    Изменить ido-mysql.conf

    Чтобы заставить icinga2 подключаться к нашей базе данных mariadb, мы должны изменить /etc/icinga2/ido-mysql.conf

    nano /etc/icinga2/features-available/ido-mysql.conf

    Находить

    /**
     * The db_ido_mysql library implements IDO functionality
     * for MySQL.
     */
    
    library "db_ido_mysql"
    
    object IdoMysqlConnection "ido-mysql" {
      //user = "icinga"
      //password = "icinga"
      //host = "localhost"
      //database = "icinga"
    }
    

    изменить его на

    /**
     * The db_ido_mysql library implements IDO functionality
     * for MySQL.
     */
    
    library "db_ido_mysql"
    
    object IdoMysqlConnection "ido-mysql" {
      user = "icinga2"
      password = "icinga2_password"
      host = "localhost"
      database = "icinga2"
    }
    

    Включить и запустить icinga2 при запуске

    включить icinga2 при запуске

    systemctl enable icinga2

    Вывод:

    [ tmp]# systemctl enable icinga2
    Created symlink from /etc/systemd/system/multi-user.target.wants/icinga2.service to /usr/lib/systemd/system/icinga2.service.
    

    Начать icinga2

    systemctl start icinga2

    Чтобы проверить, все ли работает, сделаем tail -f /var/log/icinga2/icinga2.log. Вы можете остановить вывод, нажав CTRL-C.

    tail -f /var/log/icinga2/icinga2.log

    Вывод должен быть примерно таким

    [ tmp]# tail -f /var/log/icinga2/icinga2.log
    [2016-05-10 23:21:50 +0200] information/DbConnection: Resuming IDO connection: ido-mysql
    [2016-05-10 23:21:50 +0200] information/ConfigItem: Activated all objects.
    [2016-05-10 23:21:50 +0200] information/ConfigCompiler: Compiling config file: /var/lib/icinga2/modified-attributes.conf
    [2016-05-10 23:21:50 +0200] information/IdoMysqlConnection: MySQL IDO instance id: 1 (schema version: '1.14.0')
    [2016-05-10 23:21:50 +0200] information/IdoMysqlConnection: Finished reconnecting to MySQL IDO database in 0.201981 second(s).
    

    Заставить icinga2 запускаться при загрузке:

    systemctl enable icinga2

    Вывод:

    [ tmp]# systemctl enable icinga2
    Created symlink from /etc/systemd/system/multi-user.target.wants/icinga2.service to /usr/lib/systemd/system/icinga2.service.
    

    Включить командный модуль icinga2:

    icinga2 feature enable command

    Вывод:

    [ tmp]# icinga2 feature enable command
    Enabling feature command. Make sure to restart Icinga 2 for these changes to take effect.
    

    Перезапустить icinga2

    systemctl restart icinga2