#################################################
看看是不是thold_data数据表损坏
##################################################
添加TurnBytesintoMBits公式源数据*8/1024/1024
然后如下设置,设置警告和报警的阀值
效果
在cacti目录下,更新thold插件代码,实现thold声音报警
/cacti/plugins/thold/thold_graph.php
在463行的if($row['thold_fail_count']>=$row['thold_fail_trigger'])把以下代码添加入{}内
print‘
(主机=Host=Device)背景:默认情况下Cacti的Down机邮件报警功能只能设置一个统一的接受地址,不够人性化。特是对于集团性质的企业,通常不同的主机是由不同的人员来负责的,因此,为每主机定义不同的邮件接收地址就很有必要。环境:Cacti0.8.7gMonitor1.2.1Thold0.4.1
Setp1:给cacti.host表增加一个字段alertMail
Setp2:修改脚本/plugins/monitor/setup.php,设置Host管理表单项,找到monitor_config_form()方法,在$fields_host_edit3['monitor_text']数组变量下加入$fields_host_edit3['alertMail']数组,如下
$fields_host_edit3['alertMail']=array("method"=>"textbox","friendly_name"=>"AlertEmail","description"=>"Thisistheemailaddressthatwillbesentwhenthishostisreportedasdown.","value"=>"|arg1:alertMail|","max_length"=>"250",);
找到monitor_api_device_save()方法,在return$save;一行的上面,增加如下代码
if(isset($_POST['alertMail']))$save['alertMail']=form_input_validate($_POST['alertMail'],'alertMail','',true,3);else$save['alertMail']=form_input_validate('','alertMail','',true,3);Setp3:修改脚本/plugins/thold/includes/polling.php,将thold_update_host_status()方法替换为如下:functionthold_update_host_status(){global$config;//Returnifwearen'tsettonotify$deadnotify=(read_config_option('alert_deadnotify')=='on');if(!$deadnotify)return0;include_once($config['base_path'].'/plugins/thold/thold_functions.php');
至此,修改完成。
查找thold_mail($item["notify_extra"],”,$subject,$msg,$file_array);行在此行下面加入:
备注:本人的thold安装在/var/www/html/cacti/plugins/thold/目录中,如果注释掉thold_mail,只通过短信发送报警。不注释掉thold_mail,会通过email和短信同时发送报警
thold-functions.php生成的alter.log范例如下:
编写脚本sendsms.sh自动调用飞信机器人发送报警
ok,配置完成了,现在就可以通过短信接收报警信息了
$config['url_path']='/cacti/';
$plugins[]='settings';$plugins[]='thold';
$tabs['mail']='Mail/Mobile';在$temp数组下增加如下代码"settings_mobile_header"=>array("friendly_name"=>"MobileOptions","method"=>"spacer",),"settings_mobile_number"=>array("friendly_name"=>"MobileNumber","description"=>"ThisistheChinaMobileNumberthatthedeadhostnotificationswillbesentto.","method"=>"textbox","max_length"=>255,),
if($Mailer->send($text)==false){print'ERROR:'.$Mailer->error()."\n";return$Mailer->error();}return'';
//addbyseptember//发送短信preg_match("/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/",$subject,$ip);preg_match('/-(.*)]/',$subject,$content);$flag=stristr($subject,'normal');$content=str_replace('-','',str_replace('','',$content[0]));if($flag){$content=$ip[0].$content.'isOK';}else{$content=$ip[0].$content.'hasproblem';}thold_mms($content);//addend
一、软件环境:cacti(需Threshold插件)二、安装过程:Cacti的安装各位google一下,这里就不详细介绍了.
我的cacti文件放在/web/c/cacti/
#打cacti-plugin-arch补丁
完成!
安装settings插件
设置数据库信息以及插件.
安装Threshold插件,只需将解压出来的Thold目录拷贝到cacti/plugins/目录下,并修改cacti配置文件(cacti目录下的include/config.php).在配置中查找$plugins=array();行,在此行下面加入:$plugins[]=‘thold’;再导入数据库.刷新cacti首页,你将看到多出来一个Threshld选项卡.如下所示
三、配置过程:1.设置Threshold插件:选中console选项卡,在左侧菜单中点击Settings,然后点击Alerting/Thold选项卡
2.设置发送警报通知:在DefaultAlertingOptions中选择Sendnotifications3.设置出现down机的情况时(即Monitor出现如图所示)发送警报通知:选择DeadHostsnotifications
报警邮件范例如下:
4.设置警报发送纯文本的电子邮件没有图(默认是HTML电子邮件与图表嵌入在电子邮件):选择Sendalertsastext5.设置周末不执行报警检查:选择Weekendexemptions6.设置报警的门槛:DefaultTriggerCount7.设置EmailingOptionsMailServices:SMTP.(可以选择PHPmail,sendmail,SMTP三种方式)FromEmailAddress:按实际设置FromName:按需要设置(该处显示的name就是email的发件人姓名)
8.进入Mail/DNS标签设置SendmailOptions(MailServices设置为sendmail需设置此项)
SendmailPath:/usr/sbin/sendmail(路径是服务器上Sendmail的,仅用于邮件服务选定为Sendmail)
9.设置SMTPOptions(MailServices设置SMTP需设置此项)
SMTPHostname:SMTP服务器如:mail.test.comSMTPPort:25SMTPUsername:通过SMTP发送邮件用来验证的用户名,如果你不要求身份验证留空SMTPPassword:通过SMTP发送邮件用来验证的密码,如果你不要求身份验证留空
测试:点击SendaTestEmail,测试成功如下所示:
收到的测试邮件范例:
配置完成后别忘记save.下面我以进程报警为例,来设置具体的报警信息(CPU,DISK,服务,网络等等)在console选项卡下左侧菜单中点击ThresholdTemplates.
如果没有出现ThresholdTemplates选项,那么有可能你还没有导入插件的数据库文件.
在如下图所示中点击Add按钮来添加一个Threshold模板
添加进程监控的模板,无论是linux还是windows都是使用的HostMIB-Processes
可以选择proc
我设置的300个最高进程
AlertE-Mail写上通知的邮件地址即可.然后保存.
应用刚才创建的Threshold模板在console选项卡下点击Management->Devices,选择要应用此模板的Host,点击最上面的CreateGraphsforthisHost链接,然后点击Auto-createthresholds链接来应用刚创建的Threshold模板.
需要做的是,监控的主机要设置监控磁盘,如AssociatedGraphTemplates———-HostMIB-Processes要选上,不然thold取不到数据的.
设置完成后在console选项卡下左侧菜单中点击Thresholds,在此可以管理已创建的警报,如下:
看第1条,Processes[proc]300,超过300个进程数,出现红色警告了,那我们去看他有没有发信呢
果然收到信件了…到此配置完成!
配置Cacti实现短信(飞信)预警
Cacti
一、软件环境:cacti(需Threshold插件),飞信机器人(fetion)
二、安装过程:Cacti的Threshold插件下载及安装配置参见:Cacti配置e-mail报警飞信机器人(fetion)下载及安装配置参见:系统监控:linux命令行-飞信客户端发送免费报警短信
三、配置过程:1.按照Cacti配置e-mail报警配置并启用thold2.编辑cacti/plugins/thold/thold-functions.php在thold–functions.php查找thold_mail($global_alert_address,“,$subject,$msg,$file_array);行在此行下面加入:
;查找thold_mail($item[”notify_extra”],“,$subject,$msg,$file_array);行在此行下面加入:
备注:本人的thold安装在/var/www/html/cacti/plugins/thold/目录中,如果注释掉thold_mail,只通过短信发送报警.不注释掉thold_mail,会通过email和短信同时发送报警thold-functions.php生成的alter.log范例如下:192.168.1.207-UsedSpace-G:Label:[hdd_percent]isstillabovethresholdof85with99编写脚本sendsms.sh自动调用飞信机器人发送报警
ok,配置完成了,现在就可以通过短信接收报警信息了
系统监控:linux命令行-飞信客户端发送免费报警短信
短信
最新程序fetion20080522004-linrh4.tar.gz其中支持库和安装包内容如下:
把支持库复制到/usr/lib/目录下,并作软链接如下:
fetion的目录结构:.\Readme.txt:本说明文件.\fetion:主程序.\sound\*.wav:各种音效文件,您可以用自己喜欢的文件替换.\plugins\plugin_*:插件程序,您可以修改插件以达到自己的各性化需求我在安装中遇到缺少krb5的库问题,这里写一下解决方法:错误如下:./fetion:errorwhileloadingsharedlibraries:libgssapi_krb5.so.2:cannotopensharedobjectfile:Nosuchfileordirectory安装一下krb5-libs包就可以解决啦:
完成之后测试,安装是否成功;执行
****************************************************************指令指令说明list好友列表:listsms发送短信:sms飞信号/手机号/编号短信内容(换行请用\n代替)chat在线消息:chat飞信号/手机号/编号短信内容(换行请用\n代替)status在线状态:statusonline/busy/away/hidden[个性化信息]add添加好友:add飞信号/手机号申请信息本地呢称del删除好友:del飞信号/手机号/编号invite邀请好友:invite手机号您的姓名(邀请好友开通飞信)autoaccept自动接受:autoaccepton/off/status自动接受加为好友申请myinfo修改资料:myinfonickname/impresa内容(呢称/心情)help帮助菜单:help/exit退出系统:quit/exit****************************************************************
sms137********“thisistestmessage”#这个就是我们需要的发送短信的指令啦!脚本测试:可以使用fetion的-b参数来实现p处理;举例如下:
保存后执行:
就是一次给3个admin发出报警信息.还有许多插件的功能,我会在下次实际应用中写出日志和大家一起研究;在初步接触中,发现可以实现一些交互信息的查询,比如直接向短信机器人发指令得到某台服务器的运行状态等.
======================
Cacti配置和安装具体过程如下!
使用cacti需要具有一定的使用net-snmp和rrdtool的知识。今天我们要将得是Catci配置的命令,希望帮助大家安装更新CentOScacti系统。
Catci配置:
#mysqlcacti-uroot-p#chown-Rcactiuserrra/log/#viinclude/config.php$database_type="mysql";$database_default="cacti";$database_hostname="localhost";$database_username="cactiuser";$database_password="cactiuser";$database_port="3306";
Cacti配置让系统每五分钟去取一次snmp数据:
#crontab-ucactiuser-e//注意要用cactiuser就是你刚刚建立的那个帐号去运行crontab
*/5****/usr/local/php/bin/php/usr/local/www/htdocs/cacti/poller.php>/dev/null2>&1
或:vi/etc/crontab,增加:
*/5****cactiuser/usr/local/php/bin/php/usr/local/www/htdocs/cacti/poller.php>/dev/null2>&1
(用spine时可以改成1分钟刷一次)
*****/usr/local/php/bin/php/usr/local/www/htdocs/cacti/poller.php>/dev/null2>&1
pluginArchitecture的安装
unzipcacti-plugin-0.8.7e-PA-v2.6.zip
进入解压目录,导入数据库:
mysqlcacticpcacti-plugin-0.8.7e-PA-v2.6.diff/usr/local/www/htdocs/cacti/
cd/usr/local/www/htdocs/cacti/
patch-p1-N注:若php是系统自带安装的这用这个方法打补丁会报错,则用如下的方法安装:
rsync-avz./files-0.8.7e/*/var/www/html/cacti/viinclude/global.php
将$config['url_path']=‘/’;改为:$config['url_path']=‘/cacti/’;
settings安装
在$plugins=array();的后面加上如下内容
$plugins[]='settings';
|||
CACTI的客户端SNMP设置如下!
CACTI的客户端SNMP设置(被监控端):
1.ubuntu:
apt-getinstallsnmpsnmpd
vim/etc/default/snmpd//将此配置文件中127.0.0.1删掉。
/etc/init.d/snmpdrestart
2.redhat/centos
安装net-snmpnet-snmp-utils
vi/etc/snmp/snmpd.conf
更改com2secnotConfigUserdefaultpublic
改为com2secnotConfigUser监控端IPpublic
更改accessnotConfigGroup""anynoauthexactsystemviewnonenone
改为accessnotConfigGroup""anynoauthexactallnonenone
将#viewallincluded.180前面的#注释去掉
servicesnmpdrestart
通过上面的描述,我们知道了CACTI的客户端SNMP设置,希望本文对你们有帮助!
==============
1,安装cacti的PA
要安装别的插件前,先要安装cacti的一个patch--PluginArchitecture,才能支持插件PA和cacti版本的关系PA1.0=cacti0.8.6iPA1.1=cacti0.8.6iet0.8.6jPA2.0=cacti0.8.7bPA2.2=cacti0.8.7cPA2.4=cacti0.8.7d
PA2.5=cacti0.8.7e
进入"用户管理"->点admin->区域权限->PluginManagement
安装settings,thold,monitor插件monitor插件,提供更简略、直观的设备状态图示;thold插件,提供设备异常预警。
#vim../include/global.php在$plugins=array();的后面加上如下内容$plugins[]=‘thold’;$plugins[]=’settings’;$plugins[]=monitor;
使用插件使用monitor插件刷新cacti系统的web管理界面,可以看到多出两个标签页(thold、monitor)。1>打开“Console->Settings->Misc”,可以调整Monitor的各项配置。例如:勾选“ShowIconLegend”可以在监控页面显示图例;“View”可以选用Tiles类型,以显示设备状态表格。2>为cacti添加新设备时,勾选上“MonitorHost”项。对已添加的设备可以通过“Management->Devices”进去修改。3>单击Web页面上方的“monitor”标签链接,可以进入查看各设备/主机的状态图示。
Sendalertsastext”项,可以设置只发送文本格式的邮件。3>打开“Templates->ThresholdTemplates”,可以添加、取出需要关联到预警系统的模板,例如:可以添加和“Interface-Traffic”模板的关联,选择“traffic_in”、
“traffic_out”数据项,分别设置警告阈值“HighThreshold”(如200000000比特/秒);可以添加和“Unix-DiskSpace”模板的关联……。4>打开“Create->NewGraphs”,选择需要提供预警的设备,单击右侧上方的“Auto-createthresholds”创建预警项目。5>打开“Management->Thresholds”,可以管理已经创建的预警项目。
附:按照官方文档安装了pluginarchitecture和settings、thold等plugins但是web页面里仍没什么变化,后来访问了下plugins.php,系统报没有权限,然后直接点”login”直接就进系统了,由此可见不是没有权限,而应该是没有特定的权限,后来进入用户设置界面”UserManagement”将所用的用户点开,发现有个”pluginmanagement”的权限没选中,选中,再Save,再回来刷页面,果然,左边有了新的一项菜单:“PluginManagement”,点进去可以进行plugin的管理,搞定。
一.monitor用于监控主机的状态,是否Down机等1.设置在添加设备的时候,选中"monitorHost"即为添加monitor监控主机状态。在"设置"->MISC中,有关monitor的设置项为:
Down机时,使用phpmail方式测试不能成功收到邮件,使用SMTP方式可以。
设置完成,按以下步骤给主机应用刚才添加的报警:"新建图像"->选择主机->Auto-createthresholds。在Management->Thresholds可以看到已经给主机应用的报警。
3.Reports以表格方式产生报表
4.nmidcreatepdf以PDF方式产生报表,有两个版本,免费版本和收费版本,免费版本的区别是不能发送邮件
5.CaMM用来接收系统日志的,也可以能过Snmp陷阱的方式。
6.Motice监控一些值超过设置值进行记录
7.Weathermap把设备的接口和性能进行示图展示。
Monitor插件使用
图示:
绿色:被监控设备状态正常;红色:被监控设备Down机;
兰色:被监控设备恢复(Down后重新启动,界于红色与绿色之间的状态);黄色:被监控设备门槛报警
AlarmSound:设定声音警报的语音
ShowIconLegend:显示图例,如什么色代表Down机,正常等
Grouping:设置如何分组,Default(预设排列),Defaultwithpermission(预设排列依照权限),Tree(依照graph的树装结构分组),Devicetemplate(依照使用的侦测方式分组),建议使用tree的分组方式,这样会比较符合自订的方式区分出机器,看起来比较好看,哈哈
View:选择机器图案的格式,Default(预设),List(清单型,图示会比较小),Coloredblocks(背景图案全变色),Simple(极简化),建议使用List,因为主机数量多如果用大图示Coloredblocks会相当占页面的空间,无法在一个页面就看到所有主机的状况,会比较不方便。
在Monitor里添加主机
单个主机添加
批量主机添加
console→Device--选择要添加的主机--在“Chooseanaction”中选择“EnabledMonitoring”或者“Placeonatree(monitor)”--GO-continuePlaceonatree(monitor)和Placeonatree(default)后面括号内的是tree名字,在graphs里有几个tree这里会显示几个类似选项
Thold插件使用
Thold是报警插件,通过设置超过最高或最低值的时候进行报警,可以发送邮件或短信方式。
配置thold插件
“Console”---“Configuration”---“Settings”---选择“Thresholds”修改相应选项---save
其中有两处单选框必须选中,分别是:"Syslogging":这一栏是将要发送的信息记入cacti.log中。"Sendalertsastext":这一栏是将要送的警告信息保存为文本形式,没有图片。
单击图中右上脚的“Add”按钮,弹出如下图示:
在图中的“Host:”一栏中,单击右侧的下拉框,选择你要监控的报警的主机,选好“Host:”后,会出现下面的“Graph:”,在下拉框中,选择你要设置报警的服务,这里以选择“Localhost-Processes”为例,选择好后,单击“Create”按钮后,会出现一个页面,让你去设置一个阀值,达到多少会发报警邮件:
一般情况下,Threshold的阀值即为实际数据,但在网络流量Thold中,有所不同,具体的换算方法为:
网络流量阀值设定值=网络流量限值/8
如我们设网络流量限值为10M的话,哪么网络流量阀值设定值为:
10×1024×1024/8=1310720
Tips:由于上图的图表中的processes已经有100了,这里设置最高阀值是20,这里肯定会发送报警的。单击右下脚的“Save”保存。到此为止,设立报警项目已经完成。
查看cacti.log是否有报警发送邮件的记录
套用建立的规则
console→GraphManagerment--选择要套用tholdTemplates的项目,选择图表资源项目,在到下面的选单中选择CreateThresholdfromTemplates选项,就将选择的主机统一套用所设定的Templates--Continue
要查看已经建立的thold项目可以到console→thold这一个项目中,选择status到any的状况就会出现所有的项目,预设是只出现被tiggered的项目,方便管理人员在表单中辨识符合警戒值的主机项目。在主机的内容中TemplatePropagationEnabled的项目是被勾选的,就表示这一个项目是有套用tholdTemplates,当修改Templates的异动修改都会同步套用到这一项目