Это старая версия документа!
/usr/ports/net-mgmt/cacti make install clean
По завершению установки получаю.
Installing cacti-1.2.1...
===> Creating groups.
Creating group 'cacti' with gid '107'.
===> Creating users
Creating user 'cacti' with uid '107'.
=======================================================================
Cacti is now installed. If you install it for the first time,
you may have to follow this steps to make it work correctly:
1. Create the MySQL database, a cacti user, and initialize:
   a) CREATE DATABASE `cacti`;
   b) Create a mysql user/password for cacti:
      CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'password';
      FLUSH PRIVILEGES;
   c) Add GRANTS:
      GRANT ALL ON `cacti`.* TO 'cacti'@'localhost';
      GRANT SELECT ON `mysql`.`time_zone_name` TO 'cacti'@'localhost';
      FLUSH PRIVILEGES;
   d) Import the default cacti database:
      mysql --database=cacti -ucacti -p < /usr/local/share/cacti/cacti.sql
   If you haven't already imported your MySQL timezone data, you need to do this:
      mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
 NOTE:
   * Cacti does not LOCK TABLES.
2. Edit /usr/local/share/cacti/include/config.php from the template
   config.php.orig.
   PHP requires the time zone to be explicitly set rather that rely on
   the system time zone, otherwise poller complains. I added the
   following line to my config.php:
date_default_timezone_set('America/Los_Angeles');
3. Add the following line to cron for cacti:
*/5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
4. Example Apache 2.4 configuration:
   (This assumes that you have installed a working PHP Apache install, e.g. with mod_php)
   <FilesMatch "\.php$">
       SetHandler application/x-httpd-php
   </FilesMatch>
   <FilesMatch "\.phps$">
       SetHandler application/x-httpd-php-source
   </FilesMatch>
   DirectoryIndex index.php
   DocumentRoot "/usr/local/share/cacti"
   Alias /cacti "/usr/local/share/cacti/"
   Alias /Cacti "/usr/local/share/cacti/"
   <Directory "/usr/local/share/cacti">
      Require all granted
      AllowOverride None
      Order Allow,deny
      Allow from all
   </Directory>
5. Open a Cacti login page in your web browser and follow the install instructions.
If you update cacti, open a login page and an updating process will
start automatically.
NOTEs as of 10Aug2014:
1) Cacti now better supports hier(7)
   a) Cacti log files are now found under /var/log/cacti where you can
      manage them using newsyslog.
   b) Cacti RRD files are now found under /var/db/cacti/rra.
   If you have an existing Cacti installation these paths are also
   found in Cacti's SQL database and MUST be updated. These two SQL
   commands should do the trick:
   UPDATE settings SET value='/var/log/cacti/log' \
     WHERE name='path_cactilog';
   UPDATE poller_item SET rrd_path=\
     REPLACE(rrd_path,'/usr/local/share/cacti/rra','/var/db/cacti/rra') \
     WHERE rrd_path REGEXP '^/usr/local/share/cacti/rra';
2) The PERL paths in the Cacti PERL scripts have been updated to
   /usr/local/bin.
Other Erratas:
   1) Mount linprocfs in /compat/linux/proc will allow most scripts to work.
   2) This package does not install a MySQL server in case you wish to use an
      external MySQL server.  Install a package such as mysql57-server if you
      require a local server.
