Centos ve RHEL 7 Üzerinde Monit Kurulumu

Kerem Erdem
Devops Türkiye☁️ 🐧 🐳 ☸️

--

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.

https://mmonit.com/monit/

Kerem ERDEM

Bilgi Teknolojileri Mühendisi

--

--