Debian10部署Cacti监控 Cacti下载地址: 安装文档: install_or_upgrade_cacti_1.2.18.shinfo:testdebian10cacti版本CACTI_VERSION=版本CACTI_SPINE_VERSION=工作路径CACTI_WORKDIR="/var/www/html/cacti"echo"========================手动配置软件源"apt-getupdateinstallApache(){echoechoecho"========================安装apache"apt-getinstallapache2-y默认html根目录/var/www/echo"========================apache安装版本号如下"apache2-vServerbuilt:2021-06-10T10:13:06}installMySQL(){echoechoecho"========================安装mysql"apt-getinstallmariadb-server-ymysql-Vmysql-e"setpasswordforroot@localhost=password('root');"mysqladminpassword$MYSQL_ROOT_PASSWORD}installPHP(){echoechoecho"========================安装"apt-yinstallsoftware-properties-commonapt-transport-httpslsb-releaseca-certificateswget-O/etc/apt//'echo"deb$(lsb_release-sc)main"/etc/apt//'"========================安装php相应的扩展"sed-i's/;_pathinfo=1/_pathinfo=0/'/etc/php/7.2/fpm/(c)1997-2018+0~20210701.63+debian10~1.gbpd7cd48,Copyright(c)1999-2018,byZTechnologies访问http://ip/}installTools(){echoechoecho"========================安装snmpsnmpd"snmp抓到数据不是储存在mysql中,而是存在rrdtool生成的rrd文件中,rrdtool的作用只是存储数据和画图apt-getinstallrrdtool-yecho"========================配置时间"rm/etc/localtimeln-s/usr/share/zoneinfo/Asia/Shanghai/etc/localtimedate}installCactiPkg(){echoechoecho"========================安装cacti"if[!-d$CACTI_PATH];thenmkdir-p$CACTI_PATHficd$CACTI_PATHif[!-f$CACTI_];thenwget$CACTI_查看Cacti连接数据库默认的帐密,下方先按照这个帐密授权数据库cat$CACTI_WORKDIR/include/|egrep'\$database_'$database_default='cacti';$database_username='cactiuser';$database_port='3306';$database_ssl=false;$database_ssl_cert='';第三个参数表示指定数据库mysql-uroot-p${MYSQL_ROOT_PASSWORD}cacti$CACTI_WORKDIR/配置Cacti使用数据库,如果这儿密码有变化,还需要修改$CACTI_WORKDIR/include/密码配置设置权限cd$CACTI_WORKDIRchown-Rwww-data:www-datarra/log/这个地方一定要注意,由于我们是使用www-data这个用户运行和rra的目录权限是属于www-data,我们不能直接用root的权限去运行下面这个命令`php$CACTI_WORKDIR//dev/null21`对于systemd单元的文件安装,需要修改包含的单元文件以遵循您的安装位置和所需的用户和组来运行Cacti轮询器。mkdir-p/etc/sysconfigtouch/etc/sysconfig/cactidln-s$CACTI_WORKDIR/service//etc/systemd/system/tcactidsystemctlstatuscactid}optimizedConfig(){echoechoecho"========================优化配置:PHP-Recommations(web)"cat/etc/php/7.2/apache2/|grepmemory_limitmemory_limit=400Mcat/etc/php/7.2/apache2/|grepmax_execution_timesed-ri/^"max_execution_time="/c"max_execution_time=60"/etc/php/7.2/apache2//etc/php/7.2/apache2/|_limit=128Msed-ri/^"memory_limit="/c"memory_limit=400M"/etc/php/7.2/cli//etc/php/7.2/cli/|grepmemory_limitmax_execution_time=60cat/etc/php/7.2/cli/|=Asia/Shanghaisystemctlrestartapache2echo"========================优化配置:PHP-模块支持(必须)"您的Cacti数据库登录帐户无权访问MySQLTimeZone数据库.请提供Cacti数据库帐户对"mysql"数据库中"time_zone_name"表的"select"访问权,并在继续之前填充MySQL的TimeZone信息.mysql-uroot-p$MYSQL_ROOT_PASSWORD-e"_zone_nameTOcactiuser@localhostIDENTIFIEDBY'cactiuser';flushprivileges"当Cacti用于非英语的其它语言环境时,数据库使用utf8mb4_general_ci排序规则非常重要,因为某些字符的值不止一个字节.crudini--get/etc/mysql//50-_unicode_cicrudini--set/etc/mysql//50-_heap_table_size31M在执行连接时,如果它们低于此大小,它们将被保存在内存中,并且不会写入临时文件.crudini--set/etc/mysql//50-_buffer_size62Mcrudini--set/etc/mysql//50-_file_formatBarracudacrudini--set/etc/mysql//50-_large_prefix1crudini--set/etc/mysql//50-_buffer_pool_size481M采用现代SSD类型的存储器,具有多个读取IO线程对于具有高IO特性的应用是有利的.crudini--set/etc/mysql//50-_read_io_threads32MariaDB会将innodb_buffer_pool分成内存区域以提高性能.最大值是64.当您的innodb_buffer_pool小于1GB时,您应该使用池大小除以128MB.继续使用这个等式,最大值为64.crudini--set/etc/mysql//50-_buffer_pool_instances5如果您有SSD磁盘,请使用此建议。如果您有物理硬盘驱动器,请使用2000*阵列中活动驱动器的数量。如果使用NVMe或PCIe闪存,则可以使用高达200000的更大数字。crudini--set/etc/mysql//50-_io_capacity_max10000systemctlrestartmysqlecho"========================优化配置:目录权限检查"cd$CACTI_WORKDIRchown-Rwww-data:www-datarra/log/resource/scripts/include/cache/echo"========================优化配置:数据库排序"mysql-uroot-p$MYSQL_ROOT_PASSWORD-e"ALTERDATABASEcactiCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;"systemctlrestartmysql}installCactiSpine(){echoechoecho"========================安装cacti-spine"if[-f/usr/local/spine/bin/spine];theneixt0ficd$CACTI_PATHif[!-f$CACTI_SPINE_];thenwget$CACTI_SPINE_$CACTI_SPINE_$CACTI_PATH编辑CactiSpine配置文件,并将Cacti数据库名称,用户名和密码添加到Spineconf文件中cp/usr/local/spine/etc//usr/local/spine/etc//usr/local/spine/etc/|egrep"^DB_"DB_DatabasecactiDB_Passcactiuser创建任务计划echo"------修改数据采集周期为1分钟"tee/etc//cactiEOF*/1****www-data/usr/bin/php$CACTI_WORKDIR//dev/"在;设置---Poller中修改poller周期、Cron/DaemonInterval为每分钟"}upgradeCacti(){echo"------备份Cacti数据库"mysqldump-uroot-p$MYSQL_ROOT_PASSWORD-l--add-drop-table--lock-tables=falsecacti$CACTI_PATH/"------备份旧的Cacti目录,但RRDfiles除外"tar--exclude=*.rrd-zcvf$CACTI_PATH/${CACTI_VERSION}_backup_`date"+%Y%m%d"`.tgz$CACTI_WORKDIRecho"------下载新版Cacti解压"cd$CACTI_PATHif[!-f$CACTI_VERSION_];thenwget$CACTI_VERSION_$CACTI_VERSION_$CACTI_PATHecho"------覆盖cacti文件"cp-rpf$CACTI_PATH/$CACTI_VERSION_NEW/*$CACTI_WORKDIRecho"------进入目录,并设置适当的权限"cd$CACTI_WORKDIRchown-Rwww-data:www-datarra/log/resource/scripts/include/cache/}installCacti(){installApacheinstallMySQLinstallPHPinstallToolsinstallCactiPkgconfigConnMySQLconfigSystemdoptimizedConfiginstallCactiSpineechoechoecho"安装完成,浏览器访问http://ip/cacti进行配置"echo"配置完成,在http://ip/cacti/?tab=path系统设置-设置-路径修改Spine配置文件路径:/usr/local/spine/etc/"}版本升级:1.2.17-1.2.18#upgradeCacti