=======================================================================
===>  Cleaning for rrdtool-1.7.0_2
===>  Cleaning for rrdtool-py36-1.7.0_2
===>  Cleaning for ruby-2.4.5_1,1
===>  Cleaning for libyaml-0.2.1
===>  Cleaning for libunwind-20170615
===>  Cleaning for intltool-0.51.0_1
===>  Cleaning for p5-XML-Parser-2.44
===>  Cleaning for freetype2-2.9.1
===>  Cleaning for cairo-1.15.12,2
===>  Cleaning for xcb-util-renderutil-0.3.9_1
===>  Cleaning for xorg-macros-1.19.2
===>  Cleaning for libxcb-1.13.1
===>  Cleaning for check-0.12.0_1
===>  Cleaning for xcb-proto-1.13
===>  Cleaning for libpthread-stubs-0.4
===>  Cleaning for libXau-1.0.9
===>  Cleaning for xorgproto-2018.4
===>  Cleaning for libXdmcp-1.1.2_2
===>  Cleaning for xcb-util-0.4.0_2,1
===>  Cleaning for pixman-0.34.0_1
===>  Cleaning for libX11-1.6.7,1
===>  Cleaning for xtrans-1.3.5
===>  Cleaning for libXext-1.3.3_3,1
===>  Cleaning for libXrender-0.9.10_2
===>  Cleaning for fontconfig-2.12.6,1
===>  Cleaning for gperf-3.0.3_2
===>  Cleaning for mesa-libs-18.3.2
===>  Cleaning for wayland-protocols-1.17
===>  Cleaning for wayland-1.16.0_1
===>  Cleaning for libepoll-shim-0.0.20181229
===>  Cleaning for llvm60-6.0.1_6
===>  Cleaning for binutils-2.32,1
===>  Cleaning for swig30-3.0.12
===>  Cleaning for lua52-5.2.4
===>  Cleaning for ninja-1.8.2_1,2
===>  Cleaning for libXdamage-1.1.4_5
===>  Cleaning for libXfixes-5.0.3_2
===>  Cleaning for libxshmfence-1.2_4
===>  Cleaning for libXxf86vm-1.1.4_3
===>  Cleaning for libdrm-2.4.96,1
===>  Cleaning for libpciaccess-0.13.5
===>  Cleaning for pciids-20190213
===>  Cleaning for pango-1.42.4_1
===>  Cleaning for gobject-introspection-1.56.1,1
===>  Cleaning for python36-3.6.8
===>  Cleaning for meson-0.49.2
===>  Cleaning for py27-setuptools-40.8.0
===>  Cleaning for py36-setuptools-40.8.0
===>  Cleaning for py37-setuptools-40.8.0
===>  Cleaning for py35-setuptools-40.8.0
===>  Cleaning for harfbuzz-2.3.1
===>  Cleaning for graphite2-1.3.13
===>  Cleaning for fribidi-0.19.7
===>  Cleaning for xorg-fonts-truetype-7.7_1
===>  Cleaning for font-bh-ttf-1.0.3_4
===>  Cleaning for mkfontscale-1.2.0
===>  Cleaning for libfontenc-1.1.4
===>  Cleaning for bdftopcf-1.1_2
===>  Cleaning for font-misc-meltho-1.0.3_4
===>  Cleaning for font-misc-ethiopic-1.0.3_4
===>  Cleaning for encodings-1.0.4_4,1
===>  Cleaning for font-util-1.3.1
===>  Cleaning for dejavu-2.37_1
===>  Cleaning for php72-7.2.16
===>  Cleaning for libargon2-20171227_1
===>  Cleaning for php72-ctype-7.2.16
===>  Cleaning for php72-filter-7.2.16
===>  Cleaning for php72-gd-7.2.16
===>  Cleaning for libXpm-3.5.12_2
===>  Cleaning for libXt-1.1.5_2,1
===>  Cleaning for libSM-1.2.3,1
===>  Cleaning for libICE-1.0.9_3,1
===>  Cleaning for jpeg-turbo-2.0.2
===>  Cleaning for nasm-2.14.02,1
===>  Cleaning for libgd-2.2.5_1,1
===>  Cleaning for tiff-4.0.10
===>  Cleaning for jbigkit-2.1_1
===>  Cleaning for webp-1.0.2
===>  Cleaning for giflib-5.1.4
===>  Cleaning for php72-gettext-7.2.16
===>  Cleaning for php72-gmp-7.2.16
===>  Cleaning for gmp-6.1.2_1
===>  Cleaning for php72-hash-7.2.16
===>  Cleaning for php72-json-7.2.16
===>  Cleaning for php72-ldap-7.2.16
===>  Cleaning for openldap-client-2.4.47
===>  Cleaning for php72-mbstring-7.2.16
===>  Cleaning for oniguruma-6.9.0
===>  Cleaning for php72-openssl-7.2.16
===>  Cleaning for php72-pdo-7.2.16
===>  Cleaning for php72-pdo_mysql-7.2.16
===>  Cleaning for php72-posix-7.2.16
===>  Cleaning for php72-session-7.2.16
===>  Cleaning for php72-simplexml-7.2.16
===>  Cleaning for php72-sockets-7.2.16
===>  Cleaning for php72-snmp-7.2.16
===>  Cleaning for net-snmp-5.7.3_19
===>  Cleaning for php72-xml-7.2.16
===>  Cleaning for php72-zlib-7.2.16
===>  Cleaning for cacti-1.2.1
root@klotik:/usr/local/etc/mysql# mysqladmin -uroot -p create cacti Enter password: mysql -u root -p Enter password: > show databases; +--------------------+ | Database | +--------------------+ | information_schema | | cacti | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) > CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRn3c_rkjn'; > CREATE USER 'cacti'@'10.215.130.21' IDENTIFIED BY 'rfRn3c_rkjn'; > use mysql > SELECT Host,User FROM user; +---------------+---------------+ | Host | User | +---------------+---------------+ | 10.215.130.21 | cacti | | localhost | cacti | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +---------------+---------------+ 5 rows in set (0.00 sec) > quit;
Добавляю в созданную базу данных таблицы
root@jail_2:~ # mysql --database=cacti -h 10.215.130.20 -u cacti -p < /usr/local/share/cacti/cacti.sql Enter password:
root@klotik:/usr/local/etc/mysql# mysql --database=cacti -uroot -p < /usr/local/share/cacti/cacti.sql Enter password: root@klotik:/usr/local/etc/mysql# mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql Enter password: Warning: Unable to load '/usr/share/zoneinfo/Factory' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
В /usr/local/share/cacti/include/config.php добавил строку date_default_timezone_set( 'Europe/Moscow' );
Выполняю инструкцию
# mysqladmin -uroot -p create cacti Enter password:
root@localhost [(none)]> CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRnec_rkjn'; Query OK, 0 rows affected (0.41 sec)
root@localhost [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.20 sec)
root@localhost [(none)]> GRANT ALL ON `cacti`.* TO 'cacti'@'localhost'; Query OK, 0 rows affected (0.05 sec)
root@localhost [(none)]> GRANT ALL ON `cacti`.* TO 'cacti'@'localhost'; Query OK, 0 rows affected (0.04 sec)
root@localhost [(none)]> GRANT SELECT ON `mysql`.`time_zone_name` TO 'cacti'@'localhost'; Query OK, 0 rows affected (0.04 sec)
root@localhost [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.02 sec)
root@localhost [(none)]> exit Bye root@klotik:~ # mysql –database=cacti -ucacti -p < /usr/local/share/cacti/cacti.sql Enter password: ERROR 1045 (28000): Access denied for user 'cacti'@'localhost' (using password: YES) root@klotik:~ # mysql –database=cacti -ucacti -p < /usr/local/share/cacti/cacti.sql Enter password: root@klotik:~ # mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql Enter password: Warning: Unable to load '/usr/share/zoneinfo/Factory' as time zone. Skipping it. Warning: Unable to load '/usr/share/zoneinfo/zone.tab' as time zone. Skipping it.
Из файла /usr/local/share/cacti/include/config.php.sample создаю файл конфигурации в котором указываю пользователя и пароль базы данных cacti.
Installing cacti-0.8.8h… ==⇒ Creating groups. Using existing group 'cacti'. ==⇒ Creating users Using existing user 'cacti'.
Cacti is now installed. If you intall it for the first time, you may have to follow this steps to make it work correctly:
1. Create the MySQL database, a cacti user, and initialize:
 a) CREATE DATABASE cacti;
 b) Create a mysql user/password for cacti:
    CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
 c) Add GRANTS:
    GRANT ALL ON cacti.* TO 'cacti'@'localhost';
    FLUSH PRIVILEGES;
 d) Import the default cacti database:
    mysql --database=cacti -ucacti -p < /usr/local/share/cacti/cacti.sql
