Ubuntu 18.04 Üzerinde Checkmk İle BT Altyapınızın Sağlığını İzleyin

Sistem yöneticisi olarak, altyapınızın ve hizmetlerinizin mevcut durumunu bilmek önemli bir adımdır. İdeal olan, kullanıcılarınızdan önce arızalı diskleri veya uygulamalarınızın çöküş sürelerini fark etmektir. Checkmk gibi izleme araçları, sistem yöneticilerinin bu sorunları algılamasına ve sunucularının sağlığını korumalarına yardımcı olabilir. Genellikle, izleme yazılımı sunucularınızın donanımını, çalışma süresini ve hizmet durumlarını izleyebilir ve bir şeyler ters gittiğinde size uyarı verebilir. Çok temel bir senaryoda, herhangi bir hizmetin kapanması durumunda bir izleme sistemi sizi uyaracaktır. Daha gelişmiş bir durumda ise bildirimler, artan bellek kullanımı veya anormal miktarda TCP bağlantısı gibi şüpheli işaretleri de kapsayacaktır.

Hem ücretsiz hem de ticari olarak birçok izleme çözümü bulunmaktadır. Çoğu durumda, bu araçların kurulumu, yapılandırılması ve yönetimi zor ve zaman alıcıdır. Ancak Checkmk , hem stabil, güçlü hem de kurulumu daha kolay bir izleme çözümüdür. Örneğin, Nagios (popüler ve açık kaynaklı bir erken uyarı hizmeti yaızlımı) veri toplama, izleme ve grafik ekleme eklentileri ile birleştiren bağımsız bir yazılım paketidir. Ancak Nagios’un eksikliklerinin çoğunu ele alan kapsamlı bir araç olan Checkmk web arayüzü ile birlikte gelmektedir. Kullanıcı dostu bir kontrol paneli, tam özellikli bir bildirim sistemi ve birçok Linux dağıtımı için kurulumu kolay izleme aracıları deposu sunar. Checkmk’in web arayüzü olmasaydı, farklı görevler için farklı görünümler kullanmamız gerekirdi ve kapsamlı yapılandırmalara başvurmadan tüm bu özellikleri yapılandırmak mümkün olamazdı.

Bu öğreticide Ubuntu 18.04 sunucusunda Checkmk kuracağız ve iki ayrı ana bilgisayarı izleyeceğiz. Ubuntu sunucusunun kendisini ve ayrı bir CentOS 7 sunucusunu izleyeceğiz. Ancak izleme yapılandırmamıza herhangi bir sayıda ek ana bilgisayar eklemek için aynı yaklaşımı kullanabileceğiz :+1:

Checkmk ile hangi platformlar, sistemler ya da sağlayıcılarda izleme yapabilirsiniz?

Ön gereksinimler

  • root ya da sudo yetkilerine sahip bir kullanıcı ile Ubuntu 18.04 sunucusu (DigitalOcean ve Vultr tavsiyemdir)
  • root ya da sudo yetkilerine sahip bir kullanıcı ile CentOS 7 sunucusu (DigitalOcean ve Vultr tavsiyemdir)

Adım 1 - Ubuntu’ya Checkmk Kurulumu

İzleme sitemizi kullanabilmek için öncelikle Checkmk’i Ubuntu sunucusuna kurmalıyız. Bu kurulum bize ihtiyacımız olan tüm araçları sunacaktır. Checkmk, yazılım paketini kurmak için kullanabileceğimiz resmi kullanıma hazır Ubuntu paket dosyaları sağlar.

Öncelikle, depo listelerinin en son sürümüne sahip olabilmemiz için paketler listesini güncelleyelim ve güncellemeleri yükleyelim:

sudo apt-get update && sudo apt-get upgrade -y

Sürümlere göz atmak için Checkmk kurulum paket listeleme sitesine gidebiliriz. Seçeneklerden Ubuntu 18.04 eçtikten sonra Download yazan butondan adresi kopyalayabilirsiniz.

Biz bu makaleyi hazırlarken en güncel sürüm: Checkmk 1.6.0p11 (stable)

Şimdi kurulum paketini sunucunuza indirin:

wget https://checkmk.com/support/1.6.0p11/check-mk-raw-1.6.0p11_0.bionic_amd64.deb

Ardından indirdiğiniz kurulum paketini yükleyin:

sudo apt install -y ./check-mk-raw-1.6.0p11_0.bionic_amd64.deb

:information_source: Bu komut, Checkmk paketini izleme arayüzüne web erişimi sağlamak için kullanılan Apache web sunucusu da dahil olmak üzere tüm gerekli bağımlılıklarla birlikte yükleyecektir.

Yükleme tamamlandıktan sonra, artık omd komutuna erişebiliriz:

sudo omd

Bu komut aşağıdaki çıktıyı verecektir:

