Git Product home page Git Product logo

thruk's Introduction

Thruk - Monitoring Webinterface

Thruk is a multibackend monitoring webinterface which currently supports Naemon, Icinga, Shinken and Nagios as backend using the Livestatus API. It is designed to be a 'dropin' replacement and covers the original features plus adds additional enhancements for large installations, increased usability and many useful addons.

Thruk Startpage Thruk Panorama

See more screenshots...

Documentation

All documentation is under docs/

Support

Main Features / Advantages

  • Multiple backends
  • Faster while using less CPU
  • Displays live data, no delay between core and GUI
  • Clusterable, can be clustered over hosts
  • Business Process Add-on
  • Advanced status filters
  • Extended logfile search
  • Multiple themes included
  • Excel export for status and logfiles
  • Adjustable side menu
  • Full expanded plugin commandline for easy testing
  • Save searches in personal bookmarks
  • Config Tool included
  • Mobile interface included
  • SLA Reports in PDF format
  • Recurring Downtimes
  • Fully Featured Dashboard
  • Independant from monitoring core, can be installed on remote host
  • Easy to extend with plugins

Contributions

Thanks to all the amazing community contributors for sending PRs and keeping this project updated. ❤️

If you have an idea or some kind of improvement, you are welcome to contribute and participate in the Project, feel free to send your PR.

License

Thruk is Copyright (c) 2009-present by Sven Nierlein and others. This is free software; you can redistribute it and/or modify it under the same terms as the Perl5 programming language system itself:

a) the "Artistic License 1.0" as published by The Perl Foundation http://dev.perl.org/licenses/artistic.html

b) the GNU General Public License as published by the Free Software Foundation; either version 1 http://www.gnu.org/licenses/gpl-1.0.html or (at your option) any later version

SPDX-License-Identifier: Artistic-1.0-Perl OR GPL-1.0-or-later

Vendor specific libraries below ./root/thruk/vendor/ may have different licenes. See THANKS file for details.

thruk's People

Contributors

alexstaz avatar andrewmcgilvray avatar awiddersheim avatar bigbrozer avatar dan-m-joh avatar datamuc avatar dcec avatar frgithubaccount avatar galoget avatar ghalse avatar gitmopp avatar griesbacher avatar hyllegaard avatar jburnham avatar jframeau avatar jvigna avatar ketra avatar lausser avatar lgmu avatar mickenordin avatar naparuba avatar ofosos avatar pvdputte avatar rbo avatar rikadenia avatar sathieu avatar sni avatar steaksauce- avatar stku avatar xeroy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

thruk's Issues

Status Detail Table doubly-escaped HTML

I have some nagios checks that return multi-line output that is formatted with new lines for readability. When clicking the text under the "Status Information" column for a check, the text seems to have escaped html in it.

E.g.:
"db1: OK db2:OK db3:OK
db1(OK - no long running queries)<br><br>db2(OK - no long running queries)<br><br>db3(OK - no long running queries)<br>"

What I should be seeing is this:
"db1: OK db2:OK db3:OK
db1(OK - no long running queries)

db2(OK - no long running queries)

db3(OK - no long running queries)
"

I found that in the templates/_status_detail_table.tt file, there is an html_escape() nested within another html_escape() that causes any new lines in output from nagios plugins to show up as escaped
statements (e.g. <br>) instead of actually causing a line break (which helps with readability of the longer output).

The fix I've found is in line 91 of templates/_status_detail_table.tt:
The original template line is:

<td align="left" class='[% serviceclass %]' [% info_popup_event_type %]="return overlib(this.abbr,CAPTION,'[% s.host_name %] - [% s.description %]',WIDTH,600,[% c.config.info_popup_options %]);" abbr='[% html_escape(html_escape(s.plugin_output)) %]<br>[% html_escape(html_escape(nl2br(s.long_plugin_output))) %]'><span class="has_long_plugin_output">[% html_escape(s.plugin_output) %]</span></td>

Simply change it to (by removing the outer html_escape() after the
statement):

<td align="left" class='[% serviceclass %]' [% info_popup_event_type %]="return overlib(this.abbr,CAPTION,'[% s.host_name %] - [% s.description %]',WIDTH,600,[% c.config.info_popup_options %]);" abbr='[% html_escape(html_escape(s.plugin_output)) %]<br>[% html_escape(nl2br(s.long_plugin_output)) %]'><span class="has_long_plugin_output">[% html_escape(s.plugin_output) %]</span></td>