NOTE:
2. Edit /usr/local/share/cacti/include/config.php from the template
config.php.orig.
PHP requires the time zone to be explicitly set rather that rely on the system time zone, otherwise poller complains. I added the following line to my config.php:
 date_default_timezone_set('America/Los_Angeles');
3. Add the following line to cron for cacti: */5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
4. Example Apache 2.4 configuration:
LoadModule php5_module libexec/apache22/libphp5.so
 <FilesMatch "\.php$">
     SetHandler application/x-httpd-php
 </FilesMatch>
 <FilesMatch "\.phps$">
     SetHandler application/x-httpd-php-source
 </FilesMatch>
DirectoryIndex index.php
DocumentRoot "/usr/local/share/cacti"
Alias /cacti "/usr/local/share/cacti/" Alias /Cacti "/usr/local/share/cacti/"
 <Directory "/usr/local/share/cacti">
    Require all granted
    AllowOverride None
    Order Allow,deny
    Allow from all
 </Directory>
5. Open a Cacti login page in your web browser and login with
admin/admin.
If you update cacti, open a login page and an updating process will start automatically.
NOTEs as of 10Aug2014:
1) Cacti now better supports hier(7)
 a) Cacti log files are now found under /var/log/cacti where you can
    manage them using newsyslog.
 b) Cacti RRD files are now found under /var/db/cacti/rra.