Usage (called as root):

 omd help                               Show general help
 omd setversion VERSION                 Sets the default version of OMD which will be used by new sites
 omd version    [SITE]                  Show version of OMD
 omd versions                           List installed OMD versions
 omd sites                              Show list of sites
 omd create     SITE                    Create a new site (-u UID, -g GID)
 omd init       SITE                    Populate site directory with default files and enable the site
 omd rm         SITE                    Remove a site (and its data)
 omd disable    SITE                    Disable a site (stop it, unmount tmpfs, remove Apache hook)
 omd enable     SITE                    Enable a site (reenable a formerly disabled site)
 omd mv         SITE NEWNAME            Rename a site
 omd cp         SITE NEWNAME            Make a copy of a site
 omd update     SITE                    Update site to other version of OMD
 omd start      [SITE] [SERVICE]        Start services of one or all sites
 omd stop       [SITE] [SERVICE]        Stop services of site(s)
 omd restart    [SITE] [SERVICE]        Restart services of site(s)
 omd reload     [SITE] [SERVICE]        Reload services of site(s)
 omd status     [SITE] [SERVICE]        Show status of services of site(s)
 omd config     SITE ...                Show and set site configuration parameters
 omd diff       SITE ([RELBASE])        Shows differences compared to the original version files
 omd su         SITE                    Run a shell as a site-user
 omd umount     [SITE]                  Umount ramdisk volumes of site(s)
 omd backup     SITE [SITE] [-|ARCHIVE_PATH] Create a backup tarball of a site, writing it to a file or stdout
 omd restore    [SITE] [-|ARCHIVE_PATH] Restores the backup of a site to an existing site or creates a new site
 omd cleanup                            Uninstall all Check_MK versions that are not used by any site.

General Options:
 -V <version>                    set specific version, useful in combination with update/create
 omd COMMAND -h, --help          show available options of COMMAND

omd komutu ile sunucunuzda Checkmk yönetebileceksiniz. Bu komutla tüm izleme hizmetlerini bir kerede başlatabilir, durdurabilir ve Checkmk örneğimizi oluşturabiliriz. Ancak öncelikle, varsayılan web bağlantı noktalarına dışarıdan erişime izin vermek için güvenlik duvarı ayarlarımızı güncellemeliyiz.

Adım 2 - Checkmk Güvenlik Duvarı Ayarlarını Yapma

Checkmk ile çalışabilmemiz için, güvenlik duvarı yapılandırmasında web sunucusuna dışarıdan erişime izin vermek gerekir.

Yükleme sırasında Apache zaten güvenlik duvarı üzerinden Apache’ye erişimi etkinleştirmek veya devre dışı bırakmak için kolay bir yol sağlamak üzere UFW’ye profili ile kaydolacaktır.

sudo apt-get install ufw -y
ufw allow OpenSSH
sudo ufw allow Apache

Şimdi değişiklikleri doğrulayın ve aktif edin:

sudo ufw status
ufw --force enable

Apache’nin izin verilen hizmetler arasında listelendiğini göreceksiniz:

Status: active

To                         Action      From
--                         ------      ----
Apache                     ALLOW       Anywhere                  
OpenSSH                    ALLOW       Anywhere                  
Apache (v6)                ALLOW       Anywhere (v6)             
OpenSSH (v6)               ALLOW       Anywhere (v6) 

Bu işlem, Checkmk web arayüzüne erişmemizi sağlayacaktır.

Bir sonraki adımda, ilk Checkmk izleme örneğimizi oluşturacağız.

Adım 3 - Checkmk İzleme Örneği Oluşturma

Checkmk, bir sunucudaki birden fazla Checkmk kopyasını izole etmek için örnekler kavramını veya tek tek kurulumları kullanır. Çoğu durumda, Checkmk’in yalnızca bir kopyası yeterlidir ve bu kılavuzda biz sistemimizi bu şekilde yapılandıracağız.

Öncelikle yeni örneğimize bir isim vermeliyiz ve biz sistemtakibi değerini bu anlatım boyunca kullanacağız. Örneği oluşturmak için şu komutu çalıştırın:

sudo omd create sistemtakibi

Burada omd komutu otomatik olarak bizim için her şeyi ayarlayacaktır. Komut çıktısı ise şu şekilde olacaktır:

Adding /opt/omd/sites/sistemtakibi/tmp to /etc/fstab.
Creating temporary filesystem /omd/sites/sistemtakibi/tmp...OK
Restarting Apache...OK
Created new site sistemtakibi with version 1.6.0p11.cre.

  The site can be started with omd start sistemtakibi.
  The default web UI is available at http://sistemtakibi/sistemtakibi/

  The admin user for the web applications is cmkadmin with password: gDJVhFXF
  (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.
)
  Please do a su - sistemtakibi for administration of this site.

Bu çıktıda, sistem sağlığı izleme arayüzüne erişmek için URL adresi, varsayılan kullanıcı adı ve şifre belirtilmiştir. Örneğimizi başlatmak için şu komutu çalıştırın:

sudo omd start sistemtakibi

Şimdi gerekli tüm araçlar, hizmetler başlatılacak ve işlemlerin sonunda, tüm hizmetlerimizin başarıyla başlatıldığını doğrulayan bir çıktı göreceğiz:

Starting mkeventd...OK
Starting rrdcached...OK
Starting npcd...OK
Starting nagios...OK
Starting apache...OK
Initializing Crontab...OK

