Centos ve RHEL 7 Üzerinde Monit Kurulumu
Bazen basit araçlar, bekçi köpeği Monit tarafından kanıtlandığı gibi en kullanışlı olanıdır. Rolü, bir makinede verilen herhangi bir işlemin doğru şekilde yapılmasını ve yürütülmesini sağlamaktır. Örneğin, Apache’de bir hata meydana gelirse, Monit Apache işlemini yeniden başlatmaya yardımcı olacaktır. Kurulumu ve yapılandırması çok kolaydır ve özellikle yüzlerce mikro servisli çoklu servis mimarisi için kullanışlıdır.
Monit kullanıyorsanız, problemleri yüzeye çıkarmak ve çözümler uygulamak için yürüttüğü yeniden başlatmaları izlediğinizden emin olun (sadece yeniden başlatmak ve yok saymak yerine). Bunu, Monit’in günlük dosyalarını izleyerek ve her yeniden başlatmaya karşı uyarılmanızı sağlayarak yapabilirsiniz.
Monit, Linux işletim sistemi için, web tarayıcısını kullanarak sistem sürecini izlemenize yardımcı olan ve ayrıca gerektiğinde belirli bir işlemin bakımını veya onarımını otomatik olarak tekrar çevrimiçi hale getirecek şekilde yapmanıza yardımcı olan açık kaynaklı bir işlem izleme aracıdır.
Monit, zaman damgası değişiklikleri, sağlama toplamı değişiklikleri veya boyut değişiklikleri için programları, dosyaları, dizinleri ve cihazları yönetmek ve izlemek için de kullanılabilir; Çeşitli TCP / IP ağ kontrolleri, protokol kontrolleri yapmakla sınırlı değildir ve bu tür kontroller için SSL de kullanabilir.
Günlük dosyasına giriş yapar ve kişiselleştirilebilir mesajlarla kullanıcıyı da bilgilendirir.
Monit kullanmanın başlıca faydalarından bazıları şunlardır
Hafif bir pakette otomatik proses bakımı
CPU, RAM, disk, dosya boyutu ve daha fazlası için sınır dışı değerlere etki etme yeteneği
Çalışan hizmetleri izleme ve başlatma, öldürme veya yeniden başlatma yeteneği.
Etkinlik tetikleyicilerinde gönderilen otomatik e-posta uyarıları.
Durum izleme için web arayüzü
Ve bu eğitici yazımda Monit’in bir Linux sunucuya nasıl kurulacağını ve de yapılandırılmasını anlatacağım.
Eğer bir Devops yada Sistem Mühendisi iseneniz kesinlikle ve kesinlike Monit’i kullanınız.
Ön Hazırlık
Firewall
Firewall açık ise 2812 numaralı port üzerinde çalışan Monit’e web arayüzüneden erişim için izin verin.
firewall-cmd --permanent --add-port=2812/tcp
firewall-cmd --reload
Kurulum
Monit’in en son sürümünü indirmek için EPEL deposunu yapılandırın.
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Yum komutu ile Monit’i kurun
yum -y install monit
Çıktı
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 22 kB 00:00:00
* base: mirror.rackdc.com
* epel: mirror.netcologne.de
* extras: mirror.saglayici.com
* updates: mirror.saglayici.com
epel | 4.7 kB 00:00:00
(1/3): epel/x86_64/group_gz | 88 kB 00:00:00
(2/3): epel/x86_64/updateinfo | 983 kB 00:00:00
(3/3): epel/x86_64/primary_db | 6.7 MB 00:00:01
Resolving Dependencies
--> Running transaction check
---> Package monit.x86_64 0:5.25.1-1.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================================================================================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================================================================================================================================================================
Installing:
monit x86_64 5.25.1-1.el7 epel 318 k
Transaction Summary
==============================================================================================================================================================================================================================================================================
Install 1 Package
Total download size: 318 k
Installed size: 818 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/epel/packages/monit-5.25.1-1.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Public key for monit-5.25.1-1.el7.x86_64.rpm is not installed
monit-5.25.1-1.el7.x86_64.rpm | 318 kB 00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid : "Fedora EPEL (7) <epel@fedoraproject.org>"
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package : epel-release-7-11.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
Installing : monit-5.25.1-1.el7.x86_64 1/1
Verifying : monit-5.25.1-1.el7.x86_64 1/1
Installed:
monit.x86_64 0:5.25.1-1.el7
Complete!
Monit’in Başlatılması
monit
Çıktı
New Monit id: daf41b8fee021d2bcc8b8b2c8705227a
Stored in '/root/.monit.id'
Starting Monit 5.25.1 daemon with http interface at [localhost]:2812
Monit’in Durumunun Kotnrol Edilmesi
monit status
Çıktı
Monit 5.25.1 uptime: 0m
System 'centos.server'
status OK
monitoring status Monitored
monitoring mode active
on reboot start
load average [1.02] [0.34] [0.16]
cpu 0.0%us 0.0%sy 0.0%wa
memory usage 959.6 MB [24.9%]
swap usage 0 B [0.0%]
uptime 6d 18h 57m
boot time Fri, 05 Apr 2019 14:55:02
data collected Fri, 12 Apr 2019 09:52:23
Yükleme işlemi tamamlandıktan sonra, Monit servisini başlatmak ve başlangıçta çalıştırılmasını sağlamak için aşağıdaki komutları çalıştırabilirsiniz
systemctl start monitsystemctl enable monit
Servis Durum Kontrolü için
systemctl status monit
Monit’ten aşağıdaki komutu kullanarak uyarıları ve raporları e-mail adresinize alabilirsimniz.
set mailserver mail.example.com port 25set alert youremailaddress@example.com
Monit’in Yapılandırılması
/etc/monitrc Monit’in ana yapılandırma dosyasıdır. Monit konfigürasyon dosyasında ihtiyacımız olan birkaç değişiklik yapacağız.
nano /etc/monitrc
WEB Arayüzünün Etkinleştirilmesi
Monit global konfigürasyon dosyasında, aşağıdaki satıra ilerleyin
set httpd port 2812 and
use address localhost # only accept connection from localhost
allow localhost # allow localhost to connect to the server and
allow admin:monit # require user 'admin' with password 'monit'
Varsayılan olarak, Monit sadece “localhost” u dinler ve sadece “localhost” a cevap verir, bu nedenle Monit arayüzünüze herhangi bir yerden bağlanabilmek istiyorsanız, aşağıdaki satırları yorumlamanız gerekir.
set httpd port 2812 and
#use address localhost # only accept connection from localhost
#allow localhost # allow localhost to connect to the server and
allow admin:monit # require user 'admin' with password 'monit'
Kullanıcı adınızı ve şifrenizi güçlü bir şekilde değiştirdiğinizden emin olun
set httpd port 2812 and
#use address localhost # only accept connection from localhost
#allow localhost # allow localhost to connect to the server and
allow MonitAdmin:5PbTLadz # require user 'MonitAdmin' with password '5PbTLadz'
Artık Monit web arayüzünüzü sunucu IP si veya domain üzerinden ziyaret edebilirsiniz
http://IP_OR_DOMAIN:2812
Kurulum tamamlandı ve şimdi bir kaç izleme ve yönetme servisi yapalım.
Monit ile İzleme ve Yönetme Servisleri
Yapılandırma dosyalarını /etc/monit.d/ dizini altına yerleştirebilirsiniz.
SSH hizmeti için bir yapılandırma
nano /etc/monit.d/sshdmonitor
Aşağıdaki bilgileri kullanın
check process sshd with pidfile /var/run/sshd.pid
start program "/usr/bin/systemctl start sshd.service"
stop program "/usr/bin/systemctl stop sshd.service"
if failed port 22 protocol ssh then restart
Syslog için
nano /etc/monit.d/syslogmonitor
Aşağıdaki bilgileri kullanın
check process syslogd with pidfile /var/run/syslogd.pid
start program = "/usr/bin/systemctl start rsyslog.service"
stop program = "/usr/bin/systemctl stop rsyslog.service"
HTTP için yapılandırma servisiguration service for HTTP
nano /etc/monit.d/httpdmonitor
Aşağıdaki bilgileri kullanın
check process httpd with pidfile /var/run/httpd/httpd.pid
start program "/usr/bin/systemctl start httpd.service"
stop program "/usr/bin/systemctl stop httpd.service"
if failed port 80 protocol http then restart
Yapılandırıldıktan sonra, monit syntax’i test edin
monit -t
Çıktı
Control file syntax OK
Değişikliklerin etkili olabilmesi için yeniden yükleyin
monit reload
Monit Web arayüzüne erişip yapılandırdığımız yeni hizmetleri görebiliriz. Sonrasında bu panel üzerinden her türlü işlemi yapabilirsiniz.
Farklı Uygulamalar İçin
Kalın punto olan parçaları kendi değerlerinizle değiştirdiğinizden emin olun, her yazılım için “pid” dosyalarının yerleri farklı olabilir
Apache
check process apache with pidfile /run/httpd.pid
start program = "/etc/init.d/httpd start" with timeout 60 seconds
stop program = "/etc/init.d/httpd stop"
MySQL
check process mysqld with pidfile /var/run/mysqld/mysqld.pid
start program = "/etc/init.d/mysql start"
stop program = "/etc/init.d/mysql stop"
Nginx
check process nginx with pidfile /var/run/nginx.pid
start program = "/etc/init.d/nginx start"
stop program = "/etc/init.d/nginx stop"
Her değişiklik sonrası Syntax kontrol etmeyi unutmayın!
monit -tControl file syntax OK
Ve her yeni eklemden sonra servislerin yürürlüğe girmesi ve çalışmaya başlaması için Monit hizmetini yeniden başlatın
systemctl restart monitmonit start all
Monit okadar çok işlevseldir ki aklınıza gelebilicek bir çok işlem izleme işinde kullanabilirsiniz. Monit sayesinde bir Devops birimi yada Sistem birimi bir çok işi kolaylaştırabilir.
Daha fazla bilgi ve ayrıntı için Monit Resmi Sayfasını ziyaret edebilirsiniz.
Kerem ERDEM
Bilgi Teknolojileri Mühendisi