Ubuntu üzerine LXC Container ve LXC WebPanel Kurulumu

Ubuntu üzerine LXC Container ve LXC WebPanel Kurulumu

Docker docker nereye kadar dedik ve birazda değişiklik olması için LXC container kurmaya karar verdik, öncesinde sıfır ubuntu kurdum version 19.04 ve update ettim. Sonrasında LXC ve lxc template’lerini kumakla başlayalım.

apt-get install lxc lxc-templates -y

Sorunsuz kurulum olup olmadığına aşağıdaki komutla bakabilirsiniz , cgroups’lar , nat’lar , namespace’lerin oluştuğunu göreceksiniz.

lxc-checkconfig

Şimdi templatelerin gelip gelmediğini aşağıdaki komutla kontrol edelim.

ls /usr/share/lxc/templates/

root@lxc:/home/ayhanarda# ls /usr/share/lxc/templates/
lxc-alpine lxc-archlinux lxc-centos lxc-debian lxc-fedora lxc-gentoo lxc-oci lxc-opensuse lxc-plamo lxc-sabayon lxc-sparclinux lxc-ubuntu lxc-voidlinux
lxc-altlinux lxc-busybox lxc-cirros lxc-download lxc-fedora-legacy lxc-local lxc-openmandriva lxc-oracle lxc-pld lxc-slackware lxc-sshd lxc-ubuntu-cloud

Görüldüğü üzere templatelerimiz gelmiş , şimdi ilk konteyner’imizi oluşturalım. Örneğin ubuntu konteyner açalım, ismi de new-container olsun.

lxc-create -n new-container -t ubuntu

İlk kez imaj indirirken biraz uzun sürebilir , ikinci de de aynı durumun olup olmadığını görmek için tekrar indirme ihtiyacı hissettim , bununda adı , new-container-2 olsun diyorum ve tekrar indiriyorum.

lxc-create -n new-container-2 -t ubuntu

Ve sonuç düşündüğüm gibi oldu , birincisi 2 dakika kadar sürerken ikincisi zaten kalıbı daha önce indiği için 2 saniye kadar sürdü.

Şimdi lxc container’larımızı listeleyelim.

root@lxc:/home/ayhanarda# lxc-ls
new-container new-container-2

Görüldüğü üzere 2 adet container gözüküyor , şimdi new-container isimli olanı çalıştıralım.

lxc-start -n new-container -d

Peki container’ın konsoluna nasıl erişiriz dediğinizi duyar gibiyim , aşağıdaki komutu kullanabilirsiniz.

lxc-console -n new-container

Şifre soracaktır , konteyner’ı indirdiğimizde zaten bize ubuntu kullanıcı adı ve şifresini vermiş idi , bu bilgiler ile giriş yapabilirsiniz.

Konteyner ile ilgili bilgi almak için aşağıdaki komutu kullanabilirsiniz.

lxc-info -n new-container

Çıktısı aşağıdaki gibi olacaktır.

root@kxc:/home/ayhanarda# lxc-info -n new-container
Name: new-container
State: RUNNING
PID: 41933
IP: 10.0.3.16
CPU use: 1.58 seconds
BlkIO use: 33.30 MiB
Memory use: 69.94 MiB
KMem use: 12.58 MiB
Link: vethRUDGSR
TX bytes: 1.89 KiB
RX bytes: 2.84 KiB
Total bytes: 4.73 KiB

Konteyner’larımızı başlatmak ya da durdurmak için aşağıdaki komutları kullanabilirsiniz.

lxc-start -n new-container
lxc-stop -n new-container

Konteyner’larımızı pause ya da unpouse etmek için ise aşağıdaki komutları kullanabilirsiniz.

lxc-freeze -n new-container
lxc-unfreeze -n new-container

Eğer konteyner’ımızın snapshot’ını almak istersek önce durdurmalıyız ve sonra snapshot’ı aşağıdaki komutla alabiliriz.

lxc-stop -n new-container
lxc-snapshot -n new-container

Alınan snapshotları listemelek için aşağıdaki komutu kullanabilirsiniz.

root@lxc:/home/ayhanarda# lxc-snapshot -L -n new-container
snap0 (/var/lib/lxc/new-container/snaps) 2019:08:07 10:47:07

Snapshot’tan dönmek için ise komut aşağıdaki gibi olacaktır.

lxc-snapshot -r snap0 -n new-container

Konteyner’ı silmek için yine önce durdurmalı sonra silmelisiniz.

lxc-stop -n new-container
lxc-destroy -n new-container

Komutlarla uğraşmak istemiyorum , bir gui’mizde olsun diyorsanız aşağıdaki komut ile kurabilirsiniz.

wget https://lxc-webpanel.github.io/tools/install.sh -O – | bash

İşlem bittiğinde LXC web panel’e http://ipadresiniz:5000 nolu porttan admin kullanıcı adı ve şifresi ile erişebilirsiniz.

Ayhan ARDA

Docker ile ELKStack Kurulumu

Elkstack ; ElasticSearch, Logstash ve Kibana isimli 3 açık kaynak yazılımın birleşimine verilen isimdir.

Neden Docker ile kurulum derseniz adı geçen tüm bileşenleri tek tek kurmak yerine tek seferde kurmak daha cazip gözüküyor , elimizde yeni kurulmuş bir ubuntu 14 olduğunu ve ssh tan eriştiğimizi varsayalım , muhtemelen curl kurulu gelmeyecek , öncelikle kuralım.

root@ayhanarda:/# apt-get install curl

root@ayhanarda:/# curl -sSL https://get.docker.com/ubuntu/ | sudo sh

Şimdi pip ile Docker Compose kuralım.

root@ayhanarda:/# apt-get install python-pip

root@ayhanarda:/# pip install -U docker-compose

Şimdi docker-compose dosyamıza çalışma izni verelim.

root@ayhanarda:/# chmod +x /usr/local/bin/docker-compose

Şimdi kurulumun buraya kadar doğru olup olmadığını doğrulayalım.

root@ayhanarda:/# docker-compose –version
docker-compose version: 1.4.0

Eğer her şey doğru ise devam edebiliriz.

Docker-elk nın git repository sini çekelim.

root@ubuntu:/# git clone https://github.com/deviantony/docker-elk.git

Şimdi docker-elk dizinine gidip konteyner ı çekip ayağa kaldıralım.

root@ayhanarda:/# cd /docker-elk/
root@ayhanarda:/docker-elk# docker-compose up

Herşey bu kadar , şimdi biraz  beklemeliyiz. Muhtemelen 5 dk sonra aşağıdaki gibi satırlar gördüğünüzde işlem tamamlanmış demektir.

logstash_1 | INFO: [logstash-7f6fc37469c8-1-11622] started
kibana_1 | Starting Kibana
elasticsearch_1 | [2015-08-27 12:06:50,176][DEBUG][action.admin.cluster.health] [Proteus] observer: timeout notification from cluster service. timeout setting [5s], time since start [5s]
kibana_1 | {“name”:”Kibana”,”hostname”:”266bfe27abff”,”pid”:7,”level”:30,”msg”:”No existing kibana index found”,”time”:”2015-08-27T12:06:50.183Z”,”v”:0}
kibana_1 | {“name”:”Kibana”,”hostname”:”266bfe27abff”,”pid”:7,”level”:30,”msg”:”Listening on 0.0.0.0:5601″,”time”:”2015-08-27T12:06:50.364Z”,”v”:0}

Şimdi browserdan ipadresi:5601 adresine erişirsek bizi aşağıdaki Kibana arayüzü karşılayacak. Benim ip adresim 192.168.126.155 şeklinde idi.

http://192.168.126.155:5601/

elkstack1

 

Eğer cluster ı monitor etmek isterseniz aşağıdaki url ye gidebilirsiniz.

http://ipadresi:9200/_plugin/marvel/

marvelŞimdi tek yapılması gereken bu ip adresinin 5000 nolu portuna logstash forwarder ile log göndermek , güzelce işlenip grafiksel olarak Size sunuculacaktır.

Mesela ben bir sitenin access loglarını test için bir dosyaya kaydedip netcat ile sunucuya aşağıdaki komut ile bastım , kibana daki görüntüsü aşağıdaki gibi yansıdı , filtreler ile tam istediğiniz logları alabilir ve grafikler de oluşturabilirsiniz.

root@ayhanarda:/# nc localhost 5000 < /home/arda/look2linux.log

Şimdi tekrar kibana ekranına bakabilirsiniz, loglar gelmiş durumda.

elkstack2

Faydalı olması dileğimle.

Ayhan ARDA

Ubuntu 14.04 üzerine Docker Kurulumu

Bu yazıyı gelecek docker serimizin birinci adımı gibi düşünüyorum , Ubuntu üzerine docker kuracağız.

Elimizde yine sıfır bir ubuntu 14.04 olduğunu varsayıyorum , öncelikle paketleri güncelleyelim.

root@ubuntu:/home/ayhanarda# apt-get update

Şimdi docker.io yükleyelim.

root@ubuntu:/home/ayhanarda# apt-get -y install docker.io

Docker.io dosyasını klasöre bağlayalım ve path i düzeltelim.

root@ubuntu:/home/ayhanarda# ln -sf /usr/bin/docker.io /usr/local/bin/docker

root@ubuntu:/home/ayhanarda# sed -i '$acomplete -F _docker docker' /etc/bash_completion.d/docker.io

Şimdi restart sonrası tekrar otomatik olarak çalışmasını sağlayalım.

root@ubuntu:/home/ayhanarda# update-rc.d docker.io defaults

hepsi bu kadar , şimdi docker yazarak kurulduğunu görebilirsiniz.

root@ubuntu:/home/ayhanarda# docker
Usage: docker [OPTIONS] COMMAND [arg...]
 -H=[unix:///var/run/docker.sock]: tcp://host:port to bind/connect to or unix://path/to/socket to use
 
A self-sufficient runtime for linux containers.
 
Commands:
    attach    Attach to a running container
    build     Build an image from a Dockerfile
    commit    Create a new image from a container's changes
    cp        Copy files/folders from the containers filesystem to the host path
    diff      Inspect changes on a container's filesystem
    events    Get real time events from the server
    export    Stream the contents of a container as a tar archive
    history   Show the history of an image
    images    List images
    import    Create a new filesystem image from the contents of a tarball
    info      Display system-wide information
    inspect   Return low-level information on a container
    kill      Kill a running container
    load      Load an image from a tar archive
    login     Register or Login to the docker registry server
    logs      Fetch the logs of a container
    port      Lookup the public-facing port which is NAT-ed to PRIVATE_PORT
    pause     Pause all processes within a container
    ps        List containers
    pull      Pull an image or a repository from the docker registry server
    push      Push an image or a repository to the docker registry server
    restart   Restart a running container
    rm        Remove one or more containers
    rmi       Remove one or more images
    run       Run a command in a new container
    save      Save an image to a tar archive
    search    Search for an image in the docker index
    start     Start a stopped container
    stop      Stop a running container
    tag       Tag an image into a repository
    top       Lookup the running processes of a container
    unpause   Unpause a paused container
    version   Show the docker version information
    wait      Block until a container stops, then print its exit code

Kullanımını bir sonraki docker yazısına sakladım.

Ayhan ARDA