BCC - Dynamic Tracing Tools fyrir Linux árangurseftirlit, netkerfi og fleira
BCC (BPF Compiler Collection) er öflugt sett af viðeigandi verkfærum og dæmaskrám til að búa til úrræðagóð kjarnarakningar- og meðferðarforrit. Það notar framlengda BPF (Berkeley Packet Filters), upphaflega þekkt sem eBPF sem var einn af nýju eiginleikunum í Linux 3.15.
Í rauninni þurfa flestir hlutir sem BCC nota Linux 4.1 eða nýrri, og eftirtektarverðir eiginleikar þess eru meðal annars:
- Karfst engra 3. aðila kjarnaeiningu, þar sem öll verkfærin vinna byggt á BPF sem er innbyggt í kjarnann og BCC notar eiginleika sem bætt er við í Linux 4.x röð.
- Gerir athugun á framkvæmd hugbúnaðar.
- Samanstendur af nokkrum frammistöðugreiningarverkfærum með dæmaskrám og mansíðum.
Hentar best fyrir háþróaða Linux notendur, BCC gerir það auðvelt að skrifa BPF forrit með því að nota kjarnabúnað í C og framenda í Python og lua. Að auki styður það mörg verkefni eins og frammistöðugreiningu, eftirlit, netumferðarstýringu auk margt fleira.
Hvernig á að setja upp BCC í Linux kerfum
Mundu að BCC notar eiginleika sem bætt er við í Linux kjarna útgáfu 4.1 eða nýrri, og sem krafa ætti kjarninn að hafa verið settur saman með fánum sem eru settir hér að neðan:
CONFIG_BPF=y CONFIG_BPF_SYSCALL=y # [optional, for tc filters] CONFIG_NET_CLS_BPF=m # [optional, for tc actions] CONFIG_NET_ACT_BPF=m CONFIG_BPF_JIT=y CONFIG_HAVE_BPF_JIT=y # [optional, for kprobes] CONFIG_BPF_EVENTS=y
Til að athuga kjarnafánana þína skaltu skoða skrána /proc/config.gz eða keyra skipanirnar eins og í dæmunum hér að neðan:
[email ~ $ grep CONFIG_BPF= /boot/config-`uname -r` CONFIG_BPF=y [email ~ $ grep CONFIG_BPF_SYSCALL= /boot/config-`uname -r` CONFIG_BPF_SYSCALL=y [email ~ $ grep CONFIG_NET_CLS_BPF= /boot/config-`uname -r` CONFIG_NET_CLS_BPF=m [email ~ $ grep CONFIG_NET_ACT_BPF= /boot/config-`uname -r` CONFIG_NET_ACT_BPF=m [email ~ $ grep CONFIG_BPF_JIT= /boot/config-`uname -r` CONFIG_BPF_JIT=y [email ~ $ grep CONFIG_HAVE_BPF_JIT= /boot/config-`uname -r` CONFIG_HAVE_BPF_JIT=y [email ~ $ grep CONFIG_BPF_EVENTS= /boot/config-`uname -r` CONFIG_BPF_EVENTS=y
Eftir að hafa staðfest kjarnaflögg er kominn tími til að setja upp BCC verkfæri í Linux kerfum.
Aðeins næturpakkarnir eru búnir til fyrir Ubuntu 16.04, en uppsetningarleiðbeiningarnar eru mjög einfaldar. Engin þörf á að uppfæra kjarna eða setja hann saman frá uppruna.
$ echo "deb [trusted=yes] https://repo.iovisor.org/apt/xenial xenial-nightly main" | sudo tee /etc/apt/sources.list.d/iovisor.list $ sudo apt-get update $ sudo apt-get install bcc-tools
Byrjaðu á því að setja upp 4.3+ Linux kjarna, frá http://kernel.ubuntu.com/~kernel-ppa/mainline.
Sem dæmi, skrifaðu lítið skeljaforskrift „bcc-install.sh“ með innihaldinu hér að neðan.
Athugið: uppfærðu PREFIX gildið í nýjustu dagsetningu og flettu einnig í skrárnar í PREFIX slóðinni sem gefin er upp til að fá raunverulegt REL gildi, skiptu þeim í skeljarskriftina.
#!/bin/bash VER=4.5.1-040501 PREFIX=http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.5.1-wily/ REL=201604121331 wget ${PREFIX}/linux-headers-${VER}-generic_${VER}.${REL}_amd64.deb wget ${PREFIX}/linux-headers-${VER}_${VER}.${REL}_all.deb wget ${PREFIX}/linux-image-${VER}-generic_${VER}.${REL}_amd64.deb sudo dpkg -i linux-*${VER}.${REL}*.deb
Vistaðu skrána og hættu. Gerðu það keyranlegt og keyrðu það síðan eins og sýnt er:
$ chmod +x bcc-install.sh $ sh bcc-install.sh
Síðan skaltu endurræsa kerfið þitt.
$ reboot
Næst skaltu keyra skipanirnar hér að neðan til að setja upp undirritaða BCC pakka:
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D4284CDD $ echo "deb https://repo.iovisor.org/apt trusty main" | sudo tee /etc/apt/sources.list.d/iovisor.list $ sudo apt-get update $ sudo apt-get install binutils bcc bcc-tools libbcc-examples python-bcc
Settu upp 4.2+ kjarna frá http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug, ef kerfið þitt er með lægri útgáfu en krafist er. Hér að neðan er dæmi um hvernig á að gera það:
$ sudo dnf config-manager --add-repo=http://alt.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo $ sudo dnf update $ reboot
Eftir það skaltu bæta við BBC verkfærageymslunni, uppfæra kerfið þitt og setja upp verkfærin með því að framkvæma næstu röð skipana:
$ echo -e '[iovisor]\nbaseurl=https://repo.iovisor.org/yum/nightly/f23/$basearch\nenabled=1\ngpgcheck=0' | sudo tee /etc/yum.repos.d/iovisor.repo $ sudo dnf update $ sudo dnf install bcc-tools
Þú ættir að byrja á því að uppfæra kjarnann þinn í að minnsta kosti útgáfu 4.3.1-1, setja í kjölfarið upp pakkana hér að neðan með því að nota hvaða Arch pakkastjóra sem er eins og pacaur, yaourt, cower o.s.frv.
bcc bcc-tools python-bcc python2-bcc
Hvernig á að nota BCC verkfæri í Linux kerfum
Öll BCC verkfærin eru sett upp í /usr/share/bcc/tools
skránni. Hins vegar geturðu keyrt þau úr BCC Github geymslunni undir /tools
þar sem þau enda með .py
viðbótinni.
$ ls /usr/share/bcc/tools argdist capable filetop offwaketime stackcount vfscount bashreadline cpudist funccount old stacksnoop vfsstat biolatency dcsnoop funclatency oomkill statsnoop wakeuptime biosnoop dcstat gethostlatency opensnoop syncsnoop xfsdist biotop doc hardirqs pidpersec tcpaccept xfsslower bitesize execsnoop killsnoop profile tcpconnect zfsdist btrfsdist ext4dist mdflush runqlat tcpconnlat zfsslower btrfsslower ext4slower memleak softirqs tcpretrans cachestat filelife mysqld_qslower solisten tplist cachetop fileslower offcputime sslsniff trace
Við munum fjalla um nokkur dæmi undir - eftirlit með almennri afköstum Linux kerfisins og netkerfi.
Byrjum á því að rekja öll open()
syscalls með opensnoop. Þetta gerir okkur kleift að segja okkur hvernig ýmis forrit virka með því að auðkenna gagnaskrár þeirra, stillingarskrár og margt fleira:
$ cd /usr/share/bcc/tools $ sudo ./opensnoop PID COMM FD ERR PATH 1 systemd 35 0 /proc/self/mountinfo 2797 udisksd 13 0 /proc/self/mountinfo 1 systemd 35 0 /sys/devices/pci0000:00/0000:00:0d.0/ata3/host2/target2:0:0/2:0:0:0/block/sda/sda1/uevent 1 systemd 35 0 /run/udev/data/b8:1 1 systemd -1 2 /etc/systemd/system/sys-kernel-debug-tracing.mount 1 systemd -1 2 /run/systemd/system/sys-kernel-debug-tracing.mount 1 systemd -1 2 /run/systemd/generator/sys-kernel-debug-tracing.mount 1 systemd -1 2 /usr/local/lib/systemd/system/sys-kernel-debug-tracing.mount 2247 systemd 15 0 /proc/self/mountinfo 1 systemd -1 2 /lib/systemd/system/sys-kernel-debug-tracing.mount 1 systemd -1 2 /usr/lib/systemd/system/sys-kernel-debug-tracing.mount 1 systemd -1 2 /run/systemd/generator.late/sys-kernel-debug-tracing.mount 1 systemd -1 2 /etc/systemd/system/sys-kernel-debug-tracing.mount.wants 1 systemd -1 2 /etc/systemd/system/sys-kernel-debug-tracing.mount.requires 1 systemd -1 2 /run/systemd/system/sys-kernel-debug-tracing.mount.wants 1 systemd -1 2 /run/systemd/system/sys-kernel-debug-tracing.mount.requires 1 systemd -1 2 /run/systemd/generator/sys-kernel-debug-tracing.mount.wants 1 systemd -1 2 /run/systemd/generator/sys-kernel-debug-tracing.mount.requires 1 systemd -1 2 /usr/local/lib/systemd/system/sys-kernel-debug-tracing.mount.wants 1 systemd -1 2 /usr/local/lib/systemd/system/sys-kernel-debug-tracing.mount.requires 1 systemd -1 2 /lib/systemd/system/sys-kernel-debug-tracing.mount.wants 1 systemd -1 2 /lib/systemd/system/sys-kernel-debug-tracing.mount.requires 1 systemd -1 2 /usr/lib/systemd/system/sys-kernel-debug-tracing.mount.wants 1 systemd -1 2 /usr/lib/systemd/system/sys-kernel-debug-tracing.mount.requires 1 systemd -1 2 /run/systemd/generator.late/sys-kernel-debug-tracing.mount.wants 1 systemd -1 2 /run/systemd/generator.late/sys-kernel-debug-tracing.mount.requires 1 systemd -1 2 /etc/systemd/system/sys-kernel-debug-tracing.mount.d 1 systemd -1 2 /run/systemd/system/sys-kernel-debug-tracing.mount.d 1 systemd -1 2 /run/systemd/generator/sys-kernel-debug-tracing.mount.d ....
Í þessu dæmi sýnir það samantekta dreifingu á I/O leynd á diski með því að nota líftíðni. Eftir að hafa keyrt skipunina skaltu bíða í nokkrar mínútur og ýta á Ctrl-C til að ljúka henni og skoða úttakið.
$ sudo ./biolatecncy Tracing block device I/O... Hit Ctrl-C to end. ^C usecs : count distribution 0 -> 1 : 0 | | 2 -> 3 : 0 | | 4 -> 7 : 0 | | 8 -> 15 : 0 | | 16 -> 31 : 0 | | 32 -> 63 : 0 | | 64 -> 127 : 0 | | 128 -> 255 : 3 |****************************************| 256 -> 511 : 3 |****************************************| 512 -> 1023 : 1 |************* |
Í þessum hluta munum við fara í að rekja nýja ferla í framkvæmd með því að nota execsnoop tól. Í hvert sinn sem ferli er flokkað með fork()
og exec()
kerfiskerfi, þá er það sýnt í úttakinu. Hins vegar eru ekki öll ferli tekin.
$ sudo ./execsnoop PCOMM PID PPID RET ARGS gnome-screensho 14882 14881 0 /usr/bin/gnome-screenshot --gapplication-service systemd-hostnam 14892 1 0 /lib/systemd/systemd-hostnamed nautilus 14897 2767 -2 /home/tecmint/bin/net usershare info nautilus 14897 2767 -2 /home/tecmint/.local/bin/net usershare info nautilus 14897 2767 -2 /usr/local/sbin/net usershare info nautilus 14897 2767 -2 /usr/local/bin/net usershare info nautilus 14897 2767 -2 /usr/sbin/net usershare info nautilus 14897 2767 -2 /usr/bin/net usershare info nautilus 14897 2767 -2 /sbin/net usershare info nautilus 14897 2767 -2 /bin/net usershare info nautilus 14897 2767 -2 /usr/games/net usershare info nautilus 14897 2767 -2 /usr/local/games/net usershare info nautilus 14897 2767 -2 /snap/bin/net usershare info compiz 14899 14898 -2 /home/tecmint/bin/libreoffice --calc compiz 14899 14898 -2 /home/tecmint/.local/bin/libreoffice --calc compiz 14899 14898 -2 /usr/local/sbin/libreoffice --calc compiz 14899 14898 -2 /usr/local/bin/libreoffice --calc compiz 14899 14898 -2 /usr/sbin/libreoffice --calc libreoffice 14899 2252 0 /usr/bin/libreoffice --calc dirname 14902 14899 0 /usr/bin/dirname /usr/bin/libreoffice basename 14903 14899 0 /usr/bin/basename /usr/bin/libreoffice ...
Notkun ext4slower til að rekja ext4 skráarkerfið algengar aðgerðir sem eru hægari en 10ms, til að hjálpa okkur að bera kennsl á sjálfstætt hægan disk I/O í gegnum skráarkerfið.
Það gefur aðeins út þær aðgerðir sem fara yfir viðmiðunarmörk:
$ sudo ./execslower Tracing ext4 operations slower than 10 ms TIME COMM PID T BYTES OFF_KB LAT(ms) FILENAME 11:59:13 upstart 2252 W 48 1 10.76 dbus.log 11:59:13 gnome-screensh 14993 R 144 0 10.96 settings.ini 11:59:13 gnome-screensh 14993 R 28 0 16.02 gtk.css 11:59:13 gnome-screensh 14993 R 3389 0 18.32 gtk-main.css 11:59:25 rs:main Q:Reg 1826 W 156 60 31.85 syslog 11:59:25 pool 15002 R 208 0 14.98 .xsession-errors 11:59:25 pool 15002 R 644 0 12.28 .ICEauthority 11:59:25 pool 15002 R 220 0 13.38 .bash_logout 11:59:27 dconf-service 2599 S 0 0 22.75 user.BHDKOY 11:59:33 compiz 2548 R 4096 0 19.03 firefox.desktop 11:59:34 compiz 15008 R 128 0 27.52 firefox.sh 11:59:34 firefox 15008 R 128 0 36.48 firefox 11:59:34 zeitgeist-daem 2988 S 0 0 62.23 activity.sqlite-wal 11:59:34 zeitgeist-fts 2996 R 8192 40 15.67 postlist.DB 11:59:34 firefox 15008 R 140 0 18.05 dependentlibs.list 11:59:34 zeitgeist-fts 2996 S 0 0 25.96 position.tmp 11:59:34 firefox 15008 R 4096 0 10.67 libplc4.so 11:59:34 zeitgeist-fts 2996 S 0 0 11.29 termlist.tmp ...
Næst skulum við kafa í að prenta línu á hvern disk I/O á hverri sekúndu, með upplýsingum eins og ferli ID, geira, bæti, leynd ásamt öðru með því að nota biosnoop:
$ sudo ./biosnoop TIME(s) COMM PID DISK T SECTOR BYTES LAT(ms) 0.000000000 ? 0 R -1 8 0.26 2.047897000 ? 0 R -1 8 0.21 3.280028000 kworker/u4:0 14871 sda W 30552896 4096 0.24 3.280271000 jbd2/sda1-8 545 sda W 29757720 12288 0.40 3.298318000 jbd2/sda1-8 545 sda W 29757744 4096 0.14 4.096084000 ? 0 R -1 8 0.27 6.143977000 ? 0 R -1 8 0.27 8.192006000 ? 0 R -1 8 0.26 8.303938000 kworker/u4:2 15084 sda W 12586584 4096 0.14 8.303965000 kworker/u4:2 15084 sda W 25174736 4096 0.14 10.239961000 ? 0 R -1 8 0.26 12.292057000 ? 0 R -1 8 0.20 14.335990000 ? 0 R -1 8 0.26 16.383798000 ? 0 R -1 8 0.17 ...
Síðan höldum við áfram að nota skyndiminni til að birta eina línu af samanteknum tölfræði úr skyndiminni kerfisins á hverri sekúndu. Þetta gerir kerfisstillingaraðgerðir kleift með því að benda á lágt skyndiminnislagshlutfall og hátt hlutfall mistaka:
$ sudo ./cachestat HITS MISSES DIRTIES READ_HIT% WRITE_HIT% BUFFERS_MB CACHED_MB 0 0 0 0.0% 0.0% 19 544 4 4 2 25.0% 25.0% 19 544 1321 33 4 97.3% 2.3% 19 545 7476 0 2 100.0% 0.0% 19 545 6228 15 2 99.7% 0.2% 19 545 0 0 0 0.0% 0.0% 19 545 7391 253 108 95.3% 2.7% 19 545 33608 5382 28 86.1% 13.8% 19 567 25098 37 36 99.7% 0.0% 19 566 17624 239 416 96.3% 0.5% 19 520 ...
Vöktun á TCP tengingum á sekúndu fresti með tcpconnect. Framleiðsla þess inniheldur uppruna- og áfangastað og gáttarnúmer. Þetta tól er gagnlegt til að rekja óvæntar TCP-tengingar og hjálpar okkur þar með að bera kennsl á óhagkvæmni í forritastillingum eða árásarmanni.
$ sudo ./tcpconnect PID COMM IP SADDR DADDR DPORT 15272 Socket Threa 4 10.0.2.15 91.189.89.240 80 15272 Socket Threa 4 10.0.2.15 216.58.199.142 443 15272 Socket Threa 4 10.0.2.15 216.58.199.142 80 15272 Socket Threa 4 10.0.2.15 216.58.199.174 443 15272 Socket Threa 4 10.0.2.15 54.200.62.216 443 15272 Socket Threa 4 10.0.2.15 54.200.62.216 443 15272 Socket Threa 4 10.0.2.15 117.18.237.29 80 15272 Socket Threa 4 10.0.2.15 216.58.199.142 80 15272 Socket Threa 4 10.0.2.15 216.58.199.131 80 15272 Socket Threa 4 10.0.2.15 216.58.199.131 443 15272 Socket Threa 4 10.0.2.15 52.222.135.52 443 15272 Socket Threa 4 10.0.2.15 216.58.199.131 443 15272 Socket Threa 4 10.0.2.15 54.200.62.216 443 15272 Socket Threa 4 10.0.2.15 54.200.62.216 443 15272 Socket Threa 4 10.0.2.15 216.58.199.132 443 15272 Socket Threa 4 10.0.2.15 216.58.199.131 443 15272 Socket Threa 4 10.0.2.15 216.58.199.142 443 15272 Socket Threa 4 10.0.2.15 54.69.17.198 443 15272 Socket Threa 4 10.0.2.15 54.69.17.198 443 ...
Öll verkfærin hér að ofan er einnig hægt að nota með ýmsum valkostum, til að virkja hjálparsíðuna fyrir tiltekið verkfæri, notaðu -h
valkostinn, til dæmis:
$ sudo ./tcpconnect -h usage: tcpconnect [-h] [-t] [-p PID] [-P PORT] Trace TCP connects optional arguments: -h, --help show this help message and exit -t, --timestamp include timestamp on output -p PID, --pid PID trace this PID only -P PORT, --port PORT comma-separated list of destination ports to trace. examples: ./tcpconnect # trace all TCP connect()s ./tcpconnect -t # include timestamps ./tcpconnect -p 181 # only trace PID 181 ./tcpconnect -P 80 # only trace port 80 ./tcpconnect -P 80,81 # only trace port 80 and 81
Notaðu -x
valmöguleikann með opensnoop eins og hér að neðan til að rekja misheppnuð exec()s syscalls:
$ sudo ./opensnoop -x PID COMM FD ERR PATH 15414 pool -1 2 /home/.hidden 15415 (ostnamed) -1 2 /sys/fs/cgroup/cpu/system.slice/systemd-hostnamed.service/cgroup.procs 15415 (ostnamed) -1 2 /sys/fs/cgroup/cpu/system.slice/cgroup.procs 15415 (ostnamed) -1 2 /sys/fs/cgroup/cpuacct/system.slice/systemd-hostnamed.service/cgroup.procs 15415 (ostnamed) -1 2 /sys/fs/cgroup/cpuacct/system.slice/cgroup.procs 15415 (ostnamed) -1 2 /sys/fs/cgroup/blkio/system.slice/systemd-hostnamed.service/cgroup.procs 15415 (ostnamed) -1 2 /sys/fs/cgroup/blkio/system.slice/cgroup.procs 15415 (ostnamed) -1 2 /sys/fs/cgroup/memory/system.slice/systemd-hostnamed.service/cgroup.procs 15415 (ostnamed) -1 2 /sys/fs/cgroup/memory/system.slice/cgroup.procs 15415 (ostnamed) -1 2 /sys/fs/cgroup/pids/system.slice/systemd-hostnamed.service/cgroup.procs 2548 compiz -1 2 15416 systemd-cgroups -1 2 /run/systemd/container 15416 systemd-cgroups -1 2 /sys/fs/kdbus/0-system/bus 15415 systemd-hostnam -1 2 /run/systemd/container 15415 systemd-hostnam -1 13 /proc/1/environ 15415 systemd-hostnam -1 2 /sys/fs/kdbus/0-system/bus 1695 dbus-daemon -1 2 /run/systemd/users/0 15415 systemd-hostnam -1 2 /etc/machine-info 15414 pool -1 2 /home/tecmint/.hidden 15414 pool -1 2 /home/tecmint/Binary/.hidden 2599 dconf-service -1 2 /run/user/1000/dconf/user ...
Síðasta dæmið hér að neðan sýnir hvernig á að framkvæma sérsniðna rakningaraðgerð. Við erum að rekja tiltekið ferli með því að nota PID þess.
Ákvarða fyrst ferli ID:
$ pidof firefox 15437
Síðar skaltu keyra sérsniðna rekja skipunina. Í skipuninni hér að neðan: -p
tilgreinir auðkenni ferlisins, do_sys_open()
er kjarnafall sem er rakið á virkan hátt, þar með talið seinni röksemdin sem streng.
$ sudo ./trace -p 4095 'do_sys_open "%s", arg2' TIME PID COMM FUNC - 12:17:14 15437 firefox do_sys_open /run/user/1000/dconf/user 12:17:14 15437 firefox do_sys_open /home/tecmint/.config/dconf/user 12:18:07 15437 firefox do_sys_open /run/user/1000/dconf/user 12:18:07 15437 firefox do_sys_open /home/tecmint/.config/dconf/user 12:18:13 15437 firefox do_sys_open /sys/devices/system/cpu/present 12:18:13 15437 firefox do_sys_open /dev/urandom 12:18:13 15437 firefox do_sys_open /dev/urandom 12:18:14 15437 firefox do_sys_open /usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf 12:18:14 15437 firefox do_sys_open /usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf 12:18:14 15437 firefox do_sys_open /usr/share/fonts/truetype/liberation/LiberationSans-Italic.ttf 12:18:14 15437 firefox do_sys_open /sys/devices/system/cpu/present 12:18:14 15437 firefox do_sys_open /dev/urandom 12:18:14 15437 firefox do_sys_open /dev/urandom 12:18:14 15437 firefox do_sys_open /dev/urandom 12:18:14 15437 firefox do_sys_open /dev/urandom 12:18:15 15437 firefox do_sys_open /sys/devices/system/cpu/present 12:18:15 15437 firefox do_sys_open /dev/urandom 12:18:15 15437 firefox do_sys_open /dev/urandom 12:18:15 15437 firefox do_sys_open /sys/devices/system/cpu/present 12:18:15 15437 firefox do_sys_open /dev/urandom 12:18:15 15437 firefox do_sys_open /dev/urandom ....
Samantekt
BCC er öflugt og auðvelt í notkun verkfærasett fyrir ýmis kerfisstjórnunarverkefni eins og að rekja frammistöðuvöktun kerfis, rekja I/O tækjabúnað, TCP aðgerðir, skráarkerfisaðgerðir, syscalls, Node.js rannsaka, auk margt fleira. Mikilvægt er að það fylgir nokkrum dæmaskrám og mannasíðum fyrir verkfærin til að leiðbeina þér, sem gerir það notendavænt og áreiðanlegt.
Síðast en ekki síst geturðu snúið aftur til okkar með því að deila hugsunum þínum um efnið, spyrja spurninga, koma með gagnlegar uppástungur eða hvers kyns uppbyggileg viðbrögð í gegnum athugasemdareitinn hér að neðan.
Fyrir frekari upplýsingar og notkun heimsækja: https://iovisor.github.io/bcc/