If you have an existing Cacti installation these paths are also found in Cacti's SQL database and MUST be updated. These two SQL commands should do the trick:
UPDATE settings SET value='/var/log/cacti/log' \ WHERE name='path_cactilog';
UPDATE poller_item SET rrd_path=\ REPLACE(rrd_path,'/usr/local/share/cacti/rra','/var/db/cacti/rra') \ WHERE rrd_path REGEXP '^/usr/local/share/cacti/rra';
2) The PERL paths in the Cacti PERL scripts have been updated to
/usr/local/bin.
Other Erratas: Mount linprocfs in /compat/linux/proc will alow most scripts to work.
==⇒ Cleaning for php55-mysqli-5.5.38_1 ==⇒ Cleaning for php55-sockets-5.5.38_1 ==⇒ Cleaning for cacti-0.8.8h
После обновления cacti внёс изменения в базу данных MySQL
mysql -u cacti -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 47041
Server version: 5.6.17-log Source distribution
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use cacti;
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
mysql> UPDATE settings SET value='/var/log/cacti/log' \
    ->      WHERE name='path_cactilog';
Query OK, 1 row affected (0,00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> UPDATE poller_item SET rrd_path=\
    ->      REPLACE(rrd_path,'/usr/local/share/cacti/rra','/var/db/cacti/rra') \
    ->      WHERE rrd_path REGEXP '^/usr/local/share/cacti/rra';
Query OK, 24 rows affected (0,02 sec)
Rows matched: 24  Changed: 24  Warnings: 0
mysql> quit
Bye
При попытке запуститтть poller в консоле получил ошибкау
# /usr/local/bin/php /usr/local/share/cacti/poller.php Shared object "libpng15.so.15" not found, required by "rrdtool"
Просматриваю библитеки
# ls -l /usr/local/lib/ | grep 'png*.*so' lrwxr-xr-x 1 root wheel 11 16 сен 23:57 libpng.so -> libpng16.so lrwxr-xr-x 1 root wheel 19 16 сен 23:57 libpng16.so -> libpng16.so.16.23.0 lrwxr-xr-x 1 root wheel 19 16 сен 23:57 libpng16.so.16 -> libpng16.so.16.23.0 -rwxr-xr-x 1 root wheel 195596 16 сен 23:57 libpng16.so.16.23.0
Создаю ссылку на библиотеку с коротой был установлен rrdtool и которой после обновления нет
# ln -s /usr/local/lib/libpng16.so.16.23.0 /usr/local/lib/libpng15.so.15
root@localhost [(none)]> CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRnec_rkjn'; ERROR 1819 (HY000): Your password does not satisfy the current policy requirements root@localhost [(none)]> CREATE USER 'cacti'@'localhost' IDENTIFIED BY 'rfRn3c_rkjn'; Query OK, 0 rows affected (0.05 sec)
root@localhost [(none)]> use mysql Database changed root@localhost [mysql]> SELECT Host,User FROM user; +———–+—————+
| Host | User | 
+———–+—————+
| localhost | cacti | 
| localhost | mysql.session | 
| localhost | mysql.sys | 
| localhost | root | 
+———–+—————+ 4 rows in set (0.00 sec)
root@localhost [mysql]> quit Bye root@jail_1:/usr/local/etc/mysql# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.7.25-log Source distribution
Copyright © 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
root@localhost [(none)]> CREATE USER 'cacti'@'10.215.130.21' IDENTIFIED BY 'rfRn3c_rkjn'; Query OK, 0 rows affected (0.01 sec)
root@localhost [(none)]> use mysql Database changed root@localhost [mysql]> SELECT Host,User FROM user; +—————+—————+
| Host | User | 
+—————+—————+
| 10.215.130.21 | cacti | 
| localhost | cacti | 
| localhost | mysql.session | 
| localhost | mysql.sys | 
| localhost | root | 
+—————+—————+ 5 rows in set (0.00 sec)