nagios+pnp简单环境的应对
来源:互联网 发布:工业数据库 编辑:程序博客网 时间:2024/04/28 00:18
引言
实习公司为了给某一个客户做MySQL业务优化,需要做一个监控,对客户的日常MySQL做一些基本的使用情况监控,监控一段时间后做一些优化。
监控环境
一共四台需要监控的MySQL主机,一台跳转机,其中四台MySQL主机的三台为一主一从一备份,另一台主机为单节点的MySQL
这四台MySQL主机命名为mysql_master1,mysql_master2,mysql_slave1,mysql_single,操作系统都是centos4.6
这四台主机只能通过跳转机jumper进行访问,而且jumper只提供2222端口的ssh服务。一切数据都需要从这个端口获得
要求监控MySQL的所有库的连接情况,总连接情况,MySQL资源使用情况:CPU,内存等,系统的资源使用情况:CPU,内存,IO,磁盘等等。
对于三台一主一从一备集群要监控主从复制状态,主从复制延迟等信息。
解决方案
集群比较小,直接使用check_nrpe插件进行信息收集,然后在跳转机上进行显示即可。
但是为了效果好,需要配置一个pnp的环境。问题层出不断啊
check_nrpe SSL握手失败:
check_nrpe官方有check_nrpe trouble的文档。可以找到一些常见问题的处理办法。
为了安装check_nrpe需要安装ssl库,在每台MySQL主机whereis openssl 发现都安装了SS。OK直接编译安装
出现SSL握手问题,发现SSL的版本不同导致,好吧。到SSL官网下一个统一1.0版本,安装搞定。
在编译check_nrpe的时候用--with-ssl-inc以及--with-ssl-lib制定手动安装ssl库的位置。
这里又是遇到问题,指定了安装路径,还是找不到libssl库,好吧,受不鸟了,修改了一下configure脚步文件,直接写死SSL库位置,顺利编译安装check_nrpe
然后需要指定一下LD_LIBRARY_PATH,加入ssl库的位置,否则运行check_nrpe时候找不到ssl动态库。
pnp安装
由于jumper跳转机的系统是4.6,在安装pnp时各种错误,pnp需要rddtool画图库,这个库各种依赖,与系统自身安装的很多包不兼容,centos4.6的源已经停用,只能更换为centos4.9的源进行使用,但还是各种库不兼容,版本不匹配等等的问题,最后实在是不想在折腾了,在公司找了台服务器安装了nagios+pnp环境,跳转机只作为收集信息使用,将信息收集过来,使用公司的服务器进行显示效果。架构图如下
使用linux下的dia一个简单的画图软件画的,比较丑。
从图上看思路就比较清晰了,显示界面的主机通过check_ssh对jumper发送server check指令。即调用jumper上的check_nrpe插件检查四台MySQL主机,四台MySQL上都运行着nrpe服务端口采用默认端口5666。然后通过jumper将信息反馈给nagios+pnp显示出来即可。
这里使用check_ssh需要配置免登陆 可以参考http://chenlb.iteye.com/blog/211809
注:安装的nagios版本为4.0+,使用pnp的默认配置是不行的,需要使用bulk配置才可以。
监控脚步
监控脚步格式在之前的文章中说明过,这里针对性能数据进行说明脚步说明格式。
- 'label'=value[UOM];[warn];[crit];[min];[max]
注意:
1. 多个性能数据之间用空格分割
2. label 可以包含任何字符
3. 如果label中包含空格、等号、或者单引号,则label需要用单引号来括起来
4. warn/crit/min/max可以为null值
value, min and max只能为负号“-” “0到9” 和小数点“.” 并且单位必须统一
例如:cpu_user=0.5%;99.9;-9;
5. 如果UOM单位是%,则min和max不需要再指定
6. UOM单位可以是如下: 默认空,表示数量(用于用户数、处理器数等)
s 表示秒(也可以用us,ms)
% 表示百分比
B 表示字节(也可以用KB,MB,TB,GB)
c 一个连续的计数(如:接口传输的字节数)
性能日志转储
日志转储是必须的不同多说。本来打算使用插件NDOutils, 不知道为什么编译直接core dump。好吧。。。那我就不存数据库了直接存文件里吧。
默认的处理性能数据的pnp脚步是process_perfdata.pl 默认这个perl脚步会在性能数据文件超过10M时直接将文件truncate掉,所以该起来也比较容易直接将truncate之前copy一下文件即可如下
# # Write to Logfile# sub print_log { my $out = shift; my $severity = shift; if ( $severity <= $conf{LOG_LEVEL} ) { open( LOG, ">>" . $conf{LOG_FILE} ) || die "Can't open logfile ($conf{LOG_FILE}) ", $!; if ( -s LOG > $conf{LOG_FILE_MAX_SIZE} ) { # truncate( LOG, 0 ); # printf( LOG "File truncated" ); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime; $year += 1900; $mon += 1; my $filename = sprintf ("/usr/local/pnpnagios/var/history/%d-%02d-%02d-%02d-%02d-%02d.log", $year,$mon,$mday,$hour,$min,$sec); copy ($conf{LOG_FILE}, $filename); truncate( LOG, 0); } my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time); printf( LOG "%02d-%02d-%02d %02d:%02d:%02d [%d] [%d] %s\n", $year + 1900, $mon + 1, $mday, $hour, $min, $sec, $$, $severity, $out ); close(LOG); } }如果觉得10M大小转储起来日志文件太多可以修改一下LOG_FILE_MAX_SIZE的大小。
最后的成果图如下:下图为单击mysql主机的总连接数性能数据图。
0 0
- nagios+pnp简单环境的应对
- nagios + pnp 不出图
- nagios图表pnp安装
- 简单爆破的应对
- Nagios图形化Pnp 安装和配置
- Nagios太阳(pnp)安装配置
- 安装nagios出图工具pnp小结
- [nagios监控] 利用PNP 绘制历史曲线
- Nagios整合pnp绘制性能分析图表
- nagios pnp插件安装以及配置
- nagios pnp插件安装以及配置(续)
- nagios网络流量监控(附pnp模板)
- CentOS 6.0+Nagios中文版+PNP+Nagios Web管理工具nagiosQL中文版
- 一、PNP和NPN的简单识别和使用
- PNP三极管电路简单分析
- NAGIOS整合PNP时,进程数process不能出图?
- 在CentOS6.3上搭建nagios+cacti+ntop+pnp
- CentOS环境Nagios的安装与配置
- 读《大数据日知录:架构与算法》感想
- 【Cocos2d-x3.0学习笔记 03】一些基本的使用
- 【2713】 多级派生类的构造函数
- 原始套接字的使用之编程实现DoS(拒绝服务)攻击程序
- eclipse导入github上的android项目,出现unable to get system library for the project
- nagios+pnp简单环境的应对
- Android 从j2ee服务器读取数据乱码
- 【面试】记录几天的面试过程
- 八大排序算法图文讲解
- JDBC
- 《程序员编程艺术:面试和算法心得》——目录
- WAITEVENT: "log file sync" Reference Note (文档 ID 34592.1)
- Valid Sudoku,Implement strStr()
- 开发手机卫士第二天,自定义style,对话框