本文共 9050 字,大约阅读时间需要 30 分钟。
CentOS 一键安装Cacti 1.2.3脚本
转自:https://blog.51cto.com/11434894/2396817?source=dra#!/bin/bash
echo “this script requires git”
yum install -y gitecho “This script will download all Cacti dependecies and download the chosen cacti version from the cacti github”
echo “Dont forget to support cacti @ cacti.net!”echo “set selinux to disabled”
setenforce 0 sed -i ‘s/enforcing/disabled/g’ /etc/selinux/config /etc/selinux/config#Download chosen release
echo "here are some of the current cacti release versions \n release/1.2.3 release/1.2.2 release/1.2.1 release/1.2.0 "echo “which release would you like to download ? Hit enter for latest”
read versionif [ “$version” == “” ]
then git clone https://github.com/Cacti/cacti.gitelse
yum install -y wget unzip wget https://github.com/Cacti/cacti/archive/release/$version.zip unzip v e r s i o n m v c a c t i − r e l e a s e − version mv cacti-release- versionmvcacti−release−version cacti fiecho “will you be using the spine poller enter 1 for yes 2 for no”
read answer if [ $answer == “1” ] then ##Download packages needed for spine yum install -y gcc mysql-devel net-snmp-devel autoconf automake libtool dos2unix help2man echo “downloading and compling spine” git clone https://github.com/Cacti/spine.git cd spine ./bootstrap ./configure make make install chown root:root /usr/local/spine/bin/spine chmod u+s /usr/local/spine/bin/spine cd …else
echo “spine dependecies will not be installed” fiecho “On Centos systems we need to enable EPEL repos”
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y yum install yum-utils -y yum-config-manager --enable remi-php72echo “Downloading PHP modules needed for Cacti install”
yum install -y rrdtool mariadb-server net-snmp-utils net-snmp snmpd php php-mysql php-snmp php-xml php-mbstring php-json php-gd php-gmp php-zip php-ldap php-mc php-posix
###Start services
systemctl enable httpd
systemctl enable mariadb systemctl start mariadb systemctl start httpd####Open Port 80 and 443 on firewalld
echo “Open http and https ports on firewalld”
firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload##Timezone settings needed for cacti
echo "Enter your PHP time zone i.e America/Toronto Default is US/Central " read timezone if [ $timezone == “” ] thenecho “date.timezone =” US/Central >> /etc/php.ini
elseecho “date.timezone =” $timezone >> /etc/php.ini
fi
echo “Where would you like to install cacti default location is /var/www/html hit enter for default location”
read location if [$location = “”] thenlocation="/var/www/html"
mv cacti /var/www/html
else mv cacti $location fi#Create cacti user and change permission of directory
echo “Which user would you like to run Cacti under (Default is www-data) hit enter for default” read user if [$user = “”] then user=“apache” echo “cacti will be run under apache” chown -R apache:apache $location/cacti else useradd $user chown -R u s e r : user: user:user $location/cacti fi#assign permissions for cacti installation
chown -R apache:apache $location/cacti/resource/snmp_queries/
chown -R apache:apache $location/cacti/resource/script_server/ chown -R apache:apache $location/cacti/resource/script_queries/ chown -R apache:apache $location/cacti/scripts/ chown -R apache:apache $location/cacti/cache/boost/ chown -R apache:apache $location/cacti/cache/mibcache/ chown -R apache:apache $location/cacti/cache/realtime/ chown -R apache:apache $location/cacti/cache/spikekill/ touch $location/cacti/log/cacti.log chmod 777 $location/cacti/log/cacti.log chown -R apache:apache $location/cacti/log/ cp $location/cacti/include/config.php.dist $location/cacti/include/config.php##Create database
echo “would you like to customize the database name and user ? hit enter for defaults” read customizeif [[ $customize = “” ]]
thenmysql -uroot <<MYSQL_SCRIPT
CREATE DATABASE cacti DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ; GRANT ALL PRIVILEGES ON cacti.* TO ‘cacti’@‘localhost’ IDENTIFIED BY ‘cacti’; ; GRANT SELECT ON mysql.time_zone_name TO cacti@localhost; USE mysql; ALTER DATABASE cacti CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; FLUSH PRIVILEGES; MYSQL_SCRIPT#pre populate cacti db
mysql -u root cacti < $location/cacti/cacti.sql mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysqlsed -i -e ‘s@^ d a t a b a s e t y p e . ∗ @ database_type.*@ databasetype.∗@database_type = “mysql”;@g’ /var/www/html/cacti/include/config.php
sed -i -e ‘s@^ d a t a b a s e d e f a u l t . ∗ @ database_default.*@ databasedefault.∗@database_default = “cacti”;@g’ /var/www/html/cacti/include/config.php sed -i -e ‘s@^ d a t a b a s e h o s t n a m e . ∗ @ database_hostname.*@ databasehostname.∗@database_hostname = “127.0.0.1”;@g’ /var/www/html/cacti/include/config.php sed -i -e ‘s@^ d a t a b a s e u s e r n a m e . ∗ @ database_username.*@ databaseusername.∗@database_username = “cacti”;@g’ /var/www/html/cacti/include/config.php sed -i -e ‘s@^ d a t a b a s e p a s s w o r d . ∗ @ database_password.*@ databasepassword.∗@database_password = “cacti”;@g’ /var/www/html/cacti/include/config.php sed -i -e ‘s@^ d a t a b a s e p o r t . ∗ @ database_port.*@ databaseport.∗@database_port = “3306”;@g’ /var/www/html/cacti/include/config.php sed -i -e ‘s@^ d a t a b a s e s s l . ∗ @ database_ssl.*@ databasessl.∗@database_ssl = “false”;@g’ /var/www/html/cacti/include/config.php sed -i -e ‘s@^// u r l p a t h @ url_path@ urlpath@url_path@g’ /var/www/html/cacti/include/config.phpecho “default database setup with following details”
echo “database name cacti\n database username cacti\n database password cacti”else
echo “enter db name”
read customdbname echo “enter db user” read customdbuser echo “enter db password” read customdbpasswordmysql -u root <<MYSQL_SCRIPT
CREATE DATABASE $customdbname; GRANT ALL PRIVILEGES ON c u s t o m d b n a m e . ∗ T O ′ customdbname.* TO ' customdbname.∗TO′customdbuser’@‘localhost’ IDENTIFIED BY ‘$customdbpassword’; GRANT SELECT ON mysql.time_zone_name TO $customdbuser@localhost; ALTER DATABASE $customdbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; FLUSH PRIVILEGES; MYSQL_SCRIPTecho “Pre-populating cacti DB”
mysql -u root $customdbname < $location/cacti/cacti.sql mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysqlsed -i -e ‘s@^ d a t a b a s e t y p e . ∗ @ database_type.*@ databasetype.∗@database_type = “mysql”;@g’ KaTeX parse error: Expected group after '^' at position 48: …p sed -i -e 's@^̲database_default.@ d a t a b a s e d e f a u l t = ′ database_default = ' databasedefault=′customdbname’;@g’ KaTeX parse error: Expected group after '^' at position 48: …p sed -i -e 's@^̲database_hostname.@$database_hostname = “127.0.0.1”;@g’ KaTeX parse error: Expected group after '^' at position 48: …p sed -i -e 's@^̲database_username.@ d a t a b a s e u s e r n a m e = ′ database_username = ' databaseusername=′customdbuser’;@g’ KaTeX parse error: Expected group after '^' at position 48: …p sed -i -e 's@^̲database_password.@ d a t a b a s e p a s s w o r d = ′ database_password = ' databasepassword=′customdbpassword’;@g’ KaTeX parse error: Expected group after '^' at position 48: …p sed -i -e 's@^̲database_port.*@ d a t a b a s e p o r t = " 3306 " ; @ g ′ " database_port = "3306";@g' " databaseport="3306";@g′"location"/cacti/include/config.php
sed -i -e ‘s@^ d a t a b a s e s s l . ∗ @ database_ssl.*@ databasessl.∗@database_ssl = “false”;@g’ " l o c a t i o n " / c a c t i / i n c l u d e / c o n f i g . p h p s e d − i − e ′ s @ / / location"/cacti/include/config.php sed -i -e 's@^// location"/cacti/include/config.phpsed−i−e′s@//url_path@$url_path@g’ $location/cacti/include/config.phpfi
###Adding recomended PHP settings
sed -e ‘s/max_execution_time = 30/max_execution_time = 60/’ -i /etc/php.ini sed -e ‘s/memory_limit = 128M/memory_limit = 400M/’ -i /etc/php.iniecho “Applying recommended DB settings”
echo " innodb_file_format = Barracuda character_set_client = utf8mb4 max_allowed_packet = 16777777 join_buffer_size = 32M innodb_file_per_table = ON innodb_large_prefix = 1 innodb_buffer_pool_size = 250M innodb_additional_mem_pool_size = 90M innodb_flush_log_at_trx_commit = 2 " >> /etc/my.cnf.d/server.cnfecho “this script can download the following plugins monitor,thold would you like to install them ?
type yes to download hit enter to skip” read plugins if [ $plugins == “yes” ] then git clone https://github.com/Cacti/plugin_thold.git git clone https://github.com/Cacti/plugin_monitor.git mv plugin_thold thold mv plugin_monitor monitor chown -R u s e r : user: user:user thold chown -R u s e r : user: user:user monitor mv thold $location/cacti/plugins mv monitor $location/cacti/plugins else echo “plugins will not be installed” fitouch /etc/cron.d/$user
echo "*/5 * * * * $user php KaTeX parse error: Expected 'EOF', got '&' at position 41: … > /dev/null 2>&̲1" > /etc/cron.…userecho “refreshing services”
systemctl restart httpd systemctl restart mariadbecho “Installation completed !”
转载地址:http://hnodi.baihongyu.com/