Powered by Zoomin Software. For more details please contactZoomin

Flowmon User Guide

Self-health Check Script

  • Last Updated: April 5, 2026
  • 4 minute read
    • Flowmon Products
    • Flowmon
    • Documentation

The self-health check script is available since version 8.03 and its purpose is to provide a quick way of assessing the health of the appliance. The script detects the most common known issues and does not perform any automatic recovery.

If issues are detected, you can resolve them using the CLI and Available commands described in the previous section or by requesting help at support.flowmon.com.

The script checks:

  • The status of the PostgreSQL database essential for GUI and configuration storage

  • For deadlocks

  • For waiting processes

  • For disk and memory space exhaustion

  • For locked profiles

  • Whether all required RRD files are present.

To run the script, use the following command:

    sudo /usr/sbin/SHC/self-health-checker.sh

All functions and outputs have assigned priorities. Based on these priorities, status, and found issues, the script provides a health score of the appliance. The output of this command is also available in the support logs after they are downloaded to be provided to Flowmon Support. The output looks like this:

Testing possible problem causes for plugin "ads"
    Deadlocks:
        STATUS 0 - There weren't found any deadlocks
    Waiting processes:
        STATUS 9 - In database was found some waiting processes
            Process with PID: 3375 (ClientRead | idle | select 
InputTools.updateDatafeeds('1638948000',arr) waiting
            Process with PID: 3377 (ClientRead | idle | SET extra_float_digits = 
3) waiting
            Process with PID: 3403 (ClientRead | idle | DEALLOCATE 
pdo_stmt_000c9412) waiting
Testing possible problem causes for plugin "flowmon"
    Apache:
        STATUS 0 - No Apache fatal errors found in log
    Distributed architecture check:
        Checking RRD files...
        Source directory: /data/nfsen/profiles-stat/live
        Time interval: 2021/12/08 00:00:00 to 2021/12/08 08:15:21
        STATUS 0 - 127-0-0-1_p3000-npm.rrd: checked for empty time slots.
        STATUS 0 - 35-241-192-99_p2055-npm.rrd: checked for empty time slots.
        STATUS 0 - 127-0-0-1_p3000.rrd: checked for empty time slots.
        STATUS 0 - 35-241-192-99_p2055.rrd: checked for empty time slots.
        Checking DaCli php test scripts...
        STATUS 0 - DaCli:GetAllConfigsHash ended successfuly
        STATUS 0 - DaCli:GetFlowProxyInfo ended successfuly
        STATUS 0 - DaCli:GetSourcesProfilesAlertsInfo ended successfuly
        Checking php coredumps...
        STATUS 0 - No coredumps found.
    DA - Verify dist_managerd daemon:
        Checking if DA is enabled
            DA is disabled
    Psql - Deadlocks:
        STATUS 0 - There weren't found any deadlocks
    Psql - Database unavailability CentOS 7:
        STATUS 0 - Service "postgresql" for CentOS 7 running since Mon 2021-11-29 09:59:57 CET; 1 weeks 1 days ago
    Psql - Waiting processes:
        STATUS 5 - In database were found some waiting processes
            Process with PID: 3326 (ClientRead | idle | DEALLOCATE
pdo_stmt_00000016) waiting
    DA - Verify logs:
        Exhausted disk:
            STATUS 0 - Disk "system" usage is under quota 75% (61%)
            STATUS 0 - Disk "data" usage is under quota 75% (27%)
            STATUS 0 - Disk "boot" usage is under quota 75% (60%)
        Locked profiles:
            STATUS 0 - All profiles are unlocked
        Myricom driver:
            STATUS 0 - This device does not have a 10Gb ethernet card
        Drops on the network interfaces:
            STATUS 0 - Drops on the network interfaces were not found.
        RRD file:
            STATUS 0 - RRD check completed successfully.
        Check Samba connection:
            STATUS 0 - External Data Storage Settings is turned off
        Higher IOWAIT checker:
            STATUS 0 - No higher IOWAIT found
        System time compare:
            STATUS 0 - System and Database time are the same.
    Verify log from dmesg:
        Search occurrence "({O|o}ut [O|o]f [M|m]emory)" in dmesg
            Nothing found
        Search occurrence "([S|s]egfault)" in dmesg
            Nothing found
        Search occurrence "Link[0-9]?\ is\ [U|u]\[P|p]" in dmesg
            Nothing found
        Search occurrence "0Link[0-9]?\ is\ [D|d][O|o][W|w][N|n]" in dmesg
            Nothing found
        Search occurrence "Parity\ [E|e]rror\ detected" in dmesg
            Nothing found
        Search occurrence "[D|d]etected\ conn\ error" in dmesg
            Nothing found
        Search occurrence "[C|c]ould\ [N|n]ot\ [G|g]et\ [M|m]yricom\ [L|l]icensing\ [I|i]nformation" in dmesg
            Nothing found
    Verify logs:
        Search occurrence "({D|d}ropped CTM: [1-9][0-9]*)" in /var/log/daemon
            Nothing found
        Search occurrence "([S|s]equence [E|e]rrors: [1-9][0-9]*)" in /var/log/daemon
            Jul 1 10:50:01 tora nfcapd[31548]: stats - LogFlogSourcesStats - Ident: 127-0-0-1_p3000' Flows: 118, Packets: 1410492, Bytes: 1769640743, Sequence Errors: 45, Bad Packets: 0 Exporters count: 2
        Search occurrence "([R|r]estarting flowmonexp5)" in /var/log/messages
            Nothing found
    Verify nfsen.conf:
        STATUS 0 - File "/data/nfsen/etc/nfsen.conf" is correct
    Verify .nfstat:
        STATUS 6 - Problems found inside .nfstat files in profile channels
    Profile channel: "DNSQue-1aab30"
        - Size of profile channel in .nfstat is not set.
    Profile data collecting:
        STATUS 0 - All profiles collecting data correctly
    Visible channels in profiles:
        STATUS 0 - All profiles has number visible channels are under 33
Testing possible problem causes for plugin "idr"
    iSCSI connection to disk array:
        STATUS 0 - iSCSI Extension is not installed

The output of the command has changed over time so it would depend which version of the Flowmon system you are using. A status other than zero means there is some trouble. In this example, there are some waiting commands in the database, sequence errors which are because we had some flows lost, and a problem with one profile. Detailed information can be found in a log file that is in the same directory as the script. The file can be read by using the following command:

    less /usr/sbin/SHC/info.log
TitleResults for “How to create a CRG?”Also Available inAlert