Windows Server – Active Directory, Exchange Server ve Prometheus/Grafana Entegrasyonu

yazar:

kategori:

Bu yazı serisinde, Windows ve Linux sunucularını kapsayan entegre bir izleme sistemi kurulumunu adım adım anlatacağım.

Projemizde, Active Directory tabanlı bir Windows altyapısından başlayıp, Exchange Server kurulumu ile devam ettik ve son olarak Prometheus ve Grafana ile tüm sistemleri tek bir monitöring çatısı altında birleştirdik. Bu süreç, bize sistem yönetiminin farklı katmanlarını anlama fırsatı verecektir.

1.Windows Server’da Active Directory Domain Services (AD DS) Kurulumu ve Yapılandırması

Active Directory Kurulumu

İlk olarak, sunucumuza uzak masaüstü bağlantısı kurmamız gerekiyor. Windows + R tuşlarına basıp “mstsc” yazarak Remote Desktop Connection’ı açıyoruz. Bağlantı bilgilerimiz:

  • IP Adresi: (ip adresiniz)
  • Kullanıcı Adı: Administrator
  • Şifre: (şifreniz)

Sunucuya bağlandıktan sonra, Active Directory Domain Services rolünü kurmalıyız. Server Manager üzerinden şu adımları izliyoruz:

  1. “Add Roles and Features” seçeneğine tıklıyoruz.
  2. “Role-based or feature-based installation” seçiyoruz.
  3. Sunucumuzu seçip ilerliyoruz.
  4. “Server Roles” listesinden “Active Directory Domain Services” rolünü işaretliyoruz.
  5. Açılan pop-up’ta “Add Features” diyerek gerekli özelliklerin otomatik eklenmesini sağlıyoruz.
  6. Varsayılan seçeneklerle devam edip kurulumu başlatıyoruz.

Kurulum tamamlandıktan sonra, sunucumuzu Domain Controller’a yükseltmemiz gerekiyor. Bunun için:

  1. Server Manager’da üstteki sarı uyarı bayrağına tıklıyoruz.
  2. “Promote this server to a domain controller” linkine tıklıyoruz.
  3. “Add a new forest” seçeneğini seçip root domain adımızı giriyoruz: “mustafa.local”
  4. Forest ve Domain functional level’ları en üst seviye seçiyoruz.
  5. Directory Services Restore Mode şifresini belirliyoruz.
  6. DNS Options ve Additional Options ekranlarında varsayılan ayarları kabul ediyoruz.
  7. Prerequisites kontrolünü geçtikten sonra “Install” diyoruz.

Active Directory Yapılandırması ve Kullanıcı Yönetimi

Domain Controller’ımız hazır olduğuna göre, şimdi organizasyon yapımızı oluşturacağız.

İlk olarak Organizational Unit (OU) oluşturalım. Bu, Active Directory’deki dosya sistemine benzer bir yapıdır:

  1. Server Manager -> Tools -> “Active Directory Users and Computers” açıyoruz
  2. “mustafa.local” domain’ine sağ tıklayıp New -> Organizational Unit seçiyoruz
  3. İsim olarak “MustafaOU” yazıyoruz

Şimdi güvenlik gruplarımızı oluşturacağız. Bu gruplar, yetkilendirmeleri yönetmemizi kolaylaştıracak:

  1. Oluşturduğumuz “MustafaOU” içinde sağ tıklayıp New -> Group seçiyoruz
  2. Group name: “MustafaAdmins”
  3. Group scope: Global
  4. Group type: Security

Sıra kullanıcı oluşturmada. Bu kullanıcı, sistemde işlem yapabilecek yetkili bir hesap olacak:

  1. “MustafaOU” içinde sağ tıklayıp New -> User seçiyoruz
  2. First name: Mustafa
  3. User logon name: [email protected]
  4. Next’e tıklayıp güçlü bir şifre belirliyoruz: (şifreniz)
  5. “Password never expires” seçeneğini işaretliyoruz
  6. “User must change password at next logon” seçeneğinin işaretini kaldırıyoruz

Kullanıcımızı oluşturduktan sonra, gerekli gruplara eklememiz gerekiyor:

  1. Oluşturduğumuz “mustafa” kullanıcısına çift tıklıyoruz
  2. “Member Of” sekmesine gidiyoruz
  3. Add -> Advanced -> Find Now
  4. Listeden “MustafaAdmins” ve “Remote Desktop Users” gruplarını seçiyoruz