This allows mult-line output from nagios plugins to display as expected.

Feature Request: ACKs with expiry

Hi Sven,

now that Icinga 1.6 is out (http://goo.gl/53U49) which has an exiting feature called expiring acks, it would be great to see that in Thruk too.

core: new commands and event

CMD_ACKNOWLEDGE_HOST_PROBLEM_EXPIRE 174
CMD_ACKNOWLEDGE_SVC_PROBLEM_EXPIRE 175
EVENT_EXPIRE_ACKNOWLEDGEMENT

thank you.

0.70-1 package with rhel5(local-lib and documentation)

I issued script/thruk_test.pl to test its functionality, but received errors:
weaken is only available with the XS version of Scalar::Util at /root/Thruk-0.70.1/script/../local-lib/lib/perl5/x86_64-linux-thread-multi/Class/MOP.pm line 12

I've then use the source package and local::lib to install again
everything seems to work well but once I clicked "Documentation" link on the left, I can't navigate by clicking other links.

I noticed that your demo is 0.72, so I download it and found many use 5.12.1 statements under scripts/. does it need perl 5.12?

error when submitting some external commands

When I try to submit commands to some hosts, I get an error like the following. It may only happen on hosts with a hyphen or whitespace in the name, but I haven't verified.

[Thu Jun 16 13:12:39 2011] [warn] mod_fcgid: stderr: [info] [agaffney] cmd: COMMAND [1308255158] SCHEDULE_FORCED_SVC_CHECK;Nagios Master - sv2;Nagios config;1308255144
[Thu Jun 16 13:12:39 2011] [warn] mod_fcgid: stderr: [error] Caught exception in Thruk::Controller::cmd->index "The request contains an invalid header. at /usr/local/Thruk-1.0.5/script/../local-lib/lib/perl5/Monitoring/Livestatus/Class/Base/Table.pm line 189"
[Thu Jun 16 13:12:39 2011] [warn] mod_fcgid: stderr: [error] internal server error
[Thu Jun 16 13:12:39 2011] [warn] mod_fcgid: stderr: [error] on page: http://foo/thruk/cgi-bin/cmd.cgi

Deleting downtime or comments has issues

If you're not the nagiosadmin user but are part of the admins group, you can't delete downtime or comments on hosts by using the cylinder link at the end of each row for comments/downtime. You get a not authorized error, and this is because the commit page is not being passed the host's name to do a check permission on. I resolved this myself by adding a hidden input field that passes c.request.parameters.host to the cmd.tt files for 78 and 2. However, you may want to fix this issue in a future release officially.

Problem on the menu : Mine Map

Hello,

I found a bug in the menu on the left :

Sometimes, the mine map link text disappears when we travel the menu, but the link is OK, with no text.

Alexandre

Problem with group management for right

Hi,

I try to use the new method for giving rights for the nagios users by group .

Here an extract of my cgi.cfg:

authorized_for_system_information=admins
authorized_for_configuration_information=admins
authorized_for_system_commands=admins
authorized_for_all_services=admins
authorized_for_all_hosts=admins
authorized_for_all_service_commands=admins
authorized_for_all_host_commands=admins

My logged user is a member of the admins group.
I can't access to the following views :
System -> Process Info
System -> Configuration

Mandatory perl module String::Strip marked as optional

Hello Sven,

When I launch command:

besancon@frselwlt8043:~/Repos/git/Thruk
 (new_upstream|MERGING) 09:10 # ./script/thruk_server.pl 
Couldn't load class (Thruk) because: Can't locate String/Strip.pm in @INC 
(...)

I have this error about missing module String::Strip. Running the perl Makefile.PM shows it as optional:

(...)
- String::Strip                                                           ...missing.
==> Auto-install the 1 optional module(s) from CPAN? [n] 

It seems it is used in conf plugin, as it seems to be enabled by default you should set it to mandatory I think...

Bye,
Vincent

plugin shinken_features, may have an error in shinken_features.pm

Hi Sven,

I was looking at this plugin to enable a criticity filter with a specific configuration for Nagios (I'm thinking to a new plugin with custom fields in our nagios configuration ).

File Thruk/plugins/plugins-available/shinken_features/lib/Thruk/Controller/shinken_features.pm

sub shinken_cgi : Regex('thruk/cgi-bin/shinken_status.cgi') {
my ( $self, $c ) = @_;
return if defined $c->{'cancled'};
return $c->detach('/shinken_features/shinken_status');
}

should not be return if defined $c->{'canceled'}; ?

I precise I can't test this plugin, I only read it.

Problem with the pager, unable to show last page

Hello Sven,

I encountered a problem with the pager. Each time I wanted to show the last page by clicking the final number or the show last button arrow, I was returning on the page before the last one. Try on the demo.thruk.org, go to Hosts menu then try to click on page number 12. You will be back on page 11...

The problem seems to be the usage of 'int' method in files "lib/Thruk/Utils.pm" and "templates/_pager.tt" because 'int' truncates towards 0. So, take for example 885 total entries then divide it by 100 (the entry to show by page), you will have 8.85 but passed by 'int' it will be 8 !!

I corrected the problem by a ugly way ;-) simply add 1 to the lines in files:

lib/Thruk/Utils.pm:
my $pages = int(($pager->total_entries / $entries)+1);

templates/_pager.tt:
[% pages = Math.int((pager.total_entries / pager.entries_per_page)+1) %]

So now you have what is expected... the best way is to use POSIX::ceil() instead of 'int' but I was not able to use that and I don't now so much perl and Thruk does not work when I use POSIX module. This is maybe because my thruk user is not using perl system modules (local::lib...) etc... I don't know.

I hope this will help you to find a way to do it better ;-)

