按照上篇centreon部署文档安装centreon服务器,使用时发现centreon、nagios、系统日志出现很多报错,并且centreonweb页面不能查看监控到的主机状态,现将错误处理记录如下。
1、使用service ndo2db start 启动nod2db时,报错:
Starting ndo2db:Could not bind socket: Address already in usedone.
使用service ndo2db status 查看状态时,报错:
ndo2db is not running but subsystem locked .
解决办法:
#vim /usr/local/nagios/etc/ndo2db.cfg
socket_name=/var/run/ndo.sock
lock_file=/usr/local/nagios/var/ndo2db.lock
#killall ndo2db
#service ndo2db restart
2、nagios日志
SERVER ndo2db: Warning: queue send error, retrying...
解决办法:
#vim /etc/sysctl.conf
kernel.msgmax = 131072000
kernel.msgmnb = 131072000
kernel.msgmni = 65536000
3、/usr/local/centreon/log/nagiosPerfTrace.log
Error: Can't locate /etc/centreon/conf.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/share/perl5/vendor_perl/centreon/script.pm line 140.
解决办法:
#vim /usr/share/perl5/vendor_perl/centreon/script.pm
config_file => "/usr/local/centreon/etc/conf.pm"
4、/usr/local/centreon/log/centreontrapd.log
couldn't do /etc/centreon/centreontrapd.pm: No such file or directory
couldn't run /etc/centreon/centreontrapd.pm
解决办法:
#find / -name centreontrapd.fp
/usr/share/perl5/vendor_perl/centreon/script/centreontrapd.pm
#vim /usr/share/perl5/vendor_perl/centreon/scripte/centreontrapd.pm
/etc/centreon/centreontrapd.pm
/usr/share/perl5/vendor_perl/centreon/script/centreontrapd.pm(替换)
5、nagios的bug
nagios日志报错 wproc: Unknown job type: 10
补丁如下
diff --git a/base/workers.c b/base/workers.c index 881e434..d1e1f8d 100644 --- a/base/workers.c +++ b/base/workers.c @@ -285,6 +285,8 @@ static void destroy_job(struct wproc_job *job) case WPJOB_SVC_EVTHANDLER: case WPJOB_GLOBAL_HOST_EVTHANDLER: case WPJOB_HOST_EVTHANDLER: + case WPJOB_HOST_PERFDATA: + case WPJOB_SVC_PERFDATA: /* these require nothing special */ break; case WPJOB_CALLBACK: @@ -763,6 +765,11 @@ static int handle_worker_result(int sd, int events, void *arg) run_job_callback(job, &wpres, 0); break; + case WPJOB_HOST_PERFDATA: + case WPJOB_SVC_PERFDATA: + /* these require nothing special */ + break; + default: logit(NSLOG_RUNTIME_WARNING, TRUE, "Worker %d: Unknown jobtype: %d\n", wp->pid, job->type); break;
6、/var/log/message 有很多数据库报错
ndo2db: Error: mysql_query() failed for 'INSERT INTO nagios_programstatus SET instance_id='1', status_update_time=FROM_UNIXTIME(1397007698), program_start_time=FROM_UNIXTIME(1397007639), is_currently_running='1', process_id='4841', daemon_mode='1', last_command_check=FROM_UNIXTIME(0), last_log_rotation=FROM_UNIXTIME(0), notifications_enabled='1', active_service_checks_enabled='1', passive_service_checks_enabled='1', active_host_checks_enabled='1', passive_host_checks_enabled='1', event_handlers_enabled='1', flap_detection_enabled='0', failure_prediction_enabled='0', process_performance_data='1', obsess_over_hosts='0', obsess_over_services='0', modified_host_attributes='0', modified_service_attributes='0', global_host_event_handler='', global_service_event_handler='' ON DUPLICATE KEY UPDATE instance_id='1', status_update_time=FROM_UNIXTIME(1397007698), program_start_time=FROM_UNIXTIME(1397007639), is_currently_running='1', process_id='4841', daemon_mode='1', last_command_check=FROM_UNIXTIME(0), last_log_rotation=FROM_UNIXTIME(0), notifications_enabled='1', active_service_checks_enabled='1', passive_service_checks_enabled='1', active_host_checks_enabled='1', passive_host_checks_enabled='1', event_handlers_enabled='1', flap_detection_enabled='0', failure_prediction_enabled='0', process_performance_data='1', obsess_over_hosts='0', obsess_over_services='0', modified_host_attributes='0', modified_service_attributes='0', global_host_event_handler='', global_service_event_handler='''
解决办法:
连接至数据库
INSERT INTO nagios_programstatus SET status_update_time=FROM_UNIXTIME(1397007698), program_start_time=FROM_UNIXTIME(1397007639), is_currently_running='1', process_id='4841', daemon_mode='1', last_command_check=FROM_UNIXTIME(0), last_log_rotation=FROM_UNIXTIME(0), notifications_enabled='1', active_service_checks_enabled='1', passive_service_checks_enabled='1', active_host_checks_enabled='1', passive_host_checks_enabled='1', event_handlers_enabled='1', flap_detection_enabled='0', failure_prediction_enabled='0', process_performance_data='1', obsess_over_hosts='0', obsess_over_services='0', mo dified_host_attributes='0', modified_service_attributes='0', global_host_event_handler='', global_service_event_handler=''
7、/var/log/messages中报错:
ndo2db: Error: mysql_query() failed for 'DELETE FROM nagios_service_parentservices WHERE instance_id='1''
ndo2db: mysql_error: 'Table 'centreon_status.nagios_service_parentservices' doesn't exist'
解决办法:
连接数据库
use centreon_status;
create table nagios_service_parentservices( instance_id int(11) default 1);
8、/var/log/messages中报错:
ndo2db: Error: mysql_query() failed for 'INSERT INTO nagios_contacts SET instance_id='1', config_type='1', contact_object_id='60', alias='admin', email_address='danhanwen@sinoicity\.com', pager_address='', host_timeperiod_object_id='55', service_timeperiod_object_id='55', host_notifications_enabled='1', service_notifications_enabled='1', can_submit_commands='1', notify_service_recovery='0', notify_service_warning='0', notify_service_unknown='0', notify_service_critical='0', notify_service_flapping='0', notify_service_downtime='0', notify_host_recovery='0', notify_host_down='0', notify_host_unreachable='0', notify_host_flapping='0', notify_host_downtime='0', minimum_importance='0' ON DUPLICATE KEY UPDATE instance_id='1', config_type='1', contact_object_id='60', alias='admin', email_address='danhanwen@sinoicity\.com', pager_address='', host_timeperiod_object_id='55', service_timeperiod_object_id='55', host_notifications_enabled='1', service_notifications_enabled='1', can_submit_commands='1', notify_service_recovery='0', notify_service_warning='0', notify_service_unknown='0', notify_service_critical='0', notify_service_flapping='0', notify_service_downtime='0', notify_host_recovery='0', notify_host_down='0', notify_host_unreachable='0', notify_host_flapping='0', notify_host_downtime='0', minimum_importance='0''
Apr 9 09:29:17 localhost ndo2db: mysql_error: 'Unknown column 'minimum_importance' in 'field list''
解决办法:
连接至数据库
use centreon_status;
alter table nagios_contacts add minimum_importance int(11) not Null Default 0;
INSERT INTO nagios_contacts SET instance_id='1', config_type='1', contact_object_id='60', alias='admin', email_address='danhanwen@sinoicity\.com', pager_address='', host_timeperiod_object_id='55', service_timeperiod_object_id='55', host_notifications_enabled='1', service_notifications_enabled='1', can_submit_commands='1', notify_service_recovery='0', notify_service_warning='0', notify_service_unknown='0', notify_service_critical='0', notify_service_flapping='0', notify_service_downtime='0', notify_host_recovery='0', notify_host_down='0', notify_host_unreachable='0', notify_host_flapping='0', notify_host_downtime='0', minimum_importance='0'
建议将数据库错误排除后,导出一份正确的数据库文件,再次安装的时候直接通过mysqldump初始化数据库。