Son olarak, güvenlik politikalarımızı ayarlayacağız. Bu adım önemli çünkü sistemin güvenliğini ve çalışma şeklini belirliyor:

  1. Server Manager -> Tools -> Group Policy Management
  2. Domain’e sağ tıklayıp “Create a GPO” seçiyoruz
  3. İsim olarak “PreventShutdown” yazıyoruz
  4. Yeni GPO’ya sağ tıklayıp Edit seçiyoruz
  5. User Configuration -> Administrative Templates -> Start Menu and Taskbar
  6. “Remove and prevent access to Shut Down” politikasını bulup “Enabled” yapıyoruz

Artık başlat menüsünden shut down seçeneğine erişemeyeceğiz ve sunucumuzu yanlışlıkla shut down edemeyeceğiz.

Tüm bu yapılandırmalardan sonra, ayarların etkili olması için bir PowerShell komutu çalıştırıyoruz:

gpupdate /force

Bu komut, yaptığımız tüm Group Policy değişikliklerinin hemen uygulanmasını sağlıyor.

2.İkinci Windows Sunucunun(Client) Domain’e Eklenmesi ve Yapılandırılması

İlk olarak, ikinci Windows sunucumuza uzak masaüstü bağlantısı kurmamız gerekiyor. Bu noktada önemli bir ayrıntıya dikkat etmeliyiz: Bu sunucu henüz domain’e dahil olmadığı için, yerel Administrator hesabını kullanmamız gerekecek.

Bağlantı bilgilerimiz:

  • IP Adresi: (ip adresiniz)
  • Kullanıcı Adı: Administrator
  • Şifre: (şifreniz)

Sunucuya bağlandıktan sonra, domain’e katılma işlemini gerçekleştireceğiz. Windows tuşu + Pause/Break tuşlarına basarak veya File Explorer’a sağ tıklayıp “Properties” seçerek System özelliklerine ulaşıyoruz.

System Properties penceresinde:

  1. “Computer Name” sekmesinde “Change” butonuna tıklıyoruz
  2. “Domain” seçeneğini işaretliyoruz
  3. “mustafa.local” yazıyoruz

Bu noktada Windows bizden domain admin kimlik bilgilerini isteyecek:

Domain’e katılım başarılı olduktan sonra sunucuyu yeniden başlatmamız gerekecek.

Önceden workgroup seçiliydi artık domaine katmış olduk. Şahsi bilgisayarlarımızda default olarak workgroup seçili gelir.

Sunucu yeniden başladıktan sonra, artık farklı bir dünyaya adım atmış oluyoruz. Sunucuya bağlanırken artık domain kimlik bilgilerini kullanabiliriz. Bu, merkezi kimlik yönetiminin güzel bir örneğidir. Artık:

  • Domain kullanıcıları (örneğin [email protected]) sunucuya bağlanabilir
  • Group Policy’ler otomatik olarak uygulanır
  • Kaynak paylaşımı domain güvenlik politikaları çerçevesinde yapılır

Bu aşamada, Group Policy’lerin düzgün uygulandığından emin olmak için bir PowerShell komutu çalıştırıyoruz:

gpupdate /force

3.Exchange Server Kurulumu

Exchange Server kurulumu için öncelikle gerekli Windows bileşenlerini yüklememiz gerekiyordu. Server Manager üzerinden şu rolleri ve özellikleri ekledik:

1.Web Server (IIS) ve alt bileşenleri:

  • Common HTTP Features (tüm özellikler)
  • Management Tools
  • IIS Management Console
  • IIS 6 Management Compatibility
  • IIS Management Scripts and Tools

2. .NET Framework özellikleri:

  • .NET Framework 4.8
  • HTTP Activation
  • TCP Port Sharing

3.Remote Procedure Call (RPC) servisleri ve ek özellikler:

  • RPC over HTTP proxy
  • BITS (Background Intelligent Transfer Service)

Ayrıca, Exchange Server’ın çalışması için gerekli olan Visual C++ 2012 ve 2013 Redistributable paketlerini ve Unified Communications Managed API 4.0’ı yükledik.

Exchange Server kurulumuna başlamadan önce Active Directory’yi hazırlamamız gerekiyor.Domain Controller’da şu komutları çalıştırdık:

# Schema'yı hazırlama
Setup.exe /PrepareSchema /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF

# Active Directory'yi hazırlama
Setup.exe /PrepareAD /OrganizationName:"MustafaExchange" /IAcceptExchangeServerLicenseTerms_DiagnosticDataOFF