Bye,
Vincent

Debian Lenny - Fails: Bareword "catalyst" not allowed while "strict subs"

Debian Lenny NetInstall, prerequisits:

  1. debian netinst installiert
  • minimal inst, user thruk angelegt
  1. /etc/apt/sources.list um "contrib non-free" erweitert
  2. #> apt-get install libapache2-mod-fastcgi libfile-copy-recursive-perl libmodule-install-perl make gcc git git-core
  3. #> su - thruk
  4. %> cd /tmp
  5. %> wget http://search.cpan.org/CPAN/authors/id/A/AP/APEIRON/local-lib-1.004009.tar.gz
  6. %> tar zxvf local-lib-1.004009.tar.gz
  7. %> cd local-lib-1.004009
  8. %> perl Makefile.PL --bootstrap
  9. %> make install
  10. %> echo 'eval $(perl -I$HOME/perl5/lib/perl5 -Mlocal::lib)' >>~/.bashrc
  11. %> . ~/.bashrc
  12. %> cd && git clone http://github.com/sni/Thruk.git
  13. %> cd Thruk
  14. %> perl Makefile.PL && make
  15. %> cp thuk.conf thruk_local.conf && vi thruk_local.conf
  16. %> ./script/thruk_server.pl

Step 15 fails for the 1st Time cause Module::Install isn't installed.
FIX:
perl -MCPAN -e shell
install Module::Install

Then again Step 15:
COMMAND:
perl Makefile.PL && make

FAILURE:
include /home/thruk/Thruk/inc/Module/Install.pm
Bareword "catalyst" not allowed while "strict subs" in use at Makefile.PL line 66.
Execution of Makefile.PL aborted due to compilation errors.

link "all with downtime" in host view

Hello,

The link "all with downtime" in host view don't work.

Add the class "has_downtime" in template "_status_host_attributes.tt" at line 29 corrects the problem :

[% IF host.$host_scheduled_downtime_depth > 0 %]<img src="[% url_prefix %]thruk/themes/[% theme %]/images/downtime.gif" alt="This host is currently in a period of scheduled down time" height="[% imgsize %]" width="[% imgsize %]" class="clickable" [% info_popup_event_type %]="return overlib('<table border=0 cellpadding=3 cellspacing=0 class='hostdowntimes' width='100%'>Start TimeEnd Time< /th>AuthorComment[% SET hostname = host.$host_name %][% FOR d = downtimes_by_host.$hostname %]<td nowrap valign='top' align='right'>[% date_format(c, d.start_time) %]<td nowrap valign='top' align ='right'>[% date_format(c, d.end_time) %]<td nowrap valign='top'>[% d.author %][% IF escape_html_tags %][% html_escape(html_escape(d.comment)) %][% ELSE %][% escape_quotes(html_escape(d.comment)) %][% END %]</t r>[% END %]',CAPTION,'[% host.$host_name %] - Downtimes',WIDTH,600,[% c.config.info_popup_options %]);">[% END %]

Thans for your work and sorry for my english ;-)

Alexandre Chaussier

scheduling downtime with multiple backends does not work

I have 3 backends running Nagios w/ Livestatus. When I schedule downtime for a host or service and have more than one backend selected, downtime will not be scheduled. I do not see the expected "[1310063052] EXTERNAL COMMAND: SCHEDULE_HOST_DOWNTIME;blahblah;1310063043;1310070243;1;0;0;thrukadmin;comment" entry in any of the backend's nagios.log file. If I schedule them one at a time, it works as expected.

There is also a corresponding issue with removing downtime when multiple backends are selected.

I am running Thruk version 1.0.6

Thanks!

Problem selecting all downtimed hosts for action

Hi,

Problem detected in 1.0.8 and 1.0.9 (integration) in the Host page : Current Status -> Hosts

In this page , when clicking on the link 'all with downtime' above the table of hosts, no line is selected for action (and the action popup is not launched).
Of course, I have hosts in downtime.

This links works for the service view : Current Status -> Services

array problem with hosts configuration

Hi Sven,

I noticed a problem with the host configuration view.
on a host detail, click on 'View Configuration For This Host'

the column 'Notes URL' is empty and the array is shifted on the right from this column.

0.70.1 and 0.72 show wrong times in CGIs

Last Update: 02:48:53 ( 0d 0h 0m 0s ago)
---but now here it's 16:48 indeed. I rechecked the local timezone set, it's GMT +8(Asia/Shanghai)
and I wonder why it is 14 hours ago

Monitored by: /opt/mm/nagios/var/rw/live.sock
--shouldn't it show the name of the peer instead of the socket path?

downtime doesn't count hours

Hi,

there is a variable mismatchin in templates/cmd/cmd_typ_55.tt (v1.1.1), the form submits "name='hours'", but "c.request.parameters.hour" is checked in the backend command.

css error in "network outages" page?

seems this issues system doesn't support attachments uploading ...

I use firefox and the Vantour theme of Thruk, and while nativating the "network outages" page, the panel on the left seems to be mis-styled.
under IE, the situation is better, but the fonts on the left panel is still not the same with those while navigating other pages.

alerts summary page problem

em... I used Alert Totals by Host option, and in the result, something like Host '192.168.1.1' (HASH(0x8dbf780)) is displayed, what does it mean?

and if I choose Alert Totals by Hostgroup, it seems that a blank result is always given.

Filter problem with System->Downtime view

Hi Sven,

Seems that everyone can view service downtimes even if they are not contacts for hosts or services.
Hosts downtime's view display seems to work.

Seen on 1.0.8 and 1.0.9

Thruk unavailable in case one of the peers is unavailable

I have noticed that, even if I have configured a connection_timeout and a query_timeout in my livestatus peers in thruk_local.conf, if one of the peers is not available any more (e.g. the CPU load has reached 100% or the number of processes running there is too high), the Thruk interface becomes unavailable. The home page does not load and after a while I get a 500 error code. Are those peer options actually being passed to the Monitoring::Livestatus object? I have also tried to setup the verbose option equal to 1 in the peer to see what is going on, but I just does not work because there is no logger assigned in the Monitoring::Livestatus object.

Could anyone help me solve the issues above?

Thanks

M.

internal server error in Trends or Availability

When selecting "Trends" or "Availability", for whatever parameters you set, you get the following message :

internal server error
please have a look at your log file

Here is the error log :

[error] Caught exception in Thruk::Controller::avail->index "unknown state: PENDING at /opt/thruk/script/../local-lib/lib/perl5/Monitoring/Availability/Logs.pm line 326
        Monitoring::Availability::Logs::_statestr_to_state('Monitoring::Availability::Logs', 'PENDING') called at /opt/thruk/script/../local-lib/lib/perl5/Monitoring/Availability/Logs.pm line 248
        Monitoring::Availability::Logs::_set_from_options('Monitoring::Availability::Logs', 'HASH(0xc1b2170)', 'ibiza;NRPC;PENDING;HARD;0;') called at /opt/thruk/script/../local-lib/lib/perl5/Monitoring/Availability/Logs.pm line 175
        Monitoring::Availability::Logs::_parse_livestatus_entry('Monitoring::Availability::Logs', 'HASH(0xc1b2170)') called at /opt/thruk/script/../local-lib/lib/perl5/Monitoring/Availability.pm line 562
        Monitoring::Availability::_compute_availability_on_the_fly('Monitoring::Availability=HASH(0xc1b2240)', 'HASH(0xc1ac3d0)', 'ARRAY(0xc1b3fb0)') called at /opt/thruk/script/../local-lib/lib/perl5/Monitoring/Availability.pm line 333
        Monitoring::Availability::calculate('Monitoring::Availability=HASH(0xc1b2240)', 'start', 1311890400, 'end', 1311955427, 'log_livestatus', 'ARRAY(0xc1b3fb0)', 'hosts', 'ARRAY(0xc10a0b0)', ...) called at /opt/thruk/script/../lib/Thruk/Utils.pm line 840
        Thruk::Utils::calculate_availability('Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../lib/Thruk/Controller/avail.pm line 172
        Thruk::Controller::avail::_create_report('Thruk::Controller::avail=HASH(0xb6e1e40)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../lib/Thruk/Controller/avail.pm line 71
        Thruk::Controller::avail::index('Thruk::Controller::avail=HASH(0xb6e1e40)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Action.pm line 65
        Catalyst::Action::execute('Thruk::Action::AddDefaults=HASH(0xb7aacf8)', 'Thruk::Controller::avail=HASH(0xb6e1e40)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/i486-linux-gnu-thread-multi/Class/MOP/Method/Wrapped.pm line 33
        Class::MOP::Method::Wrapped::__ANON__('Thruk::Action::AddDefaults=HASH(0xb7aacf8)', 'Thruk::Controller::avail=HASH(0xb6e1e40)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/i486-linux-gnu-thread-multi/Class/MOP/Method/Wrapped.pm line 89
        Thruk::Action::AddDefaults::execute('Thruk::Action::AddDefaults=HASH(0xb7aacf8)', 'Thruk::Controller::avail=HASH(0xb6e1e40)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1603
        eval {...} called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1603
        Catalyst::execute('Thruk=HASH(0xc182c88)', 'Thruk::Controller::avail', 'Thruk::Action::AddDefaults=HASH(0xb7aacf8)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Plugin/StackTrace.pm line 22
        Catalyst::Plugin::StackTrace::execute('Thruk=HASH(0xc182c88)', 'Thruk::Controller::avail', 'Thruk::Action::AddDefaults=HASH(0xb7aacf8)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Action.pm line 60
        Catalyst::Action::dispatch('Thruk::Action::AddDefaults=HASH(0xb7aacf8)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Dispatcher.pm line 257
        Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0xad24a20)', 'detach', 'Thruk=HASH(0xc182c88)', '/avail/index') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Dispatcher.pm line 270
        Catalyst::Dispatcher::detach('Catalyst::Dispatcher=HASH(0xad24a20)', 'Thruk=HASH(0xc182c88)', '/avail/index') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 384
        Catalyst::detach('Thruk=HASH(0xc182c88)', '/avail/index') called at /opt/thruk/script/../lib/Thruk/Controller/Root.pm line 593
        Thruk::Controller::Root::avail_cgi('Thruk::Controller::Root=HASH(0xb6e1a00)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Action.pm line 65
        Catalyst::Action::execute('Catalyst::Action=HASH(0xb7c67d0)', 'Thruk::Controller::Root=HASH(0xb6e1a00)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1603
        eval {...} called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1603
        Catalyst::execute('Thruk=HASH(0xc182c88)', 'Thruk::Controller::Root', 'Catalyst::Action=HASH(0xb7c67d0)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Plugin/StackTrace.pm line 22
        Catalyst::Plugin::StackTrace::execute('Thruk=HASH(0xc182c88)', 'Thruk::Controller::Root', 'Catalyst::Action=HASH(0xb7c67d0)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Action.pm line 60
        Catalyst::Action::dispatch('Catalyst::Action=HASH(0xb7c67d0)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Controller.pm line 110
        Catalyst::Controller::_ACTION('Thruk::Controller::Root=HASH(0xb6e1a00)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Action.pm line 65
        Catalyst::Action::execute('Catalyst::Action=HASH(0xb7b39a8)', 'Thruk::Controller::Root=HASH(0xb6e1a00)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1603
        eval {...} called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1603
        Catalyst::execute('Thruk=HASH(0xc182c88)', 'Thruk::Controller::Root', 'Catalyst::Action=HASH(0xb7b39a8)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Plugin/StackTrace.pm line 22
        Catalyst::Plugin::StackTrace::execute('Thruk=HASH(0xc182c88)', 'Thruk::Controller::Root', 'Catalyst::Action=HASH(0xb7b39a8)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Action.pm line 60
        Catalyst::Action::dispatch('Catalyst::Action=HASH(0xb7b39a8)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Dispatcher.pm line 257
        Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0xad24a20)', 'forward', 'Thruk=HASH(0xc182c88)', '_ACTION') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Dispatcher.pm line 237
        Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0xad24a20)', 'Thruk=HASH(0xc182c88)', '_ACTION') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 369
        Catalyst::forward('Thruk=HASH(0xc182c88)', '_ACTION') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Controller.pm line 84
        Catalyst::Controller::_DISPATCH('Thruk::Controller::Root=HASH(0xb6e1a00)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Action.pm line 65
        Catalyst::Action::execute('Catalyst::Action=HASH(0xb7b9f30)', 'Thruk::Controller::Root=HASH(0xb6e1a00)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1603
        eval {...} called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1603
        Catalyst::execute('Thruk=HASH(0xc182c88)', 'Thruk::Controller::Root', 'Catalyst::Action=HASH(0xb7b9f30)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Plugin/StackTrace.pm line 22
        Catalyst::Plugin::StackTrace::execute('Thruk=HASH(0xc182c88)', 'Thruk::Controller::Root', 'Catalyst::Action=HASH(0xb7b9f30)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Action.pm line 60
        Catalyst::Action::dispatch('Catalyst::Action=HASH(0xb7b9f30)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Dispatcher.pm line 257
        Catalyst::Dispatcher::_do_forward('Catalyst::Dispatcher=HASH(0xad24a20)', 'forward', 'Thruk=HASH(0xc182c88)', '//_DISPATCH') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Dispatcher.pm line 237
        Catalyst::Dispatcher::forward('Catalyst::Dispatcher=HASH(0xad24a20)', 'Thruk=HASH(0xc182c88)', '//_DISPATCH') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 369
        Catalyst::forward('Thruk=HASH(0xc182c88)', '//_DISPATCH') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Dispatcher.pm line 105
        Catalyst::Dispatcher::dispatch('Catalyst::Dispatcher=HASH(0xad24a20)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1551
        Catalyst::dispatch('Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Plugin/Static/Simple.pm line 76
        Class::MOP::Class:::around('CODE(0xad645d8)', 'Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/i486-linux-gnu-thread-multi/Class/MOP/Method/Wrapped.pm line 159
        Class::MOP::Method::Wrapped::__ANON__('Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/i486-linux-gnu-thread-multi/Class/MOP/Method/Wrapped.pm line 89
        Thruk::dispatch('Thruk=HASH(0xc182c88)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1888
        eval {...} called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 1879
        Catalyst::handle_request('Thruk', 'env', 'HASH(0xc2bff08)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Engine/HTTP.pm line 394
        Catalyst::Engine::HTTP::_handler('Catalyst::Engine::HTTP=HASH(0xadf9308)', 'Thruk', 3000, 'GET', '/thruk/cgi-bin/avail.cgi?show_log_entries=&host=ibiza&service...', 'HTTP/1.1') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Engine/HTTP.pm line 291
        Catalyst::Engine::HTTP::run('Catalyst::Engine::HTTP=HASH(0xadf9308)', 'Thruk', 3000, undef, 'HASH(0xa0c4aa0)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst.pm line 2181
        Catalyst::run('Thruk', 3000, undef, 'HASH(0xa0c4aa0)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/ScriptRole.pm line 62
        Catalyst::ScriptRole::_run_application('Catalyst::Script::Server=HASH(0xa359160)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/Script/Server.pm line 181
        Catalyst::Script::Server::run('Catalyst::Script::Server=HASH(0xa359160)') called at /opt/thruk/script/../local-lib/lib/perl5/i486-linux-gnu-thread-multi/Class/MOP/Method/Wrapped.pm line 48
        Class::MOP::Method::Wrapped::__ANON__('Catalyst::Script::Server=HASH(0xa359160)') called at /opt/thruk/script/../local-lib/lib/perl5/i486-linux-gnu-thread-multi/Class/MOP/Method/Wrapped.pm line 89
        Catalyst::Script::Server::run('Catalyst::Script::Server=HASH(0xa359160)') called at /opt/thruk/script/../local-lib/lib/perl5/Catalyst/ScriptRunner.pm line 20
        Catalyst::ScriptRunner::run('Catalyst::ScriptRunner', 'Thruk', 'Server') called at /opt/thruk/script/thruk_server.pl line 21"
[error] internal server error
[error] on page: http://192.168.2.226/thruk/cgi-bin/avail.cgi?show_log_entries=&host=ibiza&service=NRPC&timeperiod=today&smon=7&sday=28&syear=2011&shour=0&smin=0&ssec=0&emon=7&eday=29&eyear=2011&ehour=24&emin=0&esec=0&assumeinitialstates=yes&assumestateretention=yes&assumestatesduringnotrunning=yes&includesoftstates=no&initialassumedservicestate=-1&backtrack=4

You should know that I'm using shinken via LiveStatus on Thruk 1.0.6 (I plan to upgrade soon to the last version) and every other features just works well.
Thank you for the job.

Regards,

gif path error?

in my httpd error.log
[Wed Oct 27 22:28:17 2010] [error] [client 127.0.0.1] File does not exist: /opt/Thruk/root/thruk/themes/images, referer: http://example.com/thruk/cgi-bin/status.cgi?host=all
[Wed Oct 27 22:28:21 2010] [error] [client 127.0.0.1] File does not exist: /opt/Thruk/root/thruk/themes/images, referer: http://example.com/thruk/cgi-bin/status.cgi?hostgroup=all&style=overview

I installed thruk to /opt/Thruk/, and tried to debug with httpwatch or firebug, only found that a 404 request exists (in my httpd access_log)
"GET /thruk/themes/images/interface/menu_li1.gif HTTP/1.0" 404

utf8 comments cannot be displayed normally

under CentOS5. the package contains FCGI 0.69 where utf8 comments can be submitted but generate a 500 error. I've downgraded it to 0.68. but under both version, utf8 comments were displayed abnormally, whereas they're normal both in nagios and livestatus backend.

Problem on Display Filter

Hello,

In the display filter, "last check" and "next check" aren't working.

The calendar doesn't appear.

I've tested on firefox 5.01 and ie 8, thruk 1.0.8 and 1.0.9, same result.

Alexandre

Page refresh switches to main page when using frames

I tried to use frames and had one familiar issue.
Page refresh sends me from currently selected page to main page.

New version of Nagios has the same behavior.
There are two workarounds for original Nagios frames:

  1. Make frameset page static. Just rename index.php to index.html
  2. Add headers output for cache control to index.php.
    I used snippet from here http://css-tricks.com/snippets/php/intelligent-php-cache-control/ to force browser not to refresh frameset page.

I don't know perl language at all and can't advise you something more specific.

Can you apply any changes to Thruk to fix this refresh issue?

Broken timezone support in Date::Manip within CentOS 5 Package

as https://rt.cpan.org/Public/Bug/Display.html?id=62540

in Thruk pre-built packages of CentOS5(perl 5.8.8), the
Thruk::Utils::parse_date($c, "today 00:00");
subroutine which invokes UnixDate() is broken in certain circumstances(particularlly, when time_zone is Asia/Shanghai).
This results in wrong default start and end time in Alerts/Notifications/Event Log pages in Thruk. (Maybe today 14:00 to tomorrow 14:00)

Issue #11 is related to this.
you've changed
UnixDate("epoch $timestamp", $format);
to
Template::Plugin::Date::format(undef, $timestamp, $format);
in order to avoid this problem, but UnixDate("today 00:00") is still broken.

so, is there some quick way to fix this problem under Perl 5.8.8?
in my case, I can simply substitute Asia/Shanghai to Asia/Hong_Kong to avoid the bug of Date::Manip, but not sure for other timezones....

problem of paging in status.cgi?hostgroup=XXX&style=detail

I've set 100 per page. All of my hosts in the hostgroups have 3 services: H, M and N.
when overviewing one of my hostgroup's service detail, at the bottom of the first page there is a host shown only with service N.
and at the top of the second page, it's shown that service M and N of the host. unless I changed the paging option to a higher value, I cannot see the service H of this host.

Caught SIGSEGV, shutting down...

Hello,

I have experienced an issue for some days now. I have Thruk 0.90 and check_mk-1.1.20 installed.

Some minutes after restarting my nagios with the livestatus broker installed I get the following message in my nagios log

Caught SIGSEGV, shutting down...

The moment I get this message it is when Thruk is accessing to the livestatus linked TCP service (configured via xinetd). If I start nagios with livestatus broker loaded but xinetd is stopped my nagios is not dying.

Have you ever experienced this? Any ideas of which the root cause might be? I am bit lost and I don't know what to check or what to change. Any suggestions to troubleshoot this problem would be appreciated.

Thanks a lot.

theme Nuvola missing tacdiverse.png

The Nuvola theme is missing a tacdiverse.png, resulting in a broken link displayed for "Flap Detection" when multiple backends are configured.

Missing module Log::Dispatch::File in requirements

Hello again ;-)

Always when running the command:

besancon@frselwlt8043:~/Repos/git/Thruk
 (new_upstream|MERGING) 09:19 # ./script/thruk_server.pl 
Couldn't load class (Thruk) because: ERROR: can't load appenderclass 'Log::Dispatch::File'
Can't locate Log/Dispatch/File.pm in @INC
(...)

You specify Log::Dispatch::File module in the Log4Perl example configuration file. You should install Log::Dispatch module when invoking command perl Makefile.PM, this will avoid guys like me opening issues because they have errors ;-)

Bye,
Vincent

Menu configuration doesn't support UTF-8

Guys, you've done great job! Thruk is exactly what I was looking for.

But I had one issue.

I've tried to use utf-8 names for section's and link's names in menu_local.conf,
but those chars was corrupted in HTML output.

I've fixed it by adding "use utf8" directive to menu_local.conf

I hope, this will be useful.

Best regards.

Unable to click on backend buttons

Hello Sven, it's me... again.

I applied all commits since 936dfb4 (version 1.1.3), it appears that backend buttons are not working anymore. I cannot select or unselect backends. I tested also on http://demo.thruk.org/thruk/, there is similar problem. I can reproduce it with IE, Chrome and Firefox.

Bye,
Vincent

Problem on Display Filter : Mine map

Hello,

I found a problem when we select the Mine map view on display filter.

After we have select this view, other choices (details, overview, ...) don't work for the current display filter.

Alexandre

Unable to hide backend results from web interface

Hello Sven,

It seems that now we can select or unselect backend buttons from the web interface but it does nothing... for example, if I search for a host monitored by a backend and I disable it, I will continue to see the hosts and services monitored by this backend...

I tried to delete cache and the thruk_backends cookie in case of... but no result. A colleague also tested from his part, he has the same problem.

Tell me if you need log or any others actions.

Vincent

Different case handling in quick search

Hello!

I've noticed that quick search dropdown list uses case-sensitive search, but if I submit search request then actual search is case-insensitive.

Best regards

action icon

Action icon is never shown, even nagios-check report perfdata ( so check have action_url defined )
I use the head release

Batch commands are only submitted to one backend

When you have Thruk configured with multiple backends (nagios w/ Livestatus in this case), select multiple services, and try to submit a batch command on them (such as rescheduling the next check of acknowledging a problem), it always seems to only execute the commands on one backend. After it refreshes the page, I have to select the items that were on the other backend and submit the command again.

Problem with 2 links in trends.cgi

Hello, inside trends.cgi (tpl: trends_report.tt) there is a problem with 2 links:

  • View Alert History for this service
  • View Notifications for this service

They are pointing to a wrong service name (something like "n0_test_ok_02"...). I did a patch but I do not know how to send it ;-)

Ask me if you want it. But first, just search in file "trends_report.tt" for "n0_test_ok_02" and you will see ;-)

Bye, and thanks for Thruk, it is awesome !!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.