From 6c502325f052d1fcd4fc4ef791b8ab4262d23a04 Mon Sep 17 00:00:00 2001 From: Gordon Kelly Date: Thu, 11 Jan 2018 16:59:19 +0000 Subject: docker: rename barometer image and update documentation Rename the barometer image from barometer to barometer-collectd to align with naming convention of other barometer images and move relevant files to new barometer-collectd directory.Docker userguide also updated accordingly Change-Id: Id866baf41bc38d3db8575ee00abfc64e97c7259b Signed-off-by: gordonkelly --- docker/barometer-collectd/Dockerfile | 22 +++++++ docker/barometer-collectd/README | 106 ++++++++++++++++++++++++++++++ docker/barometer-collectd/run_collectd.sh | 15 +++++ 3 files changed, 143 insertions(+) create mode 100644 docker/barometer-collectd/Dockerfile create mode 100644 docker/barometer-collectd/README create mode 100644 docker/barometer-collectd/run_collectd.sh (limited to 'docker/barometer-collectd') diff --git a/docker/barometer-collectd/Dockerfile b/docker/barometer-collectd/Dockerfile new file mode 100644 index 00000000..dd3a8c0b --- /dev/null +++ b/docker/barometer-collectd/Dockerfile @@ -0,0 +1,22 @@ +FROM centos:7 +RUN yum update -y +RUN yum install -y which sudo +RUN yum install -y git +ENV DOCKER y +ENV repos_dir /src +ENV openstack_plugins /src/barometer/src/collectd-openstack-plugins +RUN git config --global http.sslVerify false + +WORKDIR ${repos_dir} +RUN git clone https://gerrit.opnfv.org/gerrit/barometer +WORKDIR ${repos_dir}/barometer/systems +RUN sh ./build_base_machine.sh + +RUN useradd -ms /bin/bash collectd_exec +RUN echo "collectd_exec ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers + +WORKDIR ${openstack_plugins} +RUN make + +COPY run_collectd.sh /run_collectd.sh +RUN chmod +x /run_collectd.sh diff --git a/docker/barometer-collectd/README b/docker/barometer-collectd/README new file mode 100644 index 00000000..4936ad8c --- /dev/null +++ b/docker/barometer-collectd/README @@ -0,0 +1,106 @@ +============================================================================== +Readme for collectd docker container in barometer project +============================================================================== + +This text file includes information about environment preparation and +deployment collectd in docker container + +Table of content: +1. DESCRIPTION +2. SYSTEM REQUIREMENTS +3. INSTALLATION NOTES +4. ADDITIONAL STEPS + +------------------------------------------------------------------------------ +1. DESCRIPTION + +This Dockerfile provides instruction for building collect in isolated container + +------------------------------------------------------------------------------ +2. SYSTEM REQUIREMENTS + + Docker >= 17.06.0-ce + +------------------------------------------------------------------------------ +3. INSTALLATION NOTES + +To build docker container run +sudo docker build -f ./docker/barometer-collectd/Dockerfile . +from barometer folder. + +To run builded image run +sudo docker images +Get docker image id +sudo docker run -ti --net=host -v `pwd`/../src/collectd_sample_configs:/opt/collectd/etc/collectd.d \ +-v /var/run:/var/run -v /tmp:/tmp --privileged /run_collectd.sh + +To make some changes run +sudo docker run -ti --net=host -v `pwd`/../collectd_sample_configs:/opt/collectd/etc/collectd.d \ + -v /var/run:/var/run --privileged /bin/bash + +/opt/collectd/sbin/collectd -f + +------------------------------------------------------------------------------ +4. ADDITIONAL STEPS + +To check if container works properly additional packages should be installed +on host system. + +MCELOG +To simulate mcelog message use instruction in http://artifacts.opnfv.org/barometer/docs/index.html#mcelog-plugin + +git clone https://github.com/andikleen/mce-inject +cd mce-inject/ +make +sudo make install +modprobe mce-inject + +go to mcelog folder +sudo make test + +if runs multiple times mcelog service shoud be restarted(cause mcelog make test exits closes mcelog) + +VIRT +http://artifacts.opnfv.org/barometer/docs/index.html#virt-plugin +Check that libvirtd is running on the remote host +systemctl status libvirtd +virsh list +virsh perf instance-00000003 +sudo virsh perf instance-00000003 --enable cpu_cycles --live +sudo virsh perf instance-00000003 --enable cmt --live +sudo virsh perf instance-00000003 --enable mbmt --live +sudo virsh perf instance-00000003 --enable mbml --live +sudo virsh perf instance-00000003 --enable instructions --live +sudo virsh perf instance-00000003 --enable cache_references --live +sudo virsh perf instance-00000003 --enable cache_mises --live +sudo virsh perf instance-00000003 --enable cache_misses --live + +OVS +To successfuly run ovs plugins in Docker you need an ovs instance to connect to + +sudo yum install -y openvswitch-switch +sudo service openvswitch-switch start +sudo ovs-vsctl set-manager ptcp:6640 + +Alternatively you can build ovs from source +yum -y install make gcc openssl-devel autoconf automake rpm-build \ + redhat-rpm-config python-devel openssl-devel kernel-devel \ + kernel-debug-devel libtool wget python-six selinux-policy-devel +mkdir -p ~/rpmbuild/SOURCES +cd ~/rpmbuild/SOURCES +wget http://openvswitch.org/releases/openvswitch-2.5.3.tar.gz +tar xfz openvswitch-2.5.3.tar.gz +sed 's/openvswitch-kmod, //g' rhel/openvswitch.spec > rhel/openvswitch_no_kmod.spec +rpmbuild -bb --nocheck rhel/openvswitch_no_kmod.spec +cd ../RPMS/x86_64/ +yum install -y openvswitch-2.5.3-1.x86_64.rpm +sudo systemctl start openvswitch.service +sudo ovs-vsctl set-manager ptcp:6640 + +To check if connection is successfull please check +sudo ovs-vsctl show +319efc53-b321-49a9-b628-e8d70f9bd8a9 + Manager "ptcp:6640" + is_connected: true - can be a marker that ovs plugins successfully connected + ovs_version: "2.5.3" +on the host. diff --git a/docker/barometer-collectd/run_collectd.sh b/docker/barometer-collectd/run_collectd.sh new file mode 100644 index 00000000..001cce1a --- /dev/null +++ b/docker/barometer-collectd/run_collectd.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Copyright 2017 OPNFV +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +/opt/collectd/sbin/collectd -f -- cgit 1.2.3-korg