Exchange Server’ın kurulum aşamasında:

  1. “Install Microsoft Exchange Server 2019” seçeneğini seçtik
  2. Mailbox role’ünü yükledik
  3. Varsayılan yükleme yolunu kabul ettik
  4. Kurulum tamamlandığında sunucuyu yeniden başlattık

Kurulum sonrasında Exchange Admin Center’a erişmek için:

https://localhost/ecp(tarayıcıya yazıyoruz)
Kullanıcı: [email protected]
Şifre: (şifreniz)

Mail sisteminin test edilmesi için iki test hesabı oluşturduk:

  1. [email protected]
  2. [email protected]

Bu hesaplar arasında mail gönderimi yaparak sistemin düzgün çalıştığını doğruladık.Outlook Web Access (OWA) üzerinden:

https://localhost/owa

adresini kullanarak mail sistemine erişim sağladık ve test maillerini başarıyla gönderdik.

4.Linux Sunucuda Prometheus Kurulumu ve Yapılandırması

İlk olarak, Linux sunucumuza bağlanmamız gerekiyor

cd .pem dosyasınızın yolu
chmod 400 mustafa.pem
ssh -i mustafa.pem ubuntu@<ip adresiniz>
# Prometheus için grup oluşturma
sudo groupadd --system prometheus

# Prometheus kullanıcısını oluşturma
sudo useradd --system --no-create-home --shell /bin/false -g prometheus prometheus

# Gerekli dizinleri oluşturma
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus

# Dizin izinlerini ayarlama
sudo chown prometheus:prometheus /etc/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

Prometheus’u indirip kuralım:

cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.49.1/prometheus-2.49.1.linux-amd64.tar.gz
tar xvf prometheus-*.tar.gz
cd prometheus-*/

# Binary dosyalarını kopyalama
sudo cp prometheus promtool /usr/local/bin/
sudo chown prometheus:prometheus /usr/local/bin/prometheus
sudo chown prometheus:prometheus /usr/local/bin/promtool

# Konfigürasyon dosyalarını kopyalama
sudo cp -r consoles/ console_libraries/ /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus/consoles
sudo chown -R prometheus:prometheus /etc/prometheus/console_libraries

Prometheus’un konfigürasyon dosyasını oluşturalım. Bu dosya, Prometheus’un nasıl çalışacağını ve neleri izleyeceğini belirtecek:

sudo nano /etc/prometheus/prometheus.yml

Konfigürasyon dosyasının içeriği:

global:
  scrape_interval: 15s
  evaluation_interval: 15s

alerting:
  alertmanagers:
    - static_configs:
        - targets:

rule_files:

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

Systemd servis dosyasını oluşturalım:

sudo nano /etc/systemd/system/prometheus.service

Servis dosyasının içeriği:

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file /etc/prometheus/prometheus.yml \
    --storage.tsdb.path /var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries

[Install]
WantedBy=multi-user.target

Son olarak, servisi başlatıp etkinleştirelim:

sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

# Güvenlik duvarında port açma
sudo ufw allow 9090/tcp

Prometheus’un çalıştığını doğrulamak için web arayüzüne erişebiliriz:

http://(ip adresiniz):9090

5.Linux Sunucuda Grafana Kurulumu ve Yapılandırması

Bu adım, topladığımız verileri anlamlı görselleştirmelere dönüştürmemizi sağlayacak.

İlk olarak, Grafana’nın resmi paket deposunu sistemimize eklememiz gerekiyor. Bu, yazılımın güvenli ve güncel bir kaynaktan gelmesini sağlayacak. Linux sunucumuzda şu komutları sırayla çalıştırıyoruz:

# Grafana'nın GPG anahtarını ekleme
wget -q -O - https://apt.grafana.com/gpg.key | sudo apt-key add -

# Grafana deposunu sisteme ekleme
echo "deb https://apt.grafana.com stable main" | sudo tee /etc/apt/sources.list.d/grafana.list

# Paket listesini güncelleme
sudo apt update

Grafana’yı kurmak:

# Grafana'yı kurma
sudo apt install grafana

# Grafana servisini başlatma ve otomatik başlatmayı etkinleştirme
sudo systemctl start grafana-server
sudo systemctl enable grafana-server

# Güvenlik duvarında port açma
sudo ufw allow 3000/tcp

Grafana web arayüzüne tarayıcıdan erişebiliriz:

http://(ip adresiniz):3000

İlk girişte varsayılan kimlik bilgilerini kullanıyoruz:

  • Kullanıcı adı: admin
  • Şifre: admin

Grafana’ya giriş yaptıktan sonra, Prometheus’u veri kaynağı olarak eklememiz gerekiyor:

  1. Sol menüde Configuration -> Data Sources
  2. “Add data source” butonu
  3. Prometheus’u seç
  4. URL kısmına: http://(ip adresiniz):9090
  5. “Save & Test” butonuna tıkla

Bu yapılandırmadan sonra, izleme panellerimizi (dashboard) oluşturmaya başlayabiliriz. İlk olarak CPU kullanımını gösteren bir panel ekleyelim:

  1. “+” ikonu -> “New Dashboard”
  2. “Add visualization”
  3. Veri kaynağı olarak Prometheus seç
  4. Metrics browser’da şu sorguyu kullan:
rate(process_cpu_seconds_total[5m])

Bu panel için yapılandırma:

  • Title: “CPU Usage”
  • Description: “System CPU utilization rate over time”

Memory kullanımı için ikinci bir panel ekliyoruz:

  1. “Add visualization”
  2. Sorgu olarak:
process_resident_memory_bytes / (1024 * 1024)

Panel yapılandırması:

  • Title: “Memory Usage (MB)”
  • Description: “System memory usage in megabytes”

Dashboard’umuzu “System Performance Dashboard” adıyla kaydediyoruz. Bu dashboard artık sistemimizin temel performans metriklerini gösterecek.

Buraya kadar Linux Server metriklerini izledik. Sırada Windows Server var.

6.Windows Sunucularında İzleme Altyapısının Kurulumu

Windows sistemlerde performans metriklerini toplamak için Windows Exporter kullanmamız gerekiyor.

İlk olarak Windows sunucumuza (AD DS) bağlanıyoruz:

IP: (ip adresiniz)
Kullanıcı adı: [email protected]
Şifre: (şifreniz)

Windows Exporter’ı GitHub’dan indiriyoruz.

Windows Güvenlik Duvarında 9182 portunu açmamız gerekiyor. Bu işlemi PowerShell’i yönetici olarak çalıştırıp şu komutu kullanarak yapıyoruz:

New-NetFirewallRule -DisplayName "Windows Exporter" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 9182

Şimdi Linux sunucumuza dönüp Prometheus’un yapılandırma dosyasını güncellememiz gerekiyor. Windows sunucusunu izleme hedefi olarak ekleyeceğiz:

sudo nano /etc/prometheus/prometheus.yml
- job_name: 'windows'
    static_configs:
      - targets: ['10.43.16.14:9182']
    metrics_path: /metrics
sudo systemctl restart prometheus

7.Grafana’da Windows ve Linux İzleme Dashboardlarının Oluşturulması

5.adımda Linux Server için CPU ve Memory dashboardlar oluşturmuştuk , bu adımda da Windows Server metriklerini içeren kapsamlı bir izleme paneli oluşturacağız.

Windows sunucumuz için CPU kullanımını izleyen panel için şu sorguyu kullandık:

rate(windows_cpu_time_total{mode="idle"}[5m])

“Windows CPU Usage” başlığı altında bu metriği görselleştirdik.

Windows bellek kullanımı için oluşturduğumuz panelde şu sorguyu kullandık:

windows_cs_physical_memory_bytes / (1024 * 1024 * 1024)

“Windows Memory Usage (GB)” başlığı altında bu metriği konumlandırdık.

Windows disk kullanımını izlemek için özel bir panel oluşturduk:

100 - (windows_logical_disk_free_bytes{volume="C:"} / windows_logical_disk_size_bytes{volume="C:"} * 100)

“Windows Disk Usage (%)” başlığı altında bu metriği yerleştirdik.

Artık elimizde hem Windows hem Linux sunucularını tek bir arayüzden izleyebileceğimiz bir monitoring sistemi var.

Bu blogda , bir sistem izleme altyapısının nasıl kurulacağını adım adım göstermeye çalıştım. Active Directory’den başlayıp Exchange Server kurulumuna, oradan Prometheus ve Grafana ile monitoring sistemine uzanan bu yolculuk ile, sistem yönetiminin farklı katmanlarını ve bunların nasıl entegre edilebileceğini göstermeye çalıştım.Okuduğunuz için teşekkürler.


Yorumlar

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir