2017-09-04 4 views
0

Lorsque j'utilise stap, il me dit cette erreur comme l'image, comment puis-je le réparer.Comment puis-je utiliser systemtap (stap) dans le conteneur centos dans docker pour mac

screenshot from error

+0

Vous pouvez essayer de suivre pas de https://github.com/draios/sysdig/issues/637 Il y a quelques points intéressants qui peut-être peut vous aider. – Naremy

+0

Désolé si cela est évident, mais même si vous obtenez systemtap pour construire un module (compléter le passage 4), il y a moyen que le noyau mac osx puisse l'exécuter. – fche

Répondre

0

ne sais vraiment pas pourquoi cette question a été downvotted fois. Quand je m'inquiète, downvotter est l'une des raisons pour lesquelles j'hésite toujours à poser des questions sur stackoverflow ...

Donc, j'ai le même souci avec un conteneur sous Ubuntu et c'est ainsi que je le répare: essayez de lancer un ubuntu bash sur docker (non CentOS, mais l'étape devrait être similaire)

docker run -it --cap-add sys_admin ubuntu bash 

Ensuite, installez une bibliothèque et systemtap

apt-get update 
apt-get --yes install build-essential cmake bc curl diffutils git kmod libcurl4-openssl-dev wget 
apt-get --yes install systemtap systemtap-sdt-dev 

maintenant, installez les en-têtes du noyau (prendra du temps)

export KERNELVER=$(uname -r | cut -d '-' -f 1) 
export KERNELDIR=/linux-$KERNELVER 
cd/
curl -o linux-${KERNELVER}.tar.gz https://www.kernel.org/pub/linux/kernel/v4.x/linux-${KERNELVER}.tar.gz 
tar zxf linux-${KERNELVER}.tar.gz 
cd linux-${KERNELVER} 
zcat /proc/1/root/proc/config.gz > .config 
make all 
make modules_prepare 
make headers_install 
make modules_install 

Exécutez maintenant stap -l 'syscall.*'. Il devrait fonctionner et l'affichage:

... 
syscall.waitpid 
syscall.write 
syscall.writev 

Il est récupéré à partir de: https://github.com/fdebonneval/mobydig/blob/master/resources/build