Checkmk örneğine erişmek için web tarayıcısında etki alan adınız ya da sunucu IP adrresinizle birlikte /sistemtakibi/ açın. Bir parola girmeniz istenecektir. Bir önceki çıktıda bulunan varsayılan kimlik bilgilerini kullanın. Bu varsayılan kimlik bilgilerini daha sonra değiştireceğiz.

Checkmk ekranı, tüm hizmetlerimizi ve sunucu durumlarımızı gösteren bir gösterge tablosuyla açılır ve Dünya’nın çekirdek yapısına benzeyen pratik grafikler kullanır. Kurulumdan hemen sonra giriş yapınca bu alanlar boştur, ancak işlemlerimize devam ederek kısa süre içinde hizmetlerimiz ve sistemlerimiz için durumları bu alanlarda göstermesini sağlayacağız.

Bir sonraki adımda, bu arayüzü kullanarak sitenin güvenliğini sağlamak için varsayılan yönetici kullanıcısını ve şifresini değiştireceğiz.

Adım 4 - Yönetici Parolanızı Değiştirme

Yükleme sırasında Checkmk cmkadmin yönetici kullanıcısı için rastgele bir şifre oluşturur. Bu parola kurulumdan sonra değiştirilmeye yöneliktir ve bu nedenle genellikle kısa ve çokta güvenli değildir. Bunu web arayüzü üzerinden değiştirebiliriz.

İlk olarak, soldaki WATO menüsünden Kullanıcılar sayfasını açın. Liste, şu anda Checkmk sitesine erişimi olan tüm kullanıcıları gösterecektir. Yeni bir kurulumda sadece iki kullanıcıyı automation ve cmkadmin listeleyecektir. Birincisi, otomatik araçlarla kullanılmak üzere tasarlanmıştır. İkincisi, siteye giriş yaptığımız kullanıcıdır.

cmkadmin kullanıcısı yönetici olduğundan kendisini silemez. Bu nedenle New user butonu ile yeni bir kullanıcı oluşturmalıyız. Bu işlemde bilgilerinizi girin ve ekran görüntlerinde olduğu gibi seçenekleri işaretleyin. Kullanıcıyı oluşturduktan sonra ise chkmk yönetici kullanıcısından çıkış yapın ve oluşturduğunuz yeni kullanıcı ile oturum açın daha sonra tekrar kullanıcı listesine gidin ve chkadmin kullanıcını seçip Bulk delete > Onaylayın ve işlemleri sunucunuzda uygulayın.

Checkmk kurulumu artık kullanıma hazırdır. Bir sonraki adımda, izleme sistemimize ilk ana bilgisayarımızı ekleyeceğiz.

Adım 5 - İlk Sunucuyu İzlemeyi Yapılandırma

Artık ilk sunucuyu takip etmeye hazırız. Bunun için önce Ubuntu sunucusuna check-mk-agent kuracağız. Ardından, xinetd kullanarak izleme verilerine erişimi kısıtlayacağız.

Checkmk ile kurulan bileşenler izleme bilgilerini almak, depolamak ve sunmaktan sorumludur. Bilginin kendisini sağlamazlar.

Gerçek verileri toplamak için Checkmk aracısını kullanacağız. Süreç için özel olarak tasarlanan Checkmk aracı, tüm önemli sistem bileşenlerini bir kerede izleme ve bu bilgileri Checkmk örneğine geri bildirme yeteneğine sahiptir.

Checkmk Aracısını Yükleyin

ubuntusunucusutakip edeceğimiz ana bilgisayar yani Checkmk örneğinin kendisini kurduğumuz sunucu.

Soldaki WATO menüsünden Monitoring Agents sayfasını açın. İlk bölümün altında en popüler paketlerle mevcut ajan indirmelerini göreceksiniz.

Paketler, Ubuntu dahil Debian tabanlı tüm dağıtımlar için uygundur. Bu paketin indirme bağlantısını web tarayıcısından kopyalayın ve paketi indirmek için bu adresi kullanın.

wget http://ubuntusunucuipadresiniz/sistemtakibi/check_mk/agents/check-mk-agent_1.6.0p11-1_all.deb

İndirdikten sonra paketi yükleyin:

sudo apt-get install -y ./check-mk-agent_1.6.0p11-1_all.deb

Şimdi aracının başarıyla yüklendiğini doğrulayın:

check_mk_agent

Komut, anlamsız görünen ancak sistem hakkındaki tüm önemli bilgileri tek bir yerde birleştiren çok uzun bir çıktı verecektir. Bir kısmını paylaşıyorum.

