ubuntu17.04提供了安装后的cacti 0.8.8h,但同时提供的php7与cacti喜欢的php5.7有冲突。需要修改cacti源码(cmd.php FIXME)才能保证cacti部分工作。
现在将我使用的一种不错的cacti方法说出来。
使用docker安装cacti最新版本cacti1.1.12
方法如下,在ubuntu16.04下,
1(optional) 克隆 https://github.com/scline/docker-cacti.git
git clone https://github.com/scline/docker-cacti.git
2 编写一个docker-compose.xml
参考 https://github.com/scline/docker-cacti/tree/master/docker-compose
时区改一下呵,时区修改参考FIXME
TZ=Asia/Shanghai
3 运行 docker-compose up -d
在docker-compose.xml同目录,运行,目的是下载cacti,并安装mysql,并将二者关联起来。
4 经过步骤3此时cacti已经运行起来,按照传统cacti安装步骤,通过http服务访问cacti,进行安装。例如http://**:80(80为docker中指定端口)
5 经过步骤4后可以正常运行cacti,其他都可以用docker来对容器进行维护。
例如,向cacti里放入脚本文件
docker cp test.pl 2345:/cacti/scripts/ (其中2345是docker容器实例id,/cacti/scripts/是cacti运行目录)
在cacti里执行测试
docker exec 2345 /bin/bash 进入交互模式
2345> snmpwalk ...执行snmpwalk脚本测试
此方法的优点:
1 使用docker,与宿主机无关,因而对宿主机操作系统,php等版本无要求(最好是centos7,因centos6不太支持docker)
2 半小时内完成搭建和测试(只是从网上拖文件)
附件1
参考 https://github.com/scline/docker-cacti/tree/master/docker-compose
docker-compose.yml
version: '2' services: cacti: image: "smcline06/cacti" ports: - "80:80" - "443:443" environment: - DB_NAME=cacti_master - DB_USER=cactiuser - DB_PASS=cactipassword - DB_HOST=db - DB_PORT=3306 - DB_ROOT_PASS=rootpassword - INITIALIZE_DB=1 - TZ=America/Los_Angeles links: - db db: image: "percona:5.7.14" ports: - "3306:3306" command: - mysqld - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci - --max_connections=200 - --max_heap_table_size=128M - --max_allowed_packet=32M - --tmp_table_size=128M - --join_buffer_size=128M - --innodb_buffer_pool_size=1G - --innodb_doublewrite=OFF - --innodb_flush_log_at_timeout=3 - --innodb_read_io_threads=32 - --innodb_write_io_threads=16 environment: - MYSQL_ROOT_PASSWORD=rootpassword - TZ=America/Los_Angeles