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 the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /usr/local/apache2/htdocs/cacti/lib/functions.php on line 482
03/07/2016 04:59:02 PM - SYSTEM STATS: Time:1.8146 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
这个也被记录到日志中了
[root@localhost cacti]# tail log/cacti.log
03/07/2016 04:59:02 PM - SYSTEM STATS: Time:1.8146 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
1、报错中可以看出这是因为php时区问题,/etc/php.ini文件中,将注释行;date.timezone改为date.timezone = Asia/Shanghai ,再次执行结果如下。
[root@localhost cacti]# /usr/local/php/bin/php ./poller.php
OK u:0.00 s:0.00 r:0.01
OK u:0.00 s:0.00 r:0.01
OK u:0.00 s:0.00 r:0.01
OK u:0.00 s:0.00 r:0.01
OK u:0.00 s:0.00 r:0.02
03/08/2016 01:03:10 AM - SYSTEM STATS: Time:0.1658 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:5
2、snmp public 报错
注意cacti使用的community要和snmp对应
0x04 SNMP理解SNMP为管理员提供了一个网管平台(NMS),又称为管理站,负责网管命令的发出、数据存储、及数据分析。被监管的设备上运行一个SNMP代理(Agent)),实现设备与管理站的SNMP通信。
每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。简单来说,就是需要一个服务器程序(代理,agent)和一个客户机(管理器,manager)。而与直观上不同的是,SNMP的服务器端代表被管理的事物,而客户机端才是管理者。
其中MIB是以树状结构来组织数据的,每一个节点表示一个被管理的对象,如果没有在这个树上面,那就无法管理(获取信息)
在snmp协议的开始学习中,发现自己比较难理解的就是MIB库的作用。找了一些相关资料相关描述如下
1、管理站与代理端通过MIB进行接口统一,MIB定义了设备中的被管理对象。管理站和代理都实现了相应的MIB对象,使得双方可以识别对方的数据,实现通信。管理站向代理申请MIB中定义的数据,代理识别后,将管理设备提供的相关状态或参数等数据转换为MIB定义的格式,应答给管理站,完成一次管理操作。
2、管理信息库MIB:定义了设备上可以使用的管理信息。代理和管理站使用MIB作为统一的数据接口通信。管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。
3、厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。世界上任何一个公司、学校只要用电子邮件发往iana-mib@isi.edu进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。
4、SNMP对于任何程序设计人员来说是特别易于理解的。总体的简化能够很好地把这个系统简化。一个网络设备以守护进程的方式运行SNMP代理,该守护进程能够响应来自网络的各种请求信息。该SNMP代理提供大量的对象标识符(OID-Object Identifiers)。一个OID是一个唯一的键值对。该代理存放这些值并让它们可用。一个SNMP管理器(客户)可以向代理查询键值对中的特定信息(就是Agent用MIB可以解析来自NMS的请求)。
从程序员的角度看,这和导入大量的全局变量没有多少区别。SNMP的OID是可读或可写的。尽管向一个SNMP设备写入信息的情况非常少,但它是各种管理应用程序用来控制设备的方法(例如针对交换机的可管理GUI)。SNMP中有一个基本的认证框架,能够让管理员发送公共名来对OID读取或写入的认证。绝大多数的设备使用不安全的公共名 "public" 。 SNMP协议通过UDP端口161和162进行通信的。