<<<df>>>
tmpfs          tmpfs      199180     684    198496       1% /run
/dev/sda1      ext4     19556568 2248936  16464084      13% /
tmpfs          tmpfs      995884       0    995884       0% /dev/shm
tmpfs          tmpfs        5120       0      5120       0% /run/lock
tmpfs          tmpfs      995884       0    995884       0% /sys/fs/cgroup
/dev/sda15     vfat        61487    1307     60181       3% /boot/efi
tmpfs          tmpfs      199176       0    199176       0% /run/user/0
tmpfs          tmpfs      995884    5844    990040       1% /opt/omd/sites/sistemtakibi/tmp
<<<df>>>
[df_inodes_start]
tmpfs          tmpfs  248971   612  248359    1% /run
/dev/sda1      ext4  1250928 74192 1176736    6% /
tmpfs          tmpfs  248971     1  248970    1% /dev/shm
tmpfs          tmpfs  248971     4  248967    1% /run/lock
tmpfs          tmpfs  248971    18  248953    1% /sys/fs/cgroup
/dev/sda15     vfat        0     0       0     - /boot/efi
tmpfs          tmpfs  248971    10  248961    1% /run/user/0
tmpfs          tmpfs  248971  1553  247418    1% /opt/omd/sites/sistemtakibi/tmp
[df_inodes_end]
<<<systemd_units>>>
[list-unit-files]
UNIT FILE                              STATE          
proc-sys-fs-binfmt_misc.automount      static         
-.mount                                generated      
boot-efi.mount                         generated      
dev-hugepages.mount                    static         
dev-mqueue.mount                       static         
proc-sys-fs-binfmt_misc.mount          static         
sys-fs-fuse-connections.mount          static         
sys-kernel-config.mount                static         
sys-kernel-debug.mount                 static         
acpid.path                             enabled        
systemd-ask-password-console.path      static         
systemd-ask-password-plymouth.path     static         
systemd-ask-password-wall.path         static         
session-1.scope                        transient      
session-3.scope                        transient      
accounts-daemon.service                enabled        
acpid.service                          disabled       
apache-htcacheclean.service            disabled       
apache-htcacheclean@.service           disabled       
apache2.service                        enabled        
apache2@.service                       disabled       
apparmor.service                       enabled        
apt-daily-upgrade.service              static         
apt-daily.service                      static         
atd.service                            enabled        
autovt@.service                        enabled        
blk-availability.service               enabled        
bootlogd.service                       masked         
bootlogs.service                       masked         
bootmisc.service                       masked         
check-mk-raw-1.6.0p11.service          generated      
check_mk@.service                      static         
checkfs.service                        masked         
checkroot-bootclean.service            masked         
checkroot.service                      masked         
cloud-config.service                   enabled        
cloud-final.service                    enabled        
cloud-init-local.service               enabled        
cloud-init.service                     enabled        
console-getty.service                  disabled       
console-setup.service                  enabled        
container-getty@.service               static         
cron.service                           enabled        
cryptdisks-early.service               masked         
cryptdisks.service                     masked         
dbus-org.freedesktop.hostname1.service static         
dbus-org.freedesktop.locale1.service   static         
dbus-org.freedesktop.login1.service    static         
dbus-org.freedesktop.resolve1.service  enabled        
dbus-org.freedesktop.timedate1.service static         
dbus.service                           static         
debug-shell.service                    disabled       
dm-event.service                       static         
emergency.service                      static         
friendly-recovery.service              static         
fstrim.service                         static         
fuse.service                           masked         
getty-static.service                   static         
getty@.service                         enabled        
grub-common.service                    generated      
halt.service                           masked         
hc-net-ifup@.service                   static         
hc-net-scan.service                    enabled        
hostname.service                       masked         
hwclock.service                        masked         
ifup@.service                          static         
inetd.service                          generated      
initrd-cleanup.service                 static         
initrd-parse-etc.service               static         
initrd-switch-root.service             static         
initrd-udevadm-cleanup-db.service      static         
irqbalance.service                     enabled        
keyboard-setup.service                 enabled        
killprocs.service                      masked         
kmod-static-nodes.service              static         
kmod.service                           static         
lvm2-lvmetad.service                   static         
lvm2-lvmpolld.service                  static         
lvm2-monitor.service                   enabled        
lvm2-pvscan@.service                   static         
lvm2.service                           masked         
mdadm-grow-continue@.service           static         
mdadm-last-resort@.service             static         
mdadm-shutdown.service                 disabled       
mdadm-waitidle.service                 masked         
mdadm.service                          masked         
mdmon@.service                         static         
mdmonitor.service                      static         
module-init-tools.service              static         
motd-news.service                      static         
motd.service                           masked         
mountall-bootclean.service             masked         
mountall.service                       masked         
mountdevsubfs.service                  masked         
mountkernfs.service                    masked         
mountnfs-bootclean.service             masked         
mountnfs.service                       masked         
networkd-dispatcher.service            enabled        
networking.service                     enabled        
omd-1.6.0p11.cre.service               generated      
omd.service                            enabled        
ondemand.service                       enabled        
phpsessionclean.service                static         
plymouth-halt.service                  static         
plymouth-kexec.service                 static         
plymouth-log.service                   static         
plymouth-poweroff.service              static         
plymouth-quit-wait.service             static         
plymouth-quit.service                  static         
plymouth-read-write.service            static         
plymouth-reboot.service                static         
plymouth-start.service                 static         
plymouth-switch-root.service           static         
plymouth.service                       static         
pollinate.service                      enabled        
portmap.service                        enabled        
procps.service                         static         
pyro-nsd.service                       generated      
qemu-guest-agent.service               generated      
quotaon.service                        static         
rc-local.service                       static         
rc.local.service                       static         
rc.service                             masked         
rcS.service                            masked         
reboot.service                         masked         
rescue.service                         static         
rmnologin.service                      masked         
rpcbind.service                        enabled        
rsync.service                          enabled        
rsyslog.service                        enabled        
sendsigs.service                       masked         
serial-getty@.service                  indirect       
setvtrgb.service                       enabled        
single.service                         masked         
ssh.service                            enabled        
ssh@.service                           static         
sshd.service                           enabled        
stop-bootlogd-single.service           masked         
stop-bootlogd.service                  masked         
sudo.service                           masked         
syslog.service                         enabled        
system-update-cleanup.service          static         
systemd-ask-password-console.service   static         
systemd-ask-password-plymouth.service  static         
systemd-ask-password-wall.service      static         
systemd-backlight@.service             static         
systemd-binfmt.service                 static         
systemd-exit.service                   static         
systemd-fsck-root.service              enabled-runtime
systemd-fsck@.service                  static         
systemd-fsckd.service                  static         
systemd-halt.service                   static         
systemd-hibernate-resume@.service      static         
systemd-hibernate.service              static         
systemd-hostnamed.service              static         
systemd-hwdb-update.service            static         
systemd-hybrid-sleep.service           static         
systemd-initctl.service                static         
systemd-journal-flush.service          static         
systemd-journald.service               static         
systemd-kexec.service                  static         
systemd-localed.service                static         
systemd-logind.service                 static         
systemd-machine-id-commit.service      static         
systemd-modules-load.service           static         
systemd-networkd-wait-online.service   disabled       
systemd-networkd.service               disabled       
systemd-poweroff.service               static         
systemd-quotacheck.service             static         
systemd-random-seed.service            static         
systemd-reboot.service                 static         
systemd-remount-fs.service             static         
systemd-resolved.service               enabled        
systemd-rfkill.service                 static         
systemd-suspend-then-hibernate.service static         
systemd-suspend.service                static         
systemd-sysctl.service                 static         
systemd-timedated.service              static         
systemd-timesyncd.service              enabled        
systemd-tmpfiles-clean.service         static         
systemd-tmpfiles-setup-dev.service     static         
systemd-tmpfiles-setup.service         static         
systemd-udev-settle.service            static         
systemd-udev-trigger.service           static         
systemd-udevd.service                  static         
systemd-update-utmp-runlevel.service   static         
systemd-update-utmp.service            static         
systemd-user-sessions.service          static         
systemd-volatile-root.service          static         
udev.service                           static         
ufw.service                            enabled        
umountfs.service                       masked         
umountnfs.service                      masked         
umountroot.service                     masked         
unattended-upgrades.service            enabled        
urandom.service                        static         
ureadahead-stop.service                static         
ureadahead.service                     enabled        
user@.service                          static         
uuidd.service                          indirect       
x11-common.service                     masked         
xinetd.service                         generated      
machine.slice                          static         
system.slice                           static         
user-0.slice                           transient      
user.slice                             static         
acpid.socket                           enabled        
check_mk.socket                        disabled       
dbus.socket                            static         
dm-event.socket                        enabled        
lvm2-lvmetad.socket                    enabled        
lvm2-lvmpolld.socket                   enabled        
rpcbind.socket                         enabled        
ssh.socket                             disabled       
syslog.socket                          static         
systemd-fsckd.socket                   static         
systemd-initctl.socket                 static         
systemd-journald-audit.socket          static         
systemd-journald-dev-log.socket        static         
systemd-journald.socket                static         
systemd-networkd.socket                disabled       
systemd-rfkill.socket                  static         
systemd-udevd-control.socket           static         
systemd-udevd-kernel.socket            static         
uuidd.socket                           enabled        
basic.target                           static         
bluetooth.target                       static         
cloud-config.target                    static         
cloud-init.target                      enabled-runtime
cryptsetup-pre.target                  static         
cryptsetup.target                      static         
ctrl-alt-del.target                    disabled       
default.target                         static         
emergency.target                       static         
exit.target                            disabled       
final.target                           static         
friendly-recovery.target               static         
getty-pre.target                       static         
getty.target                           static         
graphical.target                       static         
halt.target                            disabled       
hibernate.target                       static         
hybrid-sleep.target                    static         
initrd-fs.target                       static         
initrd-root-device.target              static         
initrd-root-fs.target                  static         
initrd-switch-root.target              static         
initrd.target                          static         
kexec.target                           disabled       
local-fs-pre.target                    static         
local-fs.target                        static         
multi-user.target                      static         
network-online.target                  static         
network-pre.target                     static         
network.target                         static         
nss-lookup.target                      static         
nss-user-lookup.target                 static         
paths.target                           static         
poweroff.target                        disabled       
printer.target                         static         
reboot.target                          disabled       
remote-cryptsetup.target               disabled       
remote-fs-pre.target                   static         
remote-fs.target                       enabled        
rescue.target                          static         
rpcbind.target                         static         
runlevel0.target                       disabled       
runlevel1.target                       static         
runlevel2.target                       static         
runlevel3.target                       static         
runlevel4.target                       static         
runlevel5.target                       static         
runlevel6.target                       disabled       
shutdown.target                        static         
sigpwr.target                          static         
sleep.target                           static         
slices.target                          static         
smartcard.target                       static         
sockets.target                         static         
sound.target                           static         
suspend-then-hibernate.target          static         
suspend.target                         static         
swap.target                            static         
sysinit.target                         static         
system-update.target                   static         
time-sync.target                       static         
timers.target                          static         
umount.target                          static         
apt-daily-upgrade.timer                enabled        
apt-daily.timer                        enabled        
fstrim.timer                           enabled        
mdadm-last-resort@.timer               static         
motd-news.timer                        enabled        
phpsessionclean.timer                  enabled        
systemd-tmpfiles-clean.timer           static         
ureadahead-stop.timer                  static   
...

Checkmk tarafından izlenen ana bilgisayarlardan durum verileri toplamak için kullanılan bu komuttan elde edilen çıktıdır. Şimdi xinetd ile izleme verilerine erişimi kısıtlayacağız .

Xinetd Kullanarak İzleme Verilerine Erişimi Kısıtlama

Varsayılan olarak, gelen veriler, check_mk_agent ile erişildikten sonra belirli bir ağ bağlantı noktasındaki verileri çıkaran bir mekanizma olan xinetd kullanılarak sunulur. Bu, güvenlik duvarı yapılandırmamız izin vermediği sürece, check_mk_agent telnet kullanarak 6556 (Checkmk için varsayılan bağlantı noktası) bağlantı noktasına internetteki herhangi bir bilgisayardan erişebileceğimiz anlamına gelir .

İnternetteki herhangi bir kişiye sunucular hakkında hayati bilgiler yayınlamak iyi bir güvenlik politikası değildir :smiley: Yalnızca Checkmk çalıştıran ve denetimimiz altındaki ana bilgisayarların bu verilere erişmesine izin vermeliyiz, böylece yalnızca izleme sistemimiz bu verileri toplayabilir.

Aracı verilerine erişimi kısıtlamak için /etc/xinetd.d/check_mk adresindeki yapılandırma dosyasını düzenlemeniz gerekir. Yapılandırma dosyasını favori düzenleyicinizde açın. Nano’yu kullanmak için şunu yazın:

sudo nano /etc/xinetd.d/check_mk

Şu bölümü bulun:

# configure the IP address(es) of your Nagios server here:
#only_from      = 127.0.0.1 10.0.20.1 10.0.20.2

Şöyle görünecektir:

Bu only_from ayarı, belirli IP adreslerine erişimi kısıtlamaktan sorumludur. Şimdi Checkmk’in çalıştığı sunucuyu izlemeye çalıştığımız için, yalnızca localhost bağlanmasına izin vermek uygun olacaktır. Şu şekilde güncelleyin:

# configure the IP address(es) of your Nagios server here:
only_from      = 127.0.0.1

Şöyle görünmelidir:

Dosyayı kaydedip çıkın.

Değişikliklerin gerçekleşmesi için hizmetin yeniden başlatılması gerekir.

sudo systemctl restart xinetd

Artık izleyicimiz çalışıyor ve sadece yerel bağlantıları kabul etmekle kısıtlanıyor. Checkmk kullanarak bu ana bilgisayar için izlemeyi yapılandırmaya devam edebiliriz.

Checkmk Web Arayüzünde İzlenecek Ana Bilgisayarı Yapılandırma

İlk olarak, izlenecek yeni bir ana bilgisayar eklemek için soldaki WATO menüsündeki Hosts menüsüne gitmemiz gerekir . Buradan New host tıklayın. Ve aşağıdaki gibi devam edin:

Ana bilgisayarımızı izlenecek şekilde yapılandırdığımıza göre şimdi paneli biraz keşfedelim, sonrasında ise izleme örneğimize ikinci bir ana bilgisayar (CentOS 7) ekleyelim.

Adım 6 - İkinci bir CentOS Ana Bilgisayarını İzlemeyi Yapılandırma

Birden fazla ana bilgisayarınız olduğunda tek bir yerden hepsini izlemek gerçekten yararlı olacaktır. Şimdi bu sefer Checkmk örneğimize CentOS 7 çalıştıran ikinci bir sunucu ekleyeceğiz.

Ubuntu sunucumuzda olduğu gibi, CentOS’ta izleme verilerini toplamak için Checkmk aracısının yüklenmesi gerekir. Ancak bu sefer, web arayüzündeki araçlar sayfasından bir rpm pakete ihtiyacımız olacak.

Ancak, öncelikle varsayılan olarak CentOS kurulumunda bulunmayan xinetd paketini yüklememiz gerekiyor.

CentOS sunucunuza önce xinetd kurun :

sudo yum install -y xinetd

Şimdi CentOS sunucumuz için gerekli izleme aracısı paketini indirip kurabiliriz:

sudo yum install -y http://ubuntusunucuipadresiniz/sistemtakibi/check_mk/agents/check-mk-agent-1.6.0p11-1.noarch.rpm

Daha önce olduğu gibi aracının düzgün çalıştığını doğrulayalım:

sudo check_mk_agent

Çıktı, Ubuntu sunucusundaki çıktıya benzer olacaktır. Şimdi izleyiciye erişimi kısıtlayacağız.

Checkmk Erişimi Kısıtlama

Bu sefer yerel bir ana bilgisayarı izlemeyeceğiz, bu nedenle xinetd yani Checkmk’in kurulu olduğu Ubuntu sunucusundan gelen bağlantıların veri toplamasına izin vermeliyiz. Buna izin vermek için önce yapılandırma dosyanızı açın:

sudo yum update
sudo yum install -y nano
sudo nano /etc/xinetd.d/check_mk

Şu alanı bulun:

# configure the IP address(es) of your Nagios server here:
#only_from      = 127.0.0.1 10.0.20.1 10.0.20.2

Şu şekilde değiştirin:

# configure the IP address(es) of your Nagios server here:
only_from      = ubuntusunucuipadresiniz

Kaydedip çıkın ve hizmeti yeniden başlatın:

sudo systemctl restart xinetd

Daha sonra ise aynı yukarıdaki adımları uygulayarak CentOS sunucunuzu sisteme tanımlayabilirsiniz.

Artık Checkmk ile bir Ubuntu sunucusunu ve CentOS sunucusunu izliyorsunuz. Daha fazla ana bilgisayarı izlemek aynı yöntemleri takip ederek mümkündür. Aslında Checkmk için, sunucu performansı dışında hiçbir üst sınır yoktur. Bu yüzlerce ana bilgisayarı izleyebilirsiniz anlamına gelir :wink:

Sonuç

Bu kılavuzda iki farklı Linux dağıtımına sahip iki sunucu kurduk: Ubuntu ve CentOS. Daha sonra Checkmk’i her iki sunucuyu izlemek için kurduk ve yapılandırdık ve Checkmk’in güçlü web arayüzünü inceledik.

Checkmk, tüm zor izleme yapılandırmalarını, seçenek ve özelliklerle dolu, kullanımı kolay bir web arayüzünde bir araya getiren eksiksiz ve çok yönlü bir izleme sistemidir.

Bu araçlarla birden fazla ana bilgisayarı izlemek mümkündür. Olası sorunlar için e-posta, SMS ya da push bildirimleri, daha fazla hizmet için ek kontroller yapılandırabilir, erişilebilirliği ve performansı izleyebilirsiniz.

Checkmk hakkında daha fazla bilgi edinmek için resmi belgelerini ziyaret edebilirsiniz.

1 Beğeni

Bir saate bi doküman bu kadar mı güzel yazılır hocam elinize sağlık. Muhabet arasında ben bunu yapayım dediniz 1 saate çıkardınız. :slight_smile:

2 Beğeni

Hocam sistem mükemmel çünkü ve herkes faydalansın istedim :+1:

@muhyal Elinize sağlık, hali hazırda 100+ sunucu için nagios kullanıyorum, ayrıca görseli kötü oldugu için graphana kurarak oradan izleme yapıyorum.

Nagios kullanan biri olarak :slight_smile: Bu ürün daha kolay bir kullanıma sahip.
Merak ettiğim nagiosta sistem şiştikçe bir takım db sorunları çıkmakta, bunda da karşımıza böyle bir durum gelebilir mi ?
Siz bunu maksimum kaç host için kullandınız ve checkmk sunucusunun cpu/ram kapasitesi neydi.
Birde keşke bir tane windows host ekleseymişsiniz :slight_smile:

Zabbix ürünü yerine checkmk tercih etmenizin bir nedeni varmı?

1 Beğeni

Hocam Windows server ben eklemedim çok uzuyordu video ama aynı yöntem geçerli çok stabil sadece Agents kısmından Windows için olanı kurmalısınız. Bu arada Checkmk Nagios kullanıyor zaten. Ama şişme yapmaz. 1 CPU / 1 RAM test sunucusuna kurdum :slight_smile: Checkmk çok hızlı gelişiyor ve Zabbix’e göre daha fazla araç ve ajan sunuyor.

Bir arkadaşımız (Emre) Windows üzerine kurup ekran görüntüsünü almıştı:

Cevabınız için çok teşekkürler @muhyal
2 soru daha sormak istiyorum
1- windowsa agent yükledikten sonra bu dataların sadece bizim kurduğumuz check_mk sunucusu tarafından izlendiğini nasıl garanti edebiliriz, yani dışarıdan gelen bir kişi kendi bilgisayarına check_mk kursa ve bizim agent kurulu sunucunun ip adresini girse, oda tüm bilgileri görmüş olmaz mı ?
“Xinetd Kullanarak İzleme Verilerine Erişimi Kısıtlama” başlığı altında yapılan yapılandırma , tüm agentlarımı kapsıyor ?

2- ubuntu üzerine agent yüklemek isterken aşağıdaki hatayı aldım, nedeni ne olabilir.
rpm dosya yolunda bir sorun yok, orada o dosya var.

root@ubuntu:~# sudo apt-get install -y http://192.168.254.185/itresearch/check_mk/agents/check-mk-agent-1.6.0p11-1.noarch.rpm
Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Unable to locate package http://192.168.254.185/itresearch/check_mk/agents
E: Couldn’t find any package by glob ‘http://192.168.254.185/itresearch/check_mk/agents
E: Couldn’t find any package by regex ‘http://192.168.254.185/itresearch/check_mk/agents

Checkmk, Windows Server üzerinde belirli IP adreslerine yönelik kısıtlama için,

\CheckMK\Agent\check_mk.user.yml dosyasını açın ve only_from: kısmını düzenleyin:

global:
  only_from: 127.0.0.1/32

Diğer durumlarda Checkmk yapılandırmalarını çıktı almak için:

.\check_mk_agent.exe showconfig ps

Bu arada güvenlik duvarı üzerinden de yapılandırılabilirsin.

:information_source: Bu arada legacy değilde yeni versiyon ajanı tavsiye ediliyor. Siz hangisini yüklediniz?

Versiyon Sürüm Ajan
NT 5.1 Windows XP Eski Ajan
NT 5.2 Windows XP x64 Edition Eski Ajan
NT 5.2 Windows Server 2003 Eski Ajan
NT 6.0 Windows Vista Yeni Ajan
NT 6.0 Windows Server 2008 Yeni Ajan
NT 6.1 Windows 7 Yeni Ajan
NT 6.1 Windows 2008 R2 Yeni Ajan
NT 6.2 Windows 8 Yeni Ajan
NT 6.2 Windows Server 2012 Yeni Ajan
NT 6.3 Windows 8.1 Yeni Ajan
NT 6.3 Windows 2012 R2 Yeni Ajan
NT 6.4 / NT 10.0 Windows 10 Yeni Ajan
NT 6.4 / NT 10.0 Windows Server 2016 Yeni Ajan
NT 6.4 / NT 10.0 Windows Server 2019 Yeni Ajan

:information_source: Yukarıdaki tabloda listelenmeyen sürümler resmi olarak desteklenmemektedir. Örneğin, Windows Embedded gibi…

Yükleme yöntemleri:

Yöntem Açıklama CRE CEE
Birlikte verilen MSI paketi Konfigürasyon dosyaları aracılığıyla manuel konfigürasyon ile standart bir ajanın kolay kurulumu yapılır. X X
Agent Bakery’den MSI paketi GUI üzerinden yapılandırma - her ana bilgisayarın ayrı yapılandırılması mümkündür. X
Otomatik Güncellemeler Agent Bakery’nin paketi önce elle veya komut dosyasıyla yüklenir ve daha sonra otomatik olarak güncellenir. X

Kontrol etmek için:

.\check_mk_agent.exe test

Örnek çıktı:

<<<check_mk>>>
Version: 1.6.0b8
BuildDate: Sep  4 2019
AgentOS: windows
Hostname: MSEDGEWIN10
Architecture: 64bit

23 Nisan 2020 tarihli Checkmk Kaynağına göre…

1 Beğeni

O paket orada var olabilir ama erişilebilmesi önemli, güvenlik duvarı tarafında yapılandırmalarını yap lütfen. Kısıtlaman yalnızca komutu kısıtlamayı içermeli komple dosyalara erişimi engellememeli. En kötü elle at dosyayı yükle :+1:

1 Beğeni

Merhaba Arkadaşlar;
Email gönderimi için smtp bilgilerini gireceğimiz conf. alanını arayüzde bulamadım, gören varmı ?

Selam,

Ubuntu üzerinde Exim4 ya da Postfix kurduğun zaman zaten Checkmk direkt posta göndermeye başlıyor. Ajan kısmında bir SMTP yapılandırmasına gerek yok. Talep olursa Ubuntu için bir döküman oluşturabilirim.

Yeniden yapılandırmayı deneyebilirsin:

dpkg-reconfigure exim4-config

Selamlar;

Bu tip mailler göndermek için hmail smtp server kullanıyorum, check_mk mail göndermesi için exim4 kurarak bu sunucuyu kullandırabilir miyim ?

İşletim sistemi tarafında düzenleme yaparak dış SMTP sunucusunu kullandırabilirsin, Ckeckmk zaten işletim sistemini kullanıyor gönderim için.

Sistem e-posta yapılandırma dosyasına bir göz at istersen.

1 Beğeni

Maalesef ilgili dosyayı belirttiğiniz yerde göremedim, biraz araştırayım.
Teşekkür ederim.

HYPER-V Sanallaştırma sistemi üzerinde kurulu Ubuntu sunucu ve windows üzerinde Checkmk ayarlamaları ile ilgili merak edilenler için:

3 Beğeni

Elinize sağlık hocam :+1:

Sizde sağ olun hocam ne demek, notlarıma aldım inşallah en kısa sürede bildirimi gelir zaten buradan yazarım :handshake:

2 Beğeni

Baya aradım, ancak istediğim şekilde mail,sms yapılandırması yapamadım.
Çalışma yaparsanız çok makbule geçer.

Çözüm basit ama siz zorlaştırıyorsunuz :slight_smile: SMS ve posta için bir yapılandırma dosyası, menüsü yok. Sunucunuzu SMS ve posta sunucusu olarak yapılandırmanız lazım. Checkmk zaten girilen telefon no ve posta adresine bildirim atıyor. Bunları araştırmalısınız. Çalışma gelse de çok geç gelecektir o zamana kadar şu rehberleri de inceleyebilirsiniz:

http://manpages.ubuntu.com/manpages/bionic/man1/sendsms.1.html

1 Beğeni