安装LAMP环境,固然,若是你有兴趣能够采用编译,我线上Mysql是编译的,其他是yum安装的。在此次实验采用yum安装。php
关闭iptables与selinux,若是有须要,后面再开启。配置好yum源,开始安装。html
yum -y install httpd httpd-devel httpd-manual mysql mysql-devel mysql-server php php-devel php-mysql php-common php-pdo php-gd lm_sensors net-snmp net-snmp-devel php-snmp net-snmp-utils dejavu-* patchmysql
chkconfig mysqld onlinux
chkconfig httpd on sql
chkconfig snmpd on 数据库
service mysqld start apache
service httpd start vim
service snmpd start windows
在浏览器中输入http://serverip,查看测试页有没有出现。浏览器
vim /etc/snmp/snmd.conf
#/etc/init.d/snmpd restart
验证snmp配置是否正确
# snmpwalk -v 2c -c public 127.0.0.1 if 表示正确
IF-MIB::ifIndex.1 = INTEGER: 1
IF-MIB::ifIndex.2 = INTEGER: 2
IF-MIB::ifDescr.1 = STRING: lo
若是提示Timeout: No Response from 127.0.0.1则配置不对。
# mysqladmin -u root password 'sky123'
# mysql -u root -p
输入密码
mysql> create database cacti;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on cacti.* to cactiuser@localhost identified by 'cactiuser';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
# mariadb
MariaDB [(none)]> grant select on mysql.time_zone_name to 'cactiuser'@'localhost' identified by 'cactiuser';
Query OK, 0 rows affected (0.03 sec)
Tip:建立 cacti数据库与cactiuser,能够省略在cacti配置文件中修改。固然也能够建立别的名字,只是在cacti的配置文件须要多作两步。
yum -y install cairo-devel libxml2-devel pango pango-devel perl-CPAN
tar zxf rrdtool-1.4.8.tar.gz
cd rrdtool-1.4.8
./configure --prefix=/usr/local/rrdtool
Make && make install
tar zxf cacti-0.8.8b.tar.gz -C /var/www/html/
cd /var/www/html/
mv cacti-0.8.8b cacti
chown -R apache:apache /var/www/html/cacti/
cd /var/www/html/cacti/
patch -p1 -N < /opt/security.patch
Tip:当咱们打开浏览后,是apache用户来访问cacti,若是是编译的http,则不是apache用户,在http.conf有定义
# cactiuser是用于执行poller.php的
cd /var/www/html/
useradd cactiuser
chown -R cactiuser:cactiuser cacti/{rra,log}
mysql -ucactiuser -p cacti < cacti/cacti.sql
Enter password:
vim cacti/include/global.php
vim include/config.php修改下面的数据库链接信息,基本不用修改。
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiuser";
$database_password = "cactiuser";
$database_port = "3306";
$database_ssl = false;
#echo "*/5 * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null" >/var/spool/cron/cactiuser
#/etc/init.d/crond restart
Tip:以cactiuser的身份定时执行这个脚本。
http://IP/cacti/
将/usr/local/bin/rrdtool修改为正确的路径”/usr/local/rrdtool/bin/rrdtool”,点完成输入用户和密码都 是admin,输入以后会要求强制修改密码。
打开http://IP/cacti 打开Console → setting → Genernal →修改下面两项
RRDTool Utility Version选择RRDTOOL 1.4.x
SNMP Version选择version 2
手动执行一次php /var/www/html/cacti/poller.php会提示下警告
PHP Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'America/New_York' for 'EST/-5.0/no DST' instead in /var/www/html/cacti/lib/functions.php on line 486
#vim /etc/php.ini 启用下面并修改。
date.timezone = Asia/Chongqing
/etc/init.d/httpd restart,再执行行php /var/www/html/cacti/poller.php没警告了,这下应该正常了。等几钟应该会出图,
最后获得的结果以下所示。
tar zxf cacti-spine-0.8.8b.tar.gz
cd cacti-spine-0.8.8b
./configure --prefix=/usr/local/cacti-spine
configure: error: Cannot find SNMP headers. Use --with-snmp= to specify non-default path.
#yum -y install net-snmp-devel
#./configure --prefix=/usr/local/cacti-spine
#make && make install
#cd /usr/local/cacti-spine/etc/
#cp spine.conf.dist spine.conf
#vim spine.conf
DB_Host localhost
DB_Database cacti
DB_User cactiuser
DB_Pass cactiuser
DB_Port 3306
DB_PreG 0
测试spine安装是否正确,输出下面信息表示安装成功
# /usr/local/cacti-spine/bin/spine --conf=/usr/local/cacti-spine/etc/spine.conf
SPINE: Using spine config file [/usr/local/cacti-spine/etc/spine.conf]
SPINE: Version 0.8.8a starting
SPINE: Time: 0.1251 s, Threads: 5, Hosts: 2
打开catcti网页。
Console→ setting → poller 将cmd.php修改为spine,并保存。
Console → settings → paths,添加spine命令的路径并保存。
/usr/local/cacti-spine/bin/spine
(本人经常使用的几个插件:settings、thold、monitor、realtime、weathermap)
在安装thold插件,必须先安装settings插件,后安装thold插件。由于settings插件提供email的相关设置,thold插件的报警功能是根据settings里的设置来决定发送邮件的。
tar xf settings-v0.71-1.tgz -C /var/www/html/cacti/plugins
tar xf thold-v0.5.0.tgz -C /var/www/html/cacti/plugins
tar xf monitor-v1.3-1.tgz -C /var/www/html/cacti/plugins
tar xf realtime-v0.5-2.tgz -C /var/www/html/cacti/plugins
unzip php-weathermap-0.98.zip -d /var/www/html/cacti/plugins
chown -R apache.root /var/www/html/cacti/plugins/*
# vim /var/www/html/cacti/include/config.php
//$url_path = "/cacti/"; 在这一行下面添加一行
$plugins[] = 'settings';
$plugins[] = 'thold';
$plugins[] = 'monitor';
$plugins[] = 'realtime';
$plugins[] = ' weathermap';
保存后,打开cacti网页,启用插件console → Configuration → plugin management →将插件安装与启用,以下图表示已经正确启用。
在Console → setting → mail/DNS中填写好
若是点了send a test Email出现下图的错误
解决办法
# cat /var/log/httpd/error.log中提示没权限
sendmail: fatal: chdir /var/spool/postfix: Permission denied
#setenforce 0再测试就ok了
若是成功后,登陆邮箱会收到一封邮件。
若未安装sendmail
yum -y install sendmail-cf sendmail-doc cyrus-sasl m4 dovecot mailx
service sendmail start
chkconfig sendmail on
测试发送邮件
邮件能够发送便可。
(用图形方式显示设备状态)
图示:
绿色:被监控设备状态正常;
红色:被监控设备Down机;
兰色:被监控设备恢复(Down后从新启动,界于红色与绿色之间的状态);
黄色:被监控设备门槛报警
console → settings → Misc
Alarm Sound :设定声音警报的语音
Refresh Interval :设定更新的间隔时间
Show Icon Legend:显示图例,如什么色表明Down机,正常等
Grouping:设置如何分组(选择tree以后,monitor里的主机就会按照graph trees分组显示,见下图(grouping:tree view:tiles)。)
(Default(预设排列);Default with permission(预设排列依照权限);Tree(依照graph的树装结构分组);Device template(依照使用的侦测方式分组),建议使用tree的分组方式,这样会比较符合自订的方式区分出机器,看起来比较好看)
View :选择机器图案的格式
(Default(预设);Tiles(显示信息较为详细);List(清单型,图示会比较小);Colored blocks(背景图案全变色);Simple(极简化)。
根据监控设备的数量而定,设备较少建议使用Tiles,设备较多就使用List。)
编辑主机设置,勾选Monitor host
Devices中选择主机,choose an action选择Enable Monitoring,选择go完成设置
打开Default Tree并添加Items
建立新的Items
在Items中添加主机
查看效果
(用于设备异常预警,阈值报警)
2.2.1 配置
Console → Configuration → Settings 选择“Thresholds”修改相应选项 save
邮箱设置
其中有两处单选框必须选中,分别是:
"Syslogging":这一栏是将要发送的信息记入cacti.log中。
"Send alerts as text":这一栏是将要送的警告信息保存为文本形式,没有图片。
(1) 建立thold模板
Console → Management → Thresholds
单击图中右上脚的“Add”按钮,弹出以下图示:
在图中的“Host:”一栏中,单击右侧的下拉框,选择你要监控的报警的主机,选好“Host:”后,会出现下面的“Graph:”,在下拉框中,选择你要设置报警的服务,这里以选择“sky-test - Used Space - C: Label: Seri [hdd_total]”为例,选择好后,单击“Create”按钮后,会出现一个页面,让你去设置一个阀值,达到多少会发报警邮件:
Templates Name: 这一个Templates 的名称。
Template Propagation Enabled:是否套用Thold模板。若是这个Thold还使用设置好的统一模板的,就选上Enabled
Weekend Exemption: 这一个项目就是六日不会发出警告,很贴心的设计不过在台湾大概行不通。
Disable Restoration Email: 远端主机发生异常断线后从新连结发出警告,这是一个反向的选项,预设是开启,勾选后取消。Threshold Type: 设定警惕值属性,选项有High/Low values,Baseline,Time Based。
Warning High Threshold:告警值上限;
Warning Low Threshold:告警值下限;
High Threshold: 警惕值上限。
Low Threshold: 警惕值下限。
通常状况下,Threshold的阀值即为实际数据,但在网络流量Thold中,有所不一样,具体的换算方法为: 网络流量阀值设定值=网络流量限值/8 如咱们设网络流量限值为10M的话,哪么网络流量阀值设定值为: 10×1024×1024/8= 1310720 |
Data Type: 警惕值计算方式,能够选择Exact Value(回传值为单位),CDEF,Percentage。
Re-Altert Cycle: 重复发出警告的时间间隔。
Notify accounts: 设定警告账号。
Alter E-Mail: 设定警告信的收件者,多位收件者能够用逗号“,”区隔
(2) 建立完在holds中能够查到
(3) 报警的内容更改
选择Console → Configuration → Settings → 选择“Thresholds”
如图示红线处即为变动报警信息的内容:
(4) 套用创建的规则
主机数量多若是要每一部都加上规则是至关消耗时间的,并且往后的维护也不容易,在Cacti 中能够多选主机一次套用Template
console → Graph Managerment--选择要套用thold Templates 的项目,选择图表资源项目,在到下面的选单中选择Create Threshold from Templates 选项,就将选择的主机统一套用所设定的Templates—Continue
要查看已经创建的thold 项目能够到console → thold 这一个项目中,选择status 到any 的情况就会出现全部的项目,预设是只出现被tiggered 的项目,方便管理人员在表单中辨识符合警惕值的主机项目。在主机的内容中Template Propagation Enabled 的项目是被勾选的,就表示这一个项目是有套用thold Templates,当修改Templates 的异动修改都会同步套用到这一项目
选择已有的threshold模板
在thold中查看添加的结果
2.2.3 建立通知列表
打开Console → Notification Lists,可添加一个邮件列表
多个邮箱地址以”,”分割。
安装完realtime,在每个监控图边上,都会有一个小图标,此时点击这个小图标,不会出来实时的数据,会报“The Image Cache Directory directory does not exist. Please first create it and set permissions and then attempt to open another realtime graph”。提示出没有Cache目录以及权限等的错误,须要进一步配置后才能取到数据。
进入cacti的目录
cd /var/www/html/cacti
建立缓存目录并赋权
mkdir cache
chown apache.root cache
缓存目录为:
/var/www/html/cacti/cache
登录cacti网页
在监控端添加被监控机,打开cacti监控界面。
打开“Console → Settings → Misc”,设置“Cache Diredtiory”为“/var/www/html/cacti/cache
”,保存后会出现 [OK: DIR FOUND]
打开Console → User Management
打开admin,勾选Weathermap并保存
打开Console → Weathermaps
配置文件默认位置 /var/www/html/cacti/plugins/weathermap/configs
添加配置文件
打开Weathermaps → Editor
建立配置文件
【Add Node】 添加节点
【Add Link】 添加节点间的链接
【Position Legend】 添加图例
【Position Timestamp】 添加制表时间
(图片位置位于:/var/www/html/cacti/plugins/weathermap/images)
第一行position,表明该节点的位置,由(横坐标,纵坐标)表示,原点在图形的 最左上角;
第二行是内部名称,通常是写一个本身能看懂的名字,例如设备名称,最好修改为与Label相一致;
第三行是Label,标签是显示在外面,显示在网页的名字,给用户看的。默认不支持中文,由于要修改比较复杂,暂时没有较好的方法汉化;
第四行Info ]URL:此节点表明的设备的流量图的网页链接;
第五行‘Hover’Graph URL:此节点表明的设备的流量图的网页链接,经过Pick from cacti这个按钮来选择节点相应的连接;
最后一行选择该节点的图形。
中文乱码
中文显示,咱们能够在配置文件里指定中中文字体的路径
vi /var/www/html/cacti/plugins/weathermap/configs/test.conf
FONTDEFINE 100 /var/www/html/cacti/plugins/weathermap/msyh.ttf 10
msyh.ttf是中文字体的名字.须要用户本身加进去,指定路径,后面10字体是大小
每次对图形进行调整后,都是自动保存的
#yum -y install net-snmp
#vim /etc/snmp/snmpd.conf修改下面三处
关闭iptables服务
#service iptables stop
#chkconfig iptables off
注:若是不关闭iptables,须要进行以下修改
编辑iptable
#vim /etc/sysconfig/iptables开放161端口
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m multiport --destination-port 22,80 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m multiport --destination-port 161 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
-A INPUT -p udp -m state --state NEW -m multiport --destination-port 161 -j ACCEPT
#/etc/init.d/iptables restart
至此被监控端设置完成
Client端:监控window2008主机与网卡流量
安装snmp,在2008后,snmp被作成一个功能的形式,而不是组件。按下面步骤安装snmp
勾选SNMP服务
安装完后,须要重启,window系统基本都是这样。重启后,在管理--->配置--->服务中找到snmp service点属性,作下面修改。
到些,window主机设置完毕。
重启一下snmp服务。
root@summba-dev3:~# apt-get install snmp snmpd
root@summba-dev3:~# vim /etc/default/snmpd
root@summba-dev3:~# vim /etc/snmp/snmpd.conf
root@summba-dev3:~# service snmpd restart
在监控端添加被监控机,打开cacti监控界面。
步骤一:添加完成后保存。
保存后,增长graph template和data query(Associated Data Queries里必选的两项:SNM-Get Mounted Partitions和SNMP-Interface Statsites)
添加snmp -get mounted partions时为后面监控报警可使用ucd/net - Get Monitored Partitions 能够删除,由于snmp - get mounted partions 也会获取磁盘的使用。
这里完了以后,须要点下面的Creat
选择哪些资源画成图形,再选择下面的Create。(select a graph type 选择: 流入/流出 位)
# 流入/流出 位 和 流入/流出 位(64位) 的区别
32位 和 64位 图形的问题,查询32位流量的snmp给出的数据就是小于100M的,而查询64位流量的snmp给出的数据是准确的.因此,对于64位的操做系统或支持64位snmp的主机以及网络设备,都应该在添加图形的时候添加64位记数器的图形.
若是该主机为64位主机,请选择“流入/流出 位(64位)”
若是该主机为32位主机,请选择“流入/流出 位”便可
能够本身选择图形的颜色,这里选择默认的。
下图表示建立成功
步骤二:将graph添加到Graphs
点击graph trees → add
(能够add新的Graph Tree也能够在Default Tree上添加新的主机)
选择host → 选择刚添加的被监控主机 → create
配置完成
点击 graphs就能看到刚添加的被监控设备了
完成后点Create,在device中能够看到刚添加的设备。过几分钟状态应该会变成up。
若是建立时没法建立网卡图片或其余图片时:点击verbose query,排查错误
下面就是debug信息
若是网卡图像没法建立,编辑 vim /etc/snmp/snmpd.conf
view systemview included .1.3.6.1.2.1.1 将这行修改
view systemview included .1.3.6.1.2.1 改为这样
重启snmpd,再从新编辑主机,建立图像。
被监控机监控磁盘容量要在snmpd.conf中添加磁盘分区格式以下
disk /
disk /home
disk /boot
disk /data
或者执行此命令
mount |egrep '^/' |awk '{print "disk " $3}' >> /etc/snmp/snmpd.conf && service snmpd restart
在监控端添加被监控机,打开cacti监控界面。
在cacti添加window,监控主机与网卡流量也与上面同样。只是选择模板的时候须要注意。
第一步: 添加主机并保存
关联图形模板和数据查询
第二步:Create Graphs for this Host
选择发现的磁盘和内存
选择发现的网卡
完成后点击Create(select a graph type 选择: 流入/流出 位)
第三步:将graph添加到Graphs
点击graph trees → add
(能够add新的Graph Tree也能够在Default Tree上添加新的主机)
添加Tree Items
Tree item type中选择root,Tree Item Type选择host,host选择对应的主机
(Tree Item Type:)
Save添加完成。
进入cacti ,点击settings ,而后点击右边的Poller,将Poller Interval和Cron Interval所有设置为every minute,而后点击最下面的save (固然Poller Interval 能够设置为10s ,15s,20s,30s,)
[root@monitor rra]# vi /var/spool/cron/cactiuser
* * * * * /usr/bin/php /var/www/html/cacti/poller.php &>/dev/null
我这里的是网络流量监控,因此直接修改Interface Traffic 点击进去,将Step 300 改成60 ,Associated RRA’s 把1 minute average 也选择上,而后点击save 退出
(同理,能够修改cpu、磁盘等相关监控的间隔)
System Utilities-Rebuild Poller Cache
cd /var/www/html/cacti/cli/
php -q rebuild_poller_cache.php –d
cd /var/www/html/cacti/rra
rm -rf *
最后发现仍是5分钟一次。无奈删除全部的graph,而后从新添加graph后正常。
console-Management->Data Sources->RRAs
修改模版参数,如hourly(1 minute average)
Consolidation Functions设置为:max、min、average和last
X-Files Factor修改成:0.5
Steps设置为:1 (每1分钟绘图一次)
Rows设置为:60(在Timespan这个时间跨度里保存的数据记录数,单位为minutes)
Timespan设置为:3600(时间跨度,单位:秒)(不用修改,由于每小时、天天、每一年对应的时间(秒)都是固定值)
推荐的模版参数以下:
若是想让天天、每周或者每个月(31天)的steps为1分钟,推荐的设置以下(只需修改steps和rows,计算方法为:以Weekly为例,按steps为1(每分钟)为单位,rows=7*24*60=10080):
当rows超过10000行,须要按照步骤2修改php配置。
rows默认存储数据最大值为10000,要想存储超过10000行的数据,须要修改lib/rrd.php文件中的参数maxrows
参考以下:
/* basic export options */
$xport_opts =
"--start=$xport_start" . RRD_NL .
"--end=$xport_end" . RRD_NL .
"--maxrows=100000" . RRD_NL;
$xport_defs = "";
以windows为例,在windows下查看网卡信息以下:C:\Users\Administrator>wmic nic list brief
ifName: 对应的是Name(IF-MIB)
ifAlias:对应的是Alias(IF-MIB),常见于交换机的配置描述
ifIP: 对应的是IP Address列
ifDescr:对应的是Description(ipconfig /all 中的描述)
修改完成后,在添加图形时必定要选择对应修改后的graph
修改默认显示长度的方式:
登陆到cacti管理页面,打开
Console -> Settings -> Visual -> Maximum Field Length: 默认15,修改成30
注:已生成Graph的图像须要删除从新生成才会生效