Это старая версия документа!
/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. 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:
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
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'; > GRANT ALL ON `cacti`.* TO 'cacti'@'10.215.130.21'; > GRANT SELECT ON `mysql`.`time_zone_name` TO 'cacti'@'10.215.130.21'; > FLUSH PRIVILEGES; > 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
mysql -h 10.215.130.20 -u cacti -prfRn3c_rkjn > use cacti > show tables; +-------------------------------------+ | Tables_in_cacti | +-------------------------------------+ | aggregate_graph_templates | | aggregate_graph_templates_graph | | aggregate_graph_templates_item | | aggregate_graphs | | aggregate_graphs_graph_item | | aggregate_graphs_items | | automation_devices | | automation_graph_rule_items | | automation_graph_rules | | automation_ips | | automation_match_rule_items | | automation_networks | | automation_processes | | automation_snmp | | automation_snmp_items | | automation_templates | | automation_tree_rule_items | | automation_tree_rules | | cdef | | cdef_items | | color_template_items | | color_templates | | colors | | data_debug | | data_input | | data_input_data | | data_input_fields | | data_local | | data_source_profiles | | data_source_profiles_cf | | data_source_profiles_rra | | data_source_purge_action | | data_source_purge_temp | | data_source_stats_daily | | data_source_stats_hourly | | data_source_stats_hourly_cache | | data_source_stats_hourly_last | | data_source_stats_monthly | | data_source_stats_weekly | | data_source_stats_yearly | | data_template | | data_template_data | | data_template_rrd | | external_links | | graph_local | | graph_template_input | | graph_template_input_defs | | graph_templates | | graph_templates_gprint | | graph_templates_graph | | graph_templates_item | | graph_tree | | graph_tree_items | | host | | host_graph | | host_snmp_cache | | host_snmp_query | | host_template | | host_template_graph | | host_template_snmp_query | | plugin_config | | plugin_db_changes | | plugin_hooks | | plugin_realms | | poller | | poller_command | | poller_data_template_field_mappings | | poller_item | | poller_output | | poller_output_boost | | poller_output_boost_processes | | poller_output_realtime | | poller_reindex | | poller_resource_cache | | poller_time | | reports | | reports_items | | sessions | | settings | | settings_tree | | settings_user | | settings_user_group | | sites | | snmp_query | | snmp_query_graph | | snmp_query_graph_rrd | | snmp_query_graph_rrd_sv | | snmp_query_graph_sv | | snmpagent_cache | | snmpagent_cache_notifications | | snmpagent_cache_textual_conventions | | snmpagent_managers | | snmpagent_managers_notifications | | snmpagent_mibs | | snmpagent_notifications_log | | user_auth | | user_auth_cache | | user_auth_group | | user_auth_group_members | | user_auth_group_perms | | user_auth_group_realm | | user_auth_perms | | user_auth_realm | | user_domains | | user_domains_ldap | | user_log | | vdef | | vdef_items | | version | +-------------------------------------+ 109 rows in set (0.03 sec)
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)