Ubuntu 16.04 Üzerinde Süpervizör Kurulumu ve Konfigürasyonu

Süpervizör, bir dizi UNIX işlemini, daha spesifik olarak bir proje veya müşteri ile ilgili işlemleri kontrol etmek için kullanılan bir istemci / sunucu sistemidir. Örneğin, web uygulamanızın gelişigüzel sayıda çalışan kuyruğunu oluşturmak ve izlemek için amir kullanabilirsiniz.

Bu sistemin bileşenleri:

  • süpervizör: Sistemin sunucu parçası.
  • supervisorctl: Sunucuyla etkileşim kurmak için kullanılan komut satırı arabirimi.
  • Web sunucusu: Supervisorctl ile karşılaştırıldığında basit bir web sunucusu ve temel işlevselliğe sahip bir web kullanıcı arayüzü .
  • XML-RPC Arabirimi: Web istemcisi tarafından kullanılan aynı HTTP sunucusu, denetim programlarını denetlemek için kullanılabilen bir XML-RPC Arabirimi sunar.

Bu derste, süpervizörün en güncel sürümünü kuracağız, programların nasıl oluşturulacağını ve yönetileceğini göstereceğiz ve programlarımızı supervisorctlyönetmek için bir web arayüzü yapılandıracağız.

Kurulum ve temel yapılandırma

easy_installPython'un kurulum araçlarının bir özelliği aracılığıyla süpervizör kuruyoruz .

İlk olarak, yerel paketler listenizi güncelleyin ve ardından python yükleyin setuptools.

sudo apt-get update && sudo apt-get install python-setuptools

Şimdi süpervizörü kurabiliriz.

sudo easy_install supervisor

Yükleme tamamlandığında, yapılandırma dosyamızı oluşturmalıyız. supervisorİçinde bir klasör oluşturun /etc.

sudo mkdir /etc/supervisor

Ve sonra aşağıdakileri yürütün.

echo_supervisord_conf >  /etc/supervisor/supervisord.conf

rootKullanıcı ile oturum açmadıysanız, bir Permission deniedhata alabilirsiniz (ile bile sudo). Bunun nedeni yönlendirme. Bunun üstesinden gelmek için root olarak giriş yapın.

sudo su

Sonra komutu tekrar çalıştırabilirsiniz.

echo_supervisord_conf > /etc/supervisor/supervisord.conf

Artık rootkullanıcıyı exitkomutla bırakabilirsiniz . echo_supervisord_confKomut bizim gözetmen kurulumu tarafından sağlandı.

Temel yapılandırma

/etc/supervisor/supervisord.confDosyayı açın ve içeriğini kontrol edin. Bu yapılandırma dosyasının INIsözdizimine uygun olduğunu ve bölümlere ayrıldığını (köşeli parantez içinde olduğu gibi temsil eder [section-name]) not edeceksiniz .

Süpervizör tarafından yönetilecek programlar eklemek için sadece uygun [program]bölümleri oluşturmanız gerekir . Ancak, her program eklemek (veya değiştirmek) gerektiğinde ana yapılandırma dosyasıyla uğraşmaktan kaçınmak için [include]bölümü kullanacağız . Bu bölümü bulun, uncomment ve ardından aşağıdaki gibi görünecek şekilde düzenleyin.

[include]
files=conf.d/*.conf

Şimdi eklemek istediğimiz her program .iniiçin /etc/supervisor/conf.d/dizinde bir dosya oluşturacağız . Bu klasörü oluşturalım.

sudo mkdir /etc/supervisor/conf.d

Denetim sunucusunu başlatma

Daha önce belirtildiği gibi, süpervizör bir sunucu ve ona bağlanan istemcilerden oluşur. Programları yönetebilmek ve kontrol edebilmek için sunucuyu başlatmamız gerekiyor. Bunun systemdiçin sunucunun sistem başlangıcında başlatılmasını sağlamak üzere yönetici sunucuyu kaydettireceğiz .

Bunu yapmak için, adlı bir dosya oluşturmak supervisord.serviceiçinde /etc/systemd/systemdizine.

sudo touch /etc/systemd/system/supervisord.service

Aşağıdaki içeriği dosyaya ekleyin.

[Unit]
Description=Supervisor daemon
Documentation=http://supervisord.org
After=network.target

[Service]
ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target
Alias=supervisord.service

Süpervizör servisini etkinleştirin.

sudo systemctl start supervisord.service

Hizmet dosyası /etc/systemd/systemdizinde bulunduğu sürece , sistem başlatıldığında otomatik olarak başlatılır.

Hizmetin durumunu kontrol edebilirsiniz.

systemctl status supervisord.service

Ayrıca günlükleri kontrol edebilirsiniz.

sudo journalctl -u supervisord.service

Program ekleme

Süpervizör tarafından kontrol edilen programlar [program]konfigürasyondaki farklı bölümler tarafından verilir . Yönetmek istediğimiz her program için, komut yürütülebilir yolunu, çevresel değişkenleri, kapatma durumunda nasıl gerçekleştirileceğini bildiren bağımsız bir yapılandırma dosyası oluşturacağız.

İlk olarak, zaman damgasını kaydeden basit bir komut dosyası oluşturalım. Adlı bir dosya oluşturun hello_supervisor.sh(dilediğiniz her yerde bu komut dosyasının tam yoluna başvuruyoruz).

touch hello_supervisor.sh

Şimdi, aşağıdaki içeriği içine koyun

#!/bin/bash
while true
do 
    # Echo current timestamp to stdout
    echo Hello Supervisor: `date`
    # Echo 'error!' to stderr
    echo An error ocurred at `date`! >&2
    sleep 1
done

Şimdi çalıştırılabilir yapın

chmod +x hello_supervisor.sh

Pratik anlamda bu senaryo neredeyse işe yaramaz. Ancak bunu amirinin gücünü göstermek için kullanabiliriz. Aşağıdakileri çalıştırarak ilgili yapılandırma dosyasını oluşturun.

sudo touch /etc/supervisor/conf.d/hello_supervisor.conf

Şimdi aşağıdaki içeriği bu dosyaya yerleştirin.

[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh
autostart=true
autorestart=true
stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log

Not: Kullanıcı adınızla değiştirdiğinizden emin olun USER.

Bu yapılandırmayı adım adım inceleyeceğiz.

[program:hello_supervisor]
command=/home/USER/hello_supervisor.sh

İlk olarak, yapılandırma hello_supervisor adında bir program tanımlayarak başlar . Ayrıca çalıştırılacak yürütülebilir dosyanın tam yolunu bildirir.

autostart=true

Bu satır, süpervizör başlatıldığında bu programın otomatik olarak başlatılması gerektiğini belirtir.

autorestart=true

Program herhangi bir nedenle kapanırsa, bu satır süpervizöre işlemi otomatik olarak yeniden başlatmasını bildirir.

stderr_logfile=/var/log/hello_supervisor.err.log
stdout_logfile=/var/log/hello_supervisor.out.log

Bu satırlar sırasıyla stderrve için günlük dosyası konumunu tanımlar stdout.

Programları yönetme

Artık süpervizörü kurup yapılandırdığımıza göre süreçlerimizi yönetebiliyoruz.

Yeni bir program ekledikten sonra, sunucuya yapılandırma dosyalarını yeniden okuma ve değişiklikleri uygulama konusunda bilgilendirmek için aşağıdaki iki komutu çalıştırmalıyız.

sudo supervisorctl reread
sudo supervisorctl update

Şimdi supervisorctlistemciyi çalıştırın .

sudo supervisorctl

Kayıtlı işlemlerin bir listesi ile karşılaşacaksınız. Durumu hello_supervisorolan bir işlem göreceksiniz RUNNING.

hello_supervisor                 RUNNING   pid 6853, uptime 0:22:30
supervisor>

Kullanılabilir helpkomutların bir listesini yazın.

supervisor> help

default commands (type help <topic>):
=====================================
add    exit      open  reload  restart   start   tail   
avail  fg        pid   remove  shutdown  status  update 
clear  maintail  quit  reread  signal    stop    version

Özetle, biz start, stopve restartilgili komuta bağımsız değişken olarak programın adını geçirerek programları.

supervisor> stop hello_supervisor 
hello_supervisor: stopped
supervisor> start hello_supervisor 
hello_supervisor: started
supervisor> restart hello_supervisor 
hello_supervisor: stopped
hello_supervisor: started
supervisor> 

tailKomut ile program çıktısına da bakabiliriz .

supervisor> tail hello_supervisor 
Hello Supervisor: Mon Sep 25 19:27:29 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:30 UTC 2017
Hello Supervisor: Mon Sep 25 19:27:31 UTC 2017

İçin stderrçıkış kullanabileceğiniz tailkuyu olarak.

supervisor> tail hello_supervisor stderr
An error ocurred at Mon Sep 25 19:31:12 UTC 2017!
An error ocurred at Mon Sep 25 19:31:13 UTC 2017!
An error ocurred at Mon Sep 25 19:31:14 UTC 2017!

statusKomutu çağırarak, kayıtlı tüm programların durumunu görüntüleyebilirsiniz.

İşiniz bittiğinde bırakabilirsiniz.

supervisor> quit

Web sunucusu istemcisi

Supervisord web sunucusuna erişime izin vermek için supervisord yapılandırma dosyasını açın ve [inet_http_server]bölümü bulun .

nano /etc/supervisor/supervisord.conf

Şimdi bu bölümün yapılandırmasını aşağıdakilerle güncelleyin.

[inet_http_server]
port=*:9001
username=your_username
password=your_password

Değiştir your_usernameve your_passwordsizin değişiklik ve yeniden başlatma supervisord hizmeti tasarrufu, istediğiniz kimlik bilgileriyle.

sudo systemctl restart supervisord.service

Güvenlik duvarınızdaki TCPbağlantı noktasına 9001erişime ve ardından http://{server-ip}:9001tarayıcınızdan erişime izin vermeyi unutmayın . Sorulduğunda, usernameve öğenizi sağlayın password. Artık süreçlerinizi web'den kontrol edebilirsiniz.

Sonuç

Süpervizörün en güncel sürümünü yükledik, sistemd ile sistem otomatik başlatma için nasıl yapılandırılacağını öğrendik ve temel kullanımını inceledik supervisorctl. Daha gelişmiş yapılandırma ve kullanım durumları için resmi gözetim belgelerine başvurabilirsiniz .



Leave a Comment

CentOS 7de Tavşan Kümesini Kümeleme

CentOS 7de Tavşan Kümesini Kümeleme

RabbitMQ, AMQP, STOMP ve diğer iletişim teknolojilerini destekleyen açık kaynaklı bir mesaj aracısıdır. Kurumsal uygulamalarda yaygın olarak kullanılan bir

Debianda NFS Paylaşımı Ayarla

Debianda NFS Paylaşımı Ayarla

NFS, bilgisayarların bilgisayar ağı üzerindeki dosyalara erişmesine izin veren ağ tabanlı bir dosya sistemidir. Bu kılavuz, klasörleri NF üzerinden nasıl açığa çıkarabileceğinizi açıklar

GitBucket Ubuntu 16.04 Kurulumu

GitBucket Ubuntu 16.04 Kurulumu

Bu kılavuz, Ubuntu 16.04 çalıştıran bir Vultr örneği için GitBucketin temel kurulumunu ve kurulumunu kapsar ve komutları şu şekilde yürüttüğünüzü varsayar:

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Bir Fedora 26 LAMP VPSye Directus 6.4 CMS Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Directus 6.4 CMS, geliştirici sağlayan güçlü ve esnek, ücretsiz ve açık kaynaklı Başsız İçerik Yönetim Sistemidir (CMS)

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Ubuntu 16.04 Üzerine Mattermost 5.2 Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Mattermost, Slack SAAS mesajlaşma servisine açık kaynaklı, kendi kendine barındırılan bir alternatiftir. Başka bir deyişle, Mattermost ile,

Linuxta TeamTalk Sunucusu Kurma

Linuxta TeamTalk Sunucusu Kurma

TeamTalk, kullanıcıların yüksek kaliteli sesli / görüntülü konuşmalara, metin sohbetine, dosya aktarımına ve ekranları paylaşmasına olanak tanıyan bir konferans sistemidir. Ben

Pagekit CMSyi CentOS 7ye Yükleme

Pagekit CMSyi CentOS 7ye Yükleme

Farklı Bir Sistem mi Kullanıyorsunuz? Pagekit PHP ile yazılmış açık kaynaklı bir CMSdir. Pagekit kaynak kodu GitHubda herkese açık olarak barındırılıyor. Bu kılavuz size

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Kök olmayan kullanıcılara giriş yapmak için SSH anahtarınızı kullanma

Vultr, yeni bir örnek oluşturduktan sonra SSH anahtarlarını önceden yüklemenizi sağlayan bir özellik sağlar. Bu, sunucu kök kullanıcısına erişmenizi sağlar, ancak

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Debian 9da Diaspora ile Sosyal Ağınızı Kurun

Farklı Bir Sistem mi Kullanıyorsunuz? Diaspora gizliliğe duyarlı, açık kaynaklı bir sosyal ağdır. Bu derste, bir Diaspora posının nasıl kurulacağını ve yapılandırılacağını öğreneceksiniz

Debian 9 Üzerinde Yakıt CMS Kurulumu

Debian 9 Üzerinde Yakıt CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Fuel CMS, CodeIgniter tabanlı bir içerik yönetim sistemidir. Kaynak kodu GitHubda barındırılmaktadır. Bu kılavuz size

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Arch Linux Üzerinde PostgreSQL 11.1 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların önüne # ve bir

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Ubuntu 16.10 Üzerinde Snipe-IT Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Snipe-IT, BT varlık yönetimi için ücretsiz ve açık kaynaklı bir web uygulamasıdır. Laravel 5.2 çerçevesi ve kullanımı üzerine yazılmıştır.

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

SSL / TLS ile vsFTPd Nasıl Güvenli Hale Getirilir

Çok Güvenli FTP arka plan programı, ya da sadece vsFTPd, özelleştirme yeteneği olan hafif bir yazılım parçasıdır. Bu derste bir müttefikimiz olacak

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Linuxta Ranger Terminal Dosya Yöneticisini Yükleme

Ranger, VI anahtar bağlamaları olan komut satırı tabanlı bir dosya yöneticisidir. Dizin hiyerarşisi manzaralı minimalist ve hoş bir curses arayüzü sağlar

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Ubuntu 18.04 LTS Kaynaktan Brotli Nasıl Yapılır

Farklı Bir Sistem mi Kullanıyorsunuz? Brotli, GZIPden daha iyi bir sıkıştırma oranına sahip yeni bir sıkıştırma yöntemidir. Kaynak kodu bu Githuda herkese açık olarak barındırılıyor

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

CentOS 7de Yalnızca SFTP Kullanıcı Hesaplarını Kurma

Belirli durumlarda, Sistem Yöneticisinin bir kullanıcı hesabı oluşturması ve yalnızca kendi dosyalarını sFTP yoluyla yönetmek için erişimini kısıtlaması gerekebilir, ancak b

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Ubuntu 16.04 LAMBA VPS Üzerine Omeka Classic 2.4 CMS Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? Omeka Classic 2.4 CMS, digita paylaşımı için ücretsiz ve açık kaynaklı bir dijital yayıncılık platformu ve İçerik Yönetim Sistemidir (CMS)

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Arch Linux Üzerinde Nginx 1.14 Kurulumu

Önkoşullar Güncel Arch Linux çalıştıran bir Vultr sunucusu (bu makaleye bakın.) Sudo erişimi. Kök olarak çalıştırılması gereken komutların başına # işareti gelir. th

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

Linuxta SSH ile Kök Girişini Devre Dışı Bırakma veya Kısıtlama

SSH üzerinden kök girişine izin vermek, teknoloji endüstrisinde genellikle zayıf bir güvenlik uygulaması olarak kabul edilir. Bunun yerine, hassas yönetim gerçekleştirebilirsiniz

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Ubuntu 16.04 Üzerine RabbitMQ Kurulumu

Farklı Bir Sistem mi Kullanıyorsunuz? RabbitMQ, Erlang programlama dilinde yazılmış, yaygın olarak kullanılan açık kaynaklı bir mesaj aracısıdır. Mesaj odaklı bir ara katman yazılımı olarak

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7de LibreNMS Kullanarak Cihazlarınızı İzleyin

CentOS 7 üzerinde LibreNMS kullanarak ağ cihazlarınızı etkili bir şekilde izleyin. Ağ izleme için gerekli adımları ve yapılandırmaları öğrenin.

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive Server Nasıl Kurulur?

Counter-Strike: Global Offensive sunucusu kurmak için gerekli adımlar. Gerekli araçlar ve yükleme süreci hakkında bilgi.

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

Ubuntu 16.04 LTS Üzerinde OpenNMS Kurulumu

OpenNMS, çok sayıda cihazı izlemek ve yönetmek için kullanılabilen bir açık kaynak ağ yönetim platformudur. Ubuntu 16.04 LTS üzerinde OpenNMS kurulumu için tüm adımları keşfedin.

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Ubuntu 16.04te LibreNMS Kullanarak Cihazlarınızı İzleyin

Farklı Bir Sistem mi Kullanıyorsunuz? LibreNMS tam özellikli bir açık kaynak ağ izleme sistemidir.

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?