Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

Install Cacti на CentOS 7.x.

Как я ранее писал, мы движемся в сторону Zabbix, но для полноты картины, решил все же «накатить» и посмотреть на Cacti (он же «Кактус»).

 Установим Apache (у меня уже установлен).

# yum install httpd httpd-devel

Установим MySQL (аналогично, у меня уже установлен).

# yum install mysql mysql-server

# yum install mariadb-server -y

Установим PHP (уже присутствует)

# yum install php-mysql php-pear php-common php-gd php-devel php php-mbstring php-cli

# yum install php-snmp

# yum install net-snmp-utils net-snmp-libs

Установим RRDTool.

# yum install rrdtool

Запустим все это:

# systemctl start httpd.service

# systemctl start mariadb.service

# systemctl start snmpd.service

Сконфигурируем System Start-up Links.

# systemctl enable httpd.service

# systemctl enable mariadb.service

# systemctl enable snmpd.service

Установим Cacti.

# yum install cacti

Сконфигурим MySQL Server для Cacti.

-Зададим пароль пользователя в MySQL

#mysqladmin -u root password PASSWORD

-Создадим базу Cacti

# mysql -u root -p

Установим Cacti Tables to MySQL.

# rpm -ql cacti | grep cacti.sql

установим таблицу (потребуется пароль пользователя)

# mysql -u cacti -p cacti < /usr/share/doc/cacti-0.8.8b/cacti.sql

Сконфигурируем MySQL параметры для Cacti.

# nano /etc/cacti/db.php

$database_type = «mysql«;

$database_default = «cacti«;

$database_hostname = «localhost«;

$database_username = «cacti«;

$database_password = «PASSWORD»;

$database_port = «3306»;

$database_ssl = false;

Если включен фаервол (у меня он выключен), то:

# firewall-cmd —permanent —zone=public —add-service=http

# firewall-cmd —reload

Сконфигурируем Apache Server для Cacti. 

# nano /etc/httpd/conf.d/cacti.conf

Alias /cacti    /usr/share/cacti
 
<Directory /usr/share/cacti/>
        Order Deny,Allow
        Deny from all
        Allow from 192.168.10.0/24
</Directory>

Alias /cacti    /usr/share/cacti

<Directory /usr/share/cacti/>
        <IfModule mod_authz_core.c>
                # httpd 2.4
                Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
                # httpd 2.2
                Order deny,allow
                Deny from all
                Allow from all
        </IfModule>
</Directory>

Рестартанем сервис Apache:

# systemctl restart httpd.service

Настроим Cron для Cacti.

# vi /etc/cron.d/cacti

#*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1

Далее можем запускать сервис:

http://192.168.10.120/cacti/

Но, по итогу у меня вот такой «кулак дружбы»:

Посмотрим что можем сделать по теме: на одном из форумов наткнулся вот на такую рекомендацию.

# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql

mysql> use mysql;

mysql> GRANT SELECT ON mysql.time_zone_name TO cactiuser@localhost;

mysql> flush privileges;

reply

Ошибка исправилась, но появилась новая:

Делаем вот так:

touch /usr/share/cacti/log/cacti.log
chown apache:apache /usr/share/cacti/log/cacti.log
chmod 755 /usr/share/cacti/log/cacti.log

Снова видим:

Решение вот это:

Description of problem:
This bug is encountered after installing EPEL cacti. SElinux permissions are not adjusted at install time to allow purging of the cacti log from the user interface.
SELinux is preventing httpd from ‘write’ accesses on the file /var/log/cacti/cacti.log.

***** Plugin catchall (100. confidence) suggests **************************

If you believe that httpd should be allowed write access on the cacti.log file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# ausearch -c ‘httpd’ —raw | audit2allow -M my-httpd
# semodule -i my-httpd.pp

Но и это оказалось не все, при следующем шаге:

Вписываем руками наш путь: /var/log/cacti/cacti.log

Ошибка пропала, но появилась следующая:

Spine Config File Path

На одном из форумов наткнулся на отдельную настройку всего этого:

Here we will take a deep dive into installing and configuring the Spine poller:

  1. As with the Cacti main files, go to http://www.cacti.net and click on Spine under the Download section. Make a note of the latest stable version.
  2. If not already done, create the CACTIVERSION variable and set it to the current Cacti version:

Copy

export CACTIVERSION=1.1.28

  1. Change directories to /tmp/ and issue the following command:

Copy

cd /tmpwget https://www.cacti.net/downloads/spine/cacti-spine-$CACTIVERSION.tar.gz

  1. Extract the file:

Copy

tar -xzvf cacti-spine-$CACTIVERSION.tar.gz

  1. Change to the newly created directory:

Copy

cd cacti-spine-$CACTIVERSION

  1. Prepare the directory for compilation. Please note that this step may not work on other distributions, and additional steps may be needed:

Copy

./bootstrap

  1. Configure the compiling environment:

Copy

./configure 

  1. Compile Spine:

Copy

make

  1. Once the make command finishes, install Spine:

Copy

make install

  1. Now change the owner of the spine binary to root and set the sticky bit so you can use ICMP pings:

Copy

chown root:root /usr/local/spine/bin/spinechmod +s /usr/local/spine/bin/spine

  1. You now have Spine installed, but it needs to be configured. Therefore, copy the sample configuration file to a location where Spine will find it:

Copy

cp /usr/local/spine/etc/spine.conf.dist /etc/spine.conf

  1. Edit the file in vi:

Copy

vi /etc/spine.conf

  1. Change the database configuration to match the settings from earlier:
  1. Create a symbolic link in /sbin to the spine binary:

Copy

ln -s /usr/local/spine/bin/spine /sbin/spine

 

Ошибка не пропала, он так и продолжил ругаться на неправильные пути к папкам, хотя теперь они были правильными.

Продолжил «плясать с бубном» но тут вдруг обнаружил, что доступно обновление пакета cacti, обновил, и о чудо, все благополучно сразу подхватилось.

Наконец чудо свершилось, не без проблем конечно…

В моем случае : admin/password

Далее осталось добавить устройства и посмотреть, как это будет…. Но это уже тема отдельного повествования.

Всем хорошей работы!!!

 

25.07.2019 Posted by | linux and unix | Комментарии к записи Install Cacti на CentOS 7.x. отключены

Cockpit –управляем сервером через Web.

Еще одной, достаточно легкой, оснасткой управления Linux сервера через Web, является Cockpit, решил развернуть посмотреть и на нее. Но мне все равно, больше по душе Webmin.

Установка не сильно сложная.

# yum install cockpit

# systemctl enable —now cockpit.socket

# firewall-cmd —add-service=cockpit

# firewall-cmd —add-service=cockpit —permanent

Далее стучимся:

https://ip-address:9090 (в моем случае https://192.168.10.120:9090)

или

https://server.domain.loc:9090 (https://centos.test.loc:9090)

Относительно того же Webmin, функционал здесь достаточно ограничен, но некоторые функции будут доступны:

  • Нагрузка на сервер в онлайн.

  • Просмотр логов.

Управление аккаунтами пользователей, настройками сети, службами….

А вот Diagnistic Reports, по умолчанию почему-то не работает, но я не стал разбираться…

Подробно можно зачитать здесь: https://cockpit-project.org/

Всем хорошей работы!!!

 

 

18.07.2019 Posted by | linux and unix | Комментарии к записи Cockpit –управляем сервером через Web. отключены

Мониторинг производительности сервера с помощью Netdata в CentOS 7.х.

Хорошо если в компании есть система мониторинга, например тот же Zabbix или Nagios или любая другая. Но достаточно часто бывает, что в наличии только один сервак, на котором крутятся все сервисы и нагрузку на который надо мониторить (например, как нагружен Apache или что-то еще…). В этом случае нам поможет реал-тайм система  Netdata.

Сегодня про нее.

Если Apache еще не установлен, установим его.

# yum install httpd

Запустим его, поставим в автозапуск, посмотрим статус.

# systemctl start httpd

# systemctl enable httpd

# systemctl status httpd

Если включен фаервол разрешим 80 и 443 порты (у меня не включен, но тем не менее).

# firewall-cmd —zone=public —permanent —add-port=80/tcp

# firewall-cmd —zone=public —permanent —add-port=443/tcp

# firewall-cmd —reload

Включим и настроим модуль mod_status в Apache.

# nano /etc/httpd/conf.modules.d/00-base.conf

После того, как включили mod_status, нужно создать файл конфигурации server-status.conf для страницы состояния сервера Apache.

# nano /etc/httpd/conf.d/server-status.conf

<Location "/server-status">
    SetHandler server-status
    #Require host localhost           #uncomment to only allow requests from localhost 
</Location>

Рестартуем Apache.

# systemctl restart httpd

Убедимся, что страница состояния и статистики сервера Apache работает нормально, с помощью веб-браузера командной строки, такого как lynx:

# yum install lynx

# lynx http://localhost/server-status

Теперь установим  Netdata.

# bash <(curl -Ss https://my-netdata.io/kickstart.sh) all

Опять же, если запущен фаервол, откроем порт 19999:

# firewall-cmd —permanent —add-port=19999/tcp

# firewall-cmd —reload

Сконфигурируем Netdata Monitor Apache Performance (это можно и не делать, работать будет и без).

# nano /etc/netdata/python.d/apache.conf

 

Перезапустим сервис:

# systemctl restart netdata

Далее можно подключаться:

http://domain_name:19999

http://server_ip:19999

В моем случае:

http://192.168.10.120:19999

Достаточно красочный симпатичный интерфейс, позволяющий в онлайне видеть большинство показателей сервера:

Вот например те же показатели Apache (сервак тестовый, поэтому нагрузки практически нет).

Всем хорошей работы!!!

11.07.2019 Posted by | linux and unix | Комментарии к записи Мониторинг производительности сервера с помощью Netdata в CentOS 7.х. отключены