[ZBX-14876] Can't exclude directory with regex_excl in vfs.dir.size Created: 2018 Sep 19  Updated: 2024 Apr 10  Resolved: 2021 Apr 28

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Agent (G)
Affects Version/s: 3.4.14
Fix Version/s: 4.0.4rc1, 4.2.0alpha2, 4.2 (plan)

Type: Problem report Priority: Trivial
Reporter: Roman Assignee: Andris Mednis
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Debian 9


Issue Links:
Causes
caused by ZBXNEXT-491 new item key: directory size Closed
Team: Team A
Sprint: Sprint 43, Sprint 44, Sprint 45, Sprint 46, Nov 2018, Sprint 47, Dec 2018, Sprint 74 (Mar 2021)
Story Points: 3

 Description   

I'm trying to get size of specified directory but exclude size of one subdirectory and files inside it. Directory structure looks like this:

 

logs/
  archive/
    01.log
    02.log
  01.log
  02.log

 

I want to exclude whole 'archive' folder and all files in it. Based on documentation regex_excl is what I need.

regex_excl - regex describing the file, directory and symbolic link name pattern for exclusion (don't exclude any if empty; empty string is default value)

But using regex_excl with directory name only excludes size of directory file itself (i.e. 4096 bytes) but not whole subtree size.

Steps to reproduce:

  1. Create test directory structure like described above.
  2. Query size from Zabbix Agent
  3. # zabbix_get -s servername -k "vfs.dir.size[/tmp/logs]"
    3347012
    # du -bcs /tmp/logs
    3347012 /tmp/logs
    3347012 total
    
    # zabbix_get -s servername -k "vfs.dir.size[/tmp/logs,,archive]"
    3342916
    # du --exclude=archive -bcs /tmp/logs
    1850526 /tmp/logs
    1850526 total
    
    # zabbix_get -s servername -k "vfs.dir.size[/tmp/logs,,\.log]"
    8192
    # du --exclude=*log -bcs /tmp/logs
    8192    /tmp/logs
    8192    total

Result:

  • With first request we get size of all files in target folder (/tmp/logs). du return same size.
  • With second request we get size of all files excluding size of 'archive' directory file (3347012 - 3342916 = 4096 bytes). 'du' returns different result because it does not count size of files in 'archive' directory.****
  • 3-rd request returns only size of 2 directory files: 'logs' and 'archive' all '*.log' files are excluded.

Expected:
Based on documentation description I expect regex_excl operate same way as --exclude key of du utility, but it behaves in different, unpredictable way.



 Comments   
Comment by Viktors Tjarve [ 2018 Dec 20 ]

Released in:

  • 4.0.4rc1 r88041
  • 4.2.0alpha2 r88042

Updated documentation:

Comment by MATSUDA Daiki [ 2019 Feb 05 ]

You should update Web front online help (frontends/php/include/classes/items/CHelpItems.php) and online manual (https://www.zabbix.com/documentation/4.0/manual/config/items/itemtypes/zabbix_agent).

Comment by richlv [ 2019 Feb 07 ]

Missing documentation, mentioned above, reported as ZBX-15609.

Generated at Thu Apr 25 23:32:23 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.