Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    No email notification on CARP failover

    Scheduled Pinned Locked Moved HA/CARP/VIPs
    7 Posts 2 Posters 3.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      nullifi
      last edited by

      Is there any additional configuration required to get CARP to send email notifications when it fails over? We just discovered today that our two systems have been flip-flopping between each other every few hours. I started looking into a way to monitor CARP status when I came across a mention of /etc/rc.carpbackup and rc.carpmaster files. I looked at them, and from what I can tell they should be sending an email notification whenever the CARP status changes.

      I double checked the notifications settings, and I get the test email when I submit the form, so I presume notifications are working. Am I missing a configuration setting somewhere?

      1 Reply Last reply Reply Quote 0
      • jimpJ
        jimp Rebel Alliance Developer Netgate
        last edited by

        That should be enough, though truth be told I can't remember the last time I tested the CARP aspect of the notification code.

        If the test notification works, others should too.

        Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

        Need help fast? Netgate Global Support!

        Do not Chat/PM for help!

        1 Reply Last reply Reply Quote 0
        • N
          nullifi
          last edited by

          If I manually run 'php -f /etc/rc.carpbackup' I got a notification email, but I am -not- receiving any notifications when they actually failover. Is there any reason why the rc.carp* files would not be run?

          Any idea where I should start looking? What script is actually supposed to call these files?

          1 Reply Last reply Reply Quote 0
          • jimpJ
            jimp Rebel Alliance Developer Netgate
            last edited by

            Show the output of "ifconfig -a" as well as the contents of your /etc/rc.carpbackup and /etc/devd.conf

            If the script doesn't fire at all, it may be because the devd.conf file is looking for events on the wrong interface name.

            If the script fires but doesn't e-mail, it may be that it can't read the config for some reason in that script.

            Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

            Need help fast? Netgate Global Support!

            Do not Chat/PM for help!

            1 Reply Last reply Reply Quote 0
            • N
              nullifi
              last edited by

              Here's the ifconfig:

              
              em0: flags=8943 <up,broadcast,running,promisc,simplex,multicast>metric 0 mtu 1500
                      options=209b <rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwcsum,wol_magic>ether 68:05:ca:03:8c:8f
                      inet 172.16.1.149 netmask 0xffffff00 broadcast 172.16.1.255
                      inet6 fe80::6a05:caff:fe03:8c8f%em0 prefixlen 64 scopeid 0x1
                      nd6 options=3 <performnud,accept_rtadv>media: Ethernet autoselect (1000baseT <full-duplex>)
                      status: active
              em1: flags=8943 <up,broadcast,running,promisc,simplex,multicast>metric 0 mtu 1500
                      options=209b <rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwcsum,wol_magic>ether 68:05:ca:03:8d:6b
                      inet6 fe80::6a05:caff:fe03:8d6b%em1 prefixlen 64 scopeid 0x2
                      inet 192.168.1.76 netmask 0xfffffff0 broadcast 192.168.1.79
                      nd6 options=3 <performnud,accept_rtadv>media: Ethernet autoselect (100baseTX <full-duplex>)
                      status: active
              re0: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
                      options=389b <rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwcsum,wol_ucast,wol_mcast,wol_magic>ether 00:21:5a:1e:1b:b5
                      inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
                      inet6 fe80::221:5aff:fe1e:1bb5%re0 prefixlen 64 scopeid 0x3
                      nd6 options=3 <performnud,accept_rtadv>media: Ethernet autoselect (100baseTX <full-duplex>)
                      status: active
              pflog0: flags=100 <promisc>metric 0 mtu 33664
              pfsync0: flags=41 <up,running>metric 0 mtu 1460
                      pfsync: syncdev: re0 syncpeer: 224.0.0.240 maxupd: 128 syncok: 1
              enc0: flags=41 <up,running>metric 0 mtu 1536
              lo0: flags=8049 <up,loopback,running,multicast>metric 0 mtu 16384
                      options=3 <rxcsum,txcsum>inet 127.0.0.1 netmask 0xff000000
                      inet6 ::1 prefixlen 128
                      inet6 fe80::1%lo0 prefixlen 64 scopeid 0x7
                      nd6 options=3 <performnud,accept_rtadv>vip5: flags=49 <up,loopback,running>metric 0 mtu 1500
                      inet 172.16.1.254 netmask 0xffffff00
                      carp: MASTER vhid 5 advbase 1 advskew 0
              ovpns1: flags=8051 <up,pointopoint,running,multicast>metric 0 mtu 1500
                      options=80000 <linkstate>inet6 fe80::6a05:caff:fe03:8c8f%ovpns1 prefixlen 64 scopeid 0xe
                      inet 172.16.248.1 --> 172.16.248.2 netmask 0xffffffff
                      nd6 options=3 <performnud,accept_rtadv>Opened by PID 55909
              ovpns2: flags=8051 <up,pointopoint,running,multicast>metric 0 mtu 1500
                      options=80000 <linkstate>inet6 fe80::6a05:caff:fe03:8c8f%ovpns2 prefixlen 64 scopeid 0xf
                      inet 172.16.249.1 --> 172.16.249.2 netmask 0xffffffff
                      nd6 options=3 <performnud,accept_rtadv>Opened by PID 58221
              vip1: flags=49 <up,loopback,running>metric 0 mtu 1500
                      inet 192.168.1.66 netmask 0xfffffff0
                      carp: MASTER vhid 1 advbase 1 advskew 0
              vip2: flags=49 <up,loopback,running>metric 0 mtu 1500
                      inet 192.168.1.67 netmask 0xfffffff0
                      carp: MASTER vhid 2 advbase 1 advskew 0
              vip3: flags=49 <up,loopback,running>metric 0 mtu 1500
                      inet 192.168.1.68 netmask 0xfffffff0
                      carp: MASTER vhid 3 advbase 1 advskew 0
              vip4: flags=49 <up,loopback,running>metric 0 mtu 1500
                      inet 192.168.1.69 netmask 0xfffffff0
                      carp: MASTER vhid 4 advbase 1 advskew 0
              vip6: flags=49 <up,loopback,running>metric 0 mtu 1500
                      inet 192.168.1.71 netmask 0xfffffff0
                      carp: MASTER vhid 6 advbase 1 advskew 0</up,loopback,running></up,loopback,running></up,loopback,running></up,loopback,running></up,loopback,running></performnud,accept_rtadv></linkstate></up,pointopoint,running,multicast></performnud,accept_rtadv></linkstate></up,pointopoint,running,multicast></up,loopback,running></performnud,accept_rtadv></rxcsum,txcsum></up,loopback,running,multicast></up,running></up,running></promisc></full-duplex></performnud,accept_rtadv></rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwcsum,wol_ucast,wol_mcast,wol_magic></up,broadcast,running,simplex,multicast></full-duplex></performnud,accept_rtadv></rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwcsum,wol_magic></up,broadcast,running,promisc,simplex,multicast></full-duplex></performnud,accept_rtadv></rxcsum,txcsum,vlan_mtu,vlan_hwtagging,vlan_hwcsum,wol_magic></up,broadcast,running,promisc,simplex,multicast> 
              

              Here's the devd.conf:

              
              # $Id$
              # $FreeBSD: src/etc/devd.conf,v 1.26.2.1 2005/09/03 22:49:22 sam Exp $
              
              options {
                      directory "/etc/devd";
                      directory "/usr/local/etc/devd";
                      pid-file "/var/run/devd.pid";
                      set scsi-controller-regex
                              "(aac|adv|adw|aha|ahb|ahc|ahd|aic|amd|amr|asr|bt|ciss|ct|dpt|\
                              esp|ida|iir|ips|isp|mlx|mly|mpt|ncr|ncv|nsp|stg|sym|trm|wds)\
                              [0-9]+";
              };
              
              # CARP notify hooks. This will call carpup/carpdown with the
              # interface (carp0, carp1) as the first parameter.
              notify 100 {
                  match "system"          "IFNET";
                  match "type"            "LINK_UP";
                  match "subsystem"           "carp";
                  action "/etc/rc.carpmaster $subsystem";
              };
              
              notify 100 {
                  match "system"          "IFNET";
                  match "type"            "LINK_DOWN";
                  match "subsystem"           "carp";
                  action "/etc/rc.carpbackup $subsystem";
              };
              
              # When a USB keyboard arrives, attach it as the console keyboard.
              attach 100 {
                      device-name "ukbd0";
                      action "kbdcontrol -k /dev/ukbd0 < /dev/console 2>/dev/null";
              };
              
              detach 100 {
                      device-name "ukbd0";
                      action "kbdcontrol -k /dev/kbd0 < /dev/console 2>/dev/null";
              };
              
              #
              # Signal upper levels that an event happened on ethernet class interface
              #
              notify 0 {
                      match "system"          "IFNET";
                      match "type"            "LINK_UP";
                      media-type              "ethernet";
                      action "/usr/local/sbin/pfSctl -c 'interface linkup start $subsystem'";
              };
              
              notify 0 {
                      match "system"          "IFNET";
                      match "type"            "LINK_DOWN";
                      media-type              "ethernet";
                      action "/usr/local/sbin/pfSctl -c 'interface linkup stop $subsystem'";
              };
              
              # Notify all users before beginning emergency shutdown when we get
              # a _CRT or _HOT thermal event and we're going to power down the system
              # very soon.
              notify 10 {
                      match "system"          "ACPI";
                      match "subsystem"       "Thermal";
                      match "notify"          "0xcc";
                      action "logger -p kern.emerg 'WARNING: system temperature too high, shutting down soon!'";
              };
              
              

              Here's the rc.backup:

              
              #!/usr/local/bin/php -f
              /* $Id$ */
              /*
                  rc.carpdown
                  part of pfSense (http://www.pfSense.com)
                  Copyright (C) 2004 Scott Ullrich
                  All rights reserved.
              
                  Redistribution and use in source and binary forms, with or without
                  modification, are permitted provided that the following conditions are met:
              
                  1\. Redistributions of source code must retain the above copyright notice,
                     this list of conditions and the following disclaimer.
              
                  2\. Redistributions in binary form must reproduce the above copyright
                     notice, this list of conditions and the following disclaimer in the
                     documentation and/or other materials provided with the distribution.
              
                  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
                  INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
                  AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
                  AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
                  OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
                  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
                  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
                  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                  POSSIBILITY OF SUCH DAMAGE.
              */
              
              require_once("functions.inc");
              require_once("config.inc");
              require_once("notices.inc");
              
              $notificationmsg = "A carp cluster member has resumed the state 'BACKUP'";
              
              notify_via_smtp($notificationmsg);
              notify_via_growl($notificationmsg);
              
              ?>
              
              

              Thanks for taking a look at this.

              1 Reply Last reply Reply Quote 0
              • jimpJ
                jimp Rebel Alliance Developer Netgate
                last edited by

                Yeah that's something we fixed a while back. Edit devd.conf, change the "subsystem" from carp to vip. Then you can killall -9 devd; devd (or reboot).

                Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

                Need help fast? Netgate Global Support!

                Do not Chat/PM for help!

                1 Reply Last reply Reply Quote 0
                • N
                  nullifi
                  last edited by

                  That took care of it. Thanks!

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post
                  Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.