Ad Widget

Collapse

Monitoring Backup Exec

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Jason
    Senior Member
    • Nov 2007
    • 430

    #1

    Monitoring Backup Exec

    I'm trying to work out the best way to monitor Backup Exec (and once thats working then other backup systems)

    Currently I'm investigating the Event Log monitoring, after having discovered that it will be too fiddly to get zabbix working off snmp for our setup...

    I also wonder if I can use zabbix to monitor the job email that backup exec etc send out? I'm guessing I'd need to have the emails come through to the zabbix server and then have some way of parsing them into zabbix? Has anyone done this and got any advice on the best way of doing it?
  • bill.unger
    Member
    • Jun 2007
    • 79

    #2
    I have been trying to get the same thing working for a few months and here is a thread for that discussion: http://www.zabbix.com/forum/showthread.php?t=8873.

    The problem is that while Zabbix can and will monitor the eventLog, it is extremely picky and doesn't seem to consistently fire triggers. Let's keep this thread going to hopefully resolve this issue once and for all...

    b

    Comment

    • Jason
      Senior Member
      • Nov 2007
      • 430

      #3
      Bill,

      It was partly your thread I was reading about event log monitoring. From what i can gather event log monitoring is not that robust and I'm looking for a robust system, which is why I'm looking at a method to parse emails and send the events into zabbix.

      Jason

      Comment

      • bill.unger
        Member
        • Jun 2007
        • 79

        #4
        I would say that eventlog monitoring is definitely robust, it just isn't stable... which is kinda important... :-)

        Comment

        • Jason
          Senior Member
          • Nov 2007
          • 430

          #5
          I'm having some success with monitoring of event log messages, but being frustrated by lack of XOR or NAND operations...

          I can detect when a backup fails, for example, and can keep that trigger true till the next backup exec event using hysteresis... However, I'd like to check for the next Job start event before setting the trigger to false. i.e. the trigger remains true till the job starts again...

          Ideally I'd like to have for the second part of the trigger logic in pseudo zabbix format {TRIGGER.VALUE}=1 AND ({event.logsource(Backup Exec)}=1 NAND {event.str(Job start)}=1) but I can't currently see a way of doing it.

          Comment

          • bill.unger
            Member
            • Jun 2007
            • 79

            #6
            Originally posted by Jason
            I'm having some success with monitoring of event log messages
            Jason - can you please post an export of your templates with items, triggers, and actions?

            tia,
            Bill

            Comment

            • Jason
              Senior Member
              • Nov 2007
              • 430

              #7
              Here's a copy of the template so far...

              Because I can't work out NAND logic so far the triggers for backups aren't perfect and any backup exec event (apart from another job failed) will cause the triggers to reset.
              Attached Files

              Comment

              • NL_Daan
                Junior Member
                • Apr 2008
                • 9

                #8
                monitoring backup exec

                Hi guys,
                why not just use the SQL database for monitoring? Backup exec is putting everything in SQL.
                just create a Database Monitor check and define a query which returns failed jobs for a specified period and succes jobs.
                then you can monitor this value and if failed jobs for maybe last 4 hours or something is higher then zero you can report a trigger.
                Just an update just wrote a query

                SELECT * FROM Alert WHERE AlertDate > GETDATE() - 1 AND UserResponse='0' AND AlertTitle='Job Failed'

                this selects all events from yesterday to now (all alerts from 24 hours ago to now) which has not been responded yet.
                so of you make a trigger which goes of when the value is more then zero you're done....
                when someone responds to all the alerts in backup exec the trigger alert vanishes
                Last edited by NL_Daan; 08-05-2008, 10:29.

                Comment

                • bill.unger
                  Member
                  • Jun 2007
                  • 79

                  #9
                  Originally posted by NL_Daan
                  just create a Database Monitor check and define a query which returns failed jobs for a specified period and succes jobs.
                  I love this suggestion, but am having a hard time understanding how to create the "Database Monitor check." Am I creating a special type of Zabbix item, or??

                  Any suggestions would be very much appreciated!

                  tia,
                  Bill

                  Comment

                  • NL_Daan
                    Junior Member
                    • Apr 2008
                    • 9

                    #10
                    Originally posted by bill.unger
                    I love this suggestion, but am having a hard time understanding how to create the "Database Monitor check." Am I creating a special type of Zabbix item, or??

                    Any suggestions would be very much appreciated!

                    tia,
                    Bill
                    Hi,
                    I'm using zabbix version 1.6 so i don't know whether this check is already implemented in your version.
                    Attached Files

                    Comment

                    • bill.unger
                      Member
                      • Jun 2007
                      • 79

                      #11
                      That's the difference... I am not yet running that version....

                      Comment

                      • NL_Daan
                        Junior Member
                        • Apr 2008
                        • 9

                        #12
                        hmmm ok,
                        you could make a vbs script which you can use by a customparameter to check wether these errors are reported....
                        write a batch file which executes the vbscript which outputs the number of failures to result.txt like this....

                        @echo off
                        cscript checkbe_error.vbs
                        type result.txt

                        then use the custom parameter as an item in zabbix....

                        Comment

                        • bill.unger
                          Member
                          • Jun 2007
                          • 79

                          #13
                          Or I can just upgrade Zabbix... :-)

                          Which version are you running? 1.5.2?

                          Comment

                          • NL_Daan
                            Junior Member
                            • Apr 2008
                            • 9

                            #14
                            the latest trunk
                            i don't know which one exactly....


                            btw, this is the script...
                            Dim objConnection,objRecordset,strSearchCriteria
                            Const adOpenStatic = 3
                            Const adLockOptimistic = 3
                            Const adUseClient = 3

                            Set objConnection = CreateObject("ADODB.Connection")
                            Set objRecordset = CreateObject("ADODB.Recordset")

                            objConnection.Open "DSN=<DSN Name>;UID=<Database userID>;PWD=<Database password>;SERVER=<Server that u r going to connect>;"

                            Code:
                            objRecordset.Open "SELECT COUNT(*) FROM Alert WHERE AlertDate > GETDATE() - 1 AND UserResponse='0' AND AlertTitle='Job Failed'" , objConnection, adOpenStatic, adLockOptimistic
                            
                            If objRecordset.EOF Then
                                Wscript.Echo "Record cannot be found."
                            Else
                                Wscript.Echo "Record found."
                            Set objFSO = CreateObject("Scripting.FileSystemObject")
                            set objFile = nothing
                            set objFolder = nothing
                            Const ForAppending = 2
                            Set objFile = objFSO.CreateTextFile("result.txt")
                            Set objTextFile = objFSO.OpenTextFile _
                            (strDirectory & strFile, ForAppending, True)
                            objTextFile.WriteLine(objRecordset(0))
                            objTextFile.Close
                            End If
                            objRecordset.Close
                            objConnection.Close
                            you only have to create the right user...


                            create the right dsn


                            and create the right connectionstring in the file:

                            All connection strings in one place. Find the syntax for your database connection using ADO.NET, ADO, ODBC, OLEDB, C#, VB, VB.NET, ASP.NET and more.

                            Comment

                            • NL_Daan
                              Junior Member
                              • Apr 2008
                              • 9

                              #15
                              the latest trunk
                              i don't know which one exactly....


                              btw, this is the script...
                              Code:
                              Dim objConnection,objRecordset,strSearchCriteria
                              Const adOpenStatic = 3
                              Const adLockOptimistic = 3
                              Const adUseClient = 3
                              
                              Set objConnection = CreateObject("ADODB.Connection")
                              Set objRecordset = CreateObject("ADODB.Recordset")
                              
                              objConnection.Open "DSN=<DSN Name>;UID=<Database userID>;PWD=<Database password>;SERVER=<Server that u r going to connect>;"
                              
                              objRecordset.Open "SELECT COUNT(*) FROM Alert WHERE AlertDate > GETDATE() - 1 AND UserResponse='0' AND AlertTitle='Job Failed'" , objConnection, adOpenStatic, adLockOptimistic
                              
                              If objRecordset.EOF Then
                                  Wscript.Echo "Record cannot be found."
                              Else
                              Set objFSO = CreateObject("Scripting.FileSystemObject")
                              set objFile = nothing
                              set objFolder = nothing
                              Const ForAppending = 2
                              Set objFile = objFSO.CreateTextFile("result.txt")
                              Set objTextFile = objFSO.OpenTextFile _
                              (strDirectory & strFile, ForAppending, True)
                              objTextFile.WriteLine(objRecordset(0))
                              objTextFile.Close
                              End If
                              objRecordset.Close
                              objConnection.Close
                              you only have to create the right user...


                              create the right dsn


                              and create the right connectionstring in the file:

                              All connection strings in one place. Find the syntax for your database connection using ADO.NET, ADO, ODBC, OLEDB, C#, VB, VB.NET, ASP.NET and more.

                              Comment

                              Working...