cacti0.8.8迁移升级至docker1.2.14


因为现在的cacti在虚拟机中,宿主面临升级的问题,该虚拟机无法迁移,所以只能重装,最近又在学习docker,于是找了个docker版本进行部署,非官方版本,官方目前还没有docker版,此docker版同时运行两个容器,cacti和mariadb

原服务器备份数据

原服务器需要备份两个内容:
1.数据库的数据,主要是cacti的一些配置信息
2.rra文件夹,这个看具体情况,比较大。

在这里插入图片描述
有这两个文件就可以恢复cacti数据,也可以先进行部署docker,因为我第一次折腾时间比较长,从这个数据导入新环境还是断了半天的数据。

docker-compose启动docker

docker 作者链接:
https://github.com/scline/docker-cacti
需要更改一些连接如:时区、数据库用户名、密码

version: '3'
services:


 cacti:
   image: "smcline06/cacti"
   container_name: cacti
   domainname: example.com
   hostname: cacti
   ports:
     - "80:80"
     - "443:443"
   environment:
     - DB_NAME=cacti
     - DB_USER=cacti
     - DB_PASS=password
     - DB_HOST=db
     - DB_PORT=3306
     - DB_ROOT_PASS=password
     - INITIALIZE_DB=1
     - TZ=Asia/Shanghai
   volumes:
     - cacti-data:/cacti
     - cacti-spine:/spine
     - cacti-backups:/backups
   links:
     - db
 db:
   image: "mariadb:10.3"
   container_name: cacti_db
   domainname: example.com
   hostname: db
   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=ON
     - --innodb_flush_log_at_timeout=3
     - --innodb_read_io_threads=32
     - --innodb_write_io_threads=16
     - --innodb_buffer_pool_instances=9
     - --innodb_file_format=Barracuda
     - --innodb_large_prefix=1
     - --innodb_io_capacity=5000
     - --innodb_io_capacity_max=10000
   environment:
     - MYSQL_ROOT_PASSWORD=password
     - TZ=Asia/Shanghai
   volumes:
     - cacti-db:/var/lib/mysql


volumes:
 cacti-db:
 cacti-data:
 cacti-spine:
 cacti-backups:

以上docker-compose更改了3处的密码和2个容器的时区,一共五处,也可以直接复制我这个。

启动docker

docker容器使用docker-compose up进行启动
在这里插入图片描述

启动会比较慢,因为cacti容器中会进行初始化配置和下载更新源,大概3-5min,依网络情况,你们懂得。

docker容器跑起来之后正常应该可以访问cacti,使用ip:port进行访问,至此服务已经正常。
有两个文件夹说一下:
在这里插入图片描述
这两个文件夹一个是cacti数据,一个是数据库数据,数据库数据不用改动,直接登录数据库更改就好。
cacti文件夹是存放cacti的插件、rra等这些配置文件和数据库文件的,也是折腾了很长时间。

现在咱们要做数据迁移,所以进行导入数据库。

数据库导入数据

进入到mariadb容器:
在这里插入图片描述
进去后默认的cacti数据库直接删除:
DROP DATABASE cacti;
删除后新建cacti数据库
create database cacti;
导入数据:
use cacti
source /root/cacti.sql

修改数据库

数据导入完成后,先连接新服务器的数据库,做如下更改:
在这里插入图片描述
将配置改成如图就可以,因为正常安装cacti的话路径一般会在/var/www/html/cacti,如果使用这个目录的话会找不到路径和文件,第一个cacti.log导致访问cacti页面无权限,下面两个是cacti取数据轮询工具,不改的话无法画图。
改了这两个后按照一路下一步时可以正常启动cacti并进入初始化配置,配置完成后会显示升级,会比较慢,我是卡在35%大概卡了5分钟吧,不要着急。

如果以上都正常,那么应该已经可以用之前cacti的用户名密码进入新的cacti,并且数据什么的已经可以看见了。

一开始我没法出图,我重建了轮询,但后来也可能是因为spine的路径问题,记不太清楚了,重建轮询的话进入到cacti容器使用命令运行:
php -q /cacti/cli/rebuild_poller_cache.php

在这里插入图片描述

操作完以上的操作已经可以正常出流量图了

插件

由于我要使用气象图插件,0.88升级到1.2的版本过度太大,导致气象图用不了,从git找了个气象图的插件 PHP Network Weathermap 0.98a,1.x的版本原作者不更新了,都是老外们自己改的,链接如下:https://github.com/thurban/plugin_weathermap
我用的是这款

更改后直接复制进宿主的这个文件夹,复制完成后进去cacti能看见气象图插件

在这里插入图片描述
在这里插入图片描述
启动起来,有可能会报错,名字需要改成weathermap,气象图插件安装好后发现之前的气象图没有了

导入气象图

找到原来的服务器的气象图文件夹,里面有configs全部复制过来
在这里插入图片描述

复制过来以后我等了会儿,发现图出来了,但是流量不显示,是因为原来的气象图配置的rra路径不正确。
原气象图的配置文件中TARGET是这样,但是cacti找不到这个路径,变更为下面图的TARGET
在这里插入图片描述
在这里插入图片描述

用sed将TARGET更改为现有路径,等了会儿,气象图可以正常使用。

至此,cacti折腾了一天后,写了这个笔记。
还有个问题没有解决,就是cpu和memery目前没法获取数据,不知道是spine的问题还是哪里的问题,已经向原作者提issue,希望可以解决吧。
目前cpu出图问题已经解决,源cacti已经删除了,不好考证,不知道是迁移过来oid变了还是原来的cacti和新版cacti oid匹配问题
原来oid值
在这里插入图片描述
现在oid值
在这里插入图片描述

.1.3.6.1.4.1.9.9.109.1.1.1.1.5.1正确的是这个,也可以填最新的.1.3.6.1.4.1.9.2.1.58.0(新版cacti自带模板-cisco cpu)

有问题欢迎讨论。谢谢。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值