Windows&Windows Hosting – Vahap Öç – Exevolium https://exevolium.com #windows, #linux, #hosting, #cloud, #database, #vmware Sat, 26 Jan 2019 22:06:07 +0000 tr hourly 1 https://wordpress.org/?v=7.0.2 https://exevolium.com/wp-content/uploads/2017/03/favicon1.png Windows&Windows Hosting – Vahap Öç – Exevolium https://exevolium.com 32 32 IIS – Blue-Green Deployment (Proxy-Load Balancing, ARR Yapılandırması) https://exevolium.com/iis-blue-green-deployment-proxy-load-balancing-vs/ Sat, 26 Jan 2019 21:28:27 +0000 http://exevolium.com/?p=1457 Merhaba,

Öncelikle şu detayı belirtmekte fayda görüyorum. İlgi alanım GNU/Linux olsada fazla bilgi göz çıkarmaz edasıyla bu tür şeyleri de araştırıp not ediyorum. Aşağıda anlattığım içeriğin Türkçe dokümanı bulunmuyor ve gerçekten 0’dan bir yapı nasıl kurulur bunu içeriyor. Bu yapıyı daha da abartıp, öne iki IIS proxy makinası oluşturup birden fazla IIS makinaya trafiği yönlendirebilirsiniz. Yazı uzun ama ASP.NET/Java/.netCore Developer veya Microsoft SysAdmin iseniz ve yolunuz IIS’e çıkıyorsa okumanızı öneririm.

Bu yazıda IIS üzerinde Blue-Green Deployment nasıl yapılandırılıp kullanılacağından bahsediyorum. Bunu yaparken de aynı zamanda Load Balancer ve Proxy olarak kullanımdan (ARR) da bahsetmiş olacağım. Elbette böyle bir yapı kurmak yerine Citrix Netscaler, F5, AWS Elastic LB veya HAProxy, LVS.. vs. kullanabilirsiniz. Ancak maliyet sizin için önemliyse böyle bir yol da bulunuyor.

Blue-Green Deployment nedir ve neden kullanılsın?

Senaryo 1: Örneğin e-ticaret sisteminiz var ve gün içinde publish çıkmanız gerekli. Standartı nedir? Publish çıkılır, aktif olması için de bazen web servis reload edilir. Sorun yoksa devam eder, sorun çıkarsa da publish geri alınır. Bu aralıkta da kesinti olur. Bu durumu ziyaretçilere en az seviyede yansıtmak için de yazılım ekibi genelde akşam saatlerinde deploy çıkar veya kesintiyi kabul ederler.

İşte bu yapıda load balancer kullanmıyorsanız, IIS üzerinde “Application Request Routing“dan faydalanabilirsiniz. ARR nedir?

Bir farm yaratarak URL Rewrite’ın da yardımıyla proxy ve load balancer ortamı yaratıyorsunuz. Böylelikle IIS üzerinde tek bir site kullanmak yerine Proxy görevi görecek site yaratıp, arkada onu iki web siteye yönlendirebiliyorsunuz. Böylelikle Servers yazan sitelerden birinde publish çıkarken (down edip) trafiği diğerinden sürdürebilirsiniz. Publish’de sorun yoksa da down ettiğinizi up eder ve diğerini down edip onda publish çıkarsınız. (Ne dediğimi en sonda anlayacaksınız.) Burada kilit noktaysa sessionları web sitelerde değil, SQL’de tutmanızdır. Böylelikle geçişlerde session düşmez. (IIS üzerinde Session State kısmından yapabilirsiniz.)

Senaryo 2:Load balancer cihazların kira bedelleri, sanal load balancer sunucuların (Citrix Netscaler VPX örn.) lisans maliyeti veya da HAProxy veya LVS konfigürasyonunu yapacak teknik yeterliliğin olmaması dolayısıyla, bir load balancer-proxy görecek yapıya ihtiyacınız olabilir. Kısaca yukarıdaki görselde gördüğünüz şekilde bu makinayı sadece istekleri karşılayan ve load balancer görevi gören bir sunucu olarak da kullanabilirsiniz.

Elbette tek bir sunucuda tüm sistemi çalıştırmanızı önermiyorum ama Türkiye’de çoğu firma tek bir makinaya tüm kaynakları verip sistemi çalıştırıyor. Eğer maliyet dolayısıyla genişleyebilir yapı kullanamıyorsanız örneğin kampanya dönemlerinde çift site olarak sistemi çalıştırabilirsiniz. Bu cpunun tavan yapmasına neden olacak olsa da, requestleri kaldırabilecektir. (En iyi performansı almak için IIS iyi yapılandırmalısınız. Bu kısımda desteğe ihtiyacınız olursa sosyal medya aracılığıyla ulaşabilirsiniz.)

Blue-Green Deployment Nasıl Kurulur ve Yapılandırılır?

İşin faydalarını anlatmayı bitirdiğimiz ve teknik boyutuna geldiğimiz kısımdayız. Üstte senaryoları yazmamın nedeni, müşterinize veya üstünüze bu yapıyı önerdiğinizde “Neden buna geçelim?” sorusunun cevabı olması içindi.

Bu yapıyı kurabilmek için IIS üzerinde iki temel şeye ihtiyaç var:
a. URL Rewrite 2.1
b. Application Request Routing 3.0
(Server 2016’ya göre söyledim. 2012’de -IIS 8.x’de- 2.5 olabilir, fark etmez.)
IIS üzerindeki “Web Platform Installer” aracılığıyla yükleyebilirsiniz.

Yüklediğinizi farz ederek sonraki adıma geçiyorum. Yukarıdaki görselde olduğu gibi Sites altında Proxy görevini görecek web sitenizi oluşturun (vahap.net) ve site dosyalarınızın olacağı ana siteleri oluşturun. (web1 ve web2.)

Sonrasında IIS’i kapatın ve yeniden açın. Server Farms kısmını göreceksiniz. “Create Server Farm..” diyerek, website adını yazın. (Bu sadece isim. İsterseniz kendi adınızı yazabilirsiniz.)

Alttaki kısım önemli.

Yukarıda Server Address kısmına eklediğiniz kayıtlar aktif olmalıdır. Yani dns kaydı olmalı. İlla ki bu subdomainlere public IP vermenize ve webten erişilmelerine gerek yok. Sunucu bu kayıtların IP’sine ulaşabilsin yeter. Bu nedenle sunucuya additional IP ekleyin ve rastgele bir local IP ve subnet tanımlayın. Sonra /Windows/system32/drivers/etc/hosts dosyasına girip, bu tanımlar için IP’yi ekleyin. Tek görselde anlatmaya çalıştım. Eğer bunu yapmazsanız 502.4 – Bad Gateway alabilirsiniz.

Bu işlemi yaptıktan sonra “Create Server Farm” adımına geri dönebiliriz. Orada bir diğer önemli nokta portlar. Hangi portlar üzerinden siteleri çalıştıracaksınız? Ben WEB1 için 8001 portunu ve WEB2 için de 8002 portunu kullandım. Portları yazdıktan sonra Enter tuşuna basın ve sonra Add diyin. Karşınıza Url Rewrite ile ilgili bir bildirim çıkacaktır. NO diyerek ilerleyin. Kuralları sonra manuel ekleyeceğiz.

İşlem sonunda hem yukarıdaki gibi veya localhost:8001 ve localhost:8002 diyerek sitelere ulaşabilmeniz lazım. Elbette bir index dosyası atmayı unutmayın. Ek olarak, alt sitelerin binding kısmına dikkat edin. Yukarıdaki görselde gösterdiğim gibi binding eklemeniz lazım. 8001 ve 8002 portunu * dinlemeli.

Bu işlem bittikten sonra gelelim ana domaine. Bu domaini sadece proxy ve dns çözümleyici olarak kullanacağız. Bu nedenle “No Managed Code” olarak Application Pool’u düzenlemelisiniz. Herhangi bir ASP veya ASP.NET çalışmayacak. Sadece proxy görevi görecek ve gerekirse datastore olacak.

Eğer veri boyutu yüksek bir siteniz varsa (e-ticaret gibi) vahap.net olarak oluşturduğum alanda -tabii sizin domaininize göre isim farklıdır- web site dosyalarınızı burada tutabilirsiniz. Her iki node’a (web1 ve web2) kopyalamanıza gerek kalmaz. Örnek olması için big_data diye klasör oluşturdum ve diyelim ki boyutu 500 GB. “Add Virtual Directory” olarak ekleyerek aynı dosyayı kopyalamadan, tek bir ana dizinde gösterebildim. Bu hem disk alanından hem de iki farklı dizin kullanmaktan kurtardı. Aynı işlemi web2 üzerinde de uygulayıp, aynı dizinleri gösterdim. Eğer kullanıcı etkileşimli bir sisteminiz var ise kullanıcıların değişiklik yaptığı dizinleri virtual directory olarak eklemenizi öneririm. (Lock file olmuyor.)

Bu kısmı da yaptıktan sonra geldik URL Rewrite kuralına. Benim vahap.net olarak oluşturduğum domainin web.config dosyası şöyle:

Sizi bir zahmetten kurtararak aşağıya ekliyorum. Domain kısmını düzenlersiniz.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Alwaysup" stopProcessing="true">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_HOST}" pattern="^www.vahap.net$" />
                        <add input="{HTTP_HOST}" pattern="^vahap.net$" />
                    </conditions>
                    <action type="Rewrite" url="http://vahap.net/{R:0}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Son olarak web sitenizin root folderına gelin ve o klasörden itibaren Users grubu ekli değilse ekleyin ve Modify permission tanımlayın. Bu web1, web2 ve ana domainin klasörlerini kapsamalı. Aksi halde hata alabilirsiniz. Şimdi gelelim siteleri nasıl up ve down hale getireceğinize..

Bunun için up.html isminde dosya oluşturun. Bunun içine sadece up kelimesini yazın ve web1-web2’nin folderına atın. Ana domaine atmanıza gerek yok, o sadece proxy (üstteki URL Rewrite kuralıyla beraber) ve büyük dosyaları tuttuğunuz ana folder. Sonra IIS üzerinde Server Farms altında oluşturduğunuz alana tıklayın ve sağ framede “Health Test“e tıklayın.

Yukarıdaki görselin özeti şu: Oluşturduğunuz sitelerden hangisinin up hangisinin down olduğunu burada belirtiyorsunuz. IIS doğrudan vahap.net/up.html dosyasına arkadaki nodeler (web1 ve web2) üzerinden ulaşmayı deniyor. Eğer bu dosyalara ulaşıp, içindeki up kelimesiyle match eden bir sonuç olduğunda node ayakta diyerek trafiği yönlendiriyor. Örneğin siz web1’e trafik gelmesin isterseniz çözüm basit: up.html içindeki kelimeyi down yapın. Node Unhealthy duruma düşecek ve trafik gelmeyecek. Siz de (sunucu içinden) tarayıcıya web2.vahap.net:8002 yazarak publishi çıkıp test edebileceksiniz. Sonra aynı işlemi diğerinde yapacaksınız. Böylelikle IIS ile işiniz kalmıyor. Dilerseniz de publish çıktığınız siteyi gün içinde rahatlıkla restartlayabilirsiniz.

Yukarıda gördüğünüz gibi web1.vahap.net içindeki up.html ya bulamıyor veya içindeki kelime up değil. (Down yazmıştım.) Bu nedenle onu down sayıyor. Ancak web2.vahap.net node Health Test değerleriyle uyuşuyor. Bu da trafiğin web2.vahap.net üzerinden geçeceğini gösterir. Buradaki ayarları kendinize göre uyarlayın ve Apply diyin.

Bunu yaptıktan sonra yine Server Farms altında farm adına tıklayın ve sağ framede açılan “Monitoring and Management” tıklayın. Burada hangi node aktif, response süresi ne, ne kadar request geçiyor, kaç request fail gibi detayları görebilirsiniz.

Bu yazıda nedir ve nasıl kurulurdan bahsettim. Elbette sitenizi direkt buna geçirdiğinizde absürt sorunlarla karşılaşacaksınız. Sorunlarla karşılaştıkça bana ulaşmanız halinde eğer sistem taraflıysa yardımcı olurum.

Umarım zamandan kazanmanızı sağlar.

]]>
Windows/Linux Loglarını Syslog Sunucusuna Göndermek https://exevolium.com/windows-loglarini-syslog-sunucusuna-gondermek/ Fri, 11 Jan 2019 07:29:56 +0000 http://exevolium.com/?p=1443 Merhaba,

Daha önce log sunucusu kurulumunu içeren bir makale paylaşmıştım. Elbette aradan yıllar geçti ve paketler-sürümler güncellendi. Yine de aynı dokümandaki repo linklerini güncelleyip, latest sürümü kullanıp kurabilirsiniz. Ubuntu 18.04’de de çalışır. (Yol ve methodlar aynıdır.)

Merkezi log sunucusu kurulumu. (Graylog-Elasticsearch-MongoDB)

Windows Sunucu Loglarını Gönderme

Windows sunucunuz üzerindeki logları, log sunucunuza göndermek için 3rd party ürün olan ve Community Edition olarak yayınlanan NXLog yazılımını kullanabilirsiniz.

Windows sunucunuz üzerindeki logları, log sunucunuza göndermek için 3rd party ürün olan ve Community Edition olarak yayınlanan NXLog yazılımını kullanabilirsiniz.

Aşağıdaki linkten yazılımı indirebilirsiniz.
NXLog 2.10 sürümü.

Yazılımı kurduktan sonra Program Files (x86) klasörü içerisine nxlog isminde bir klasör oluşturacaktır. O klasör içinde conf klasörünü açıp, o dosya içindeki nxlog.conf dosyasını aşağıdaki dosyayla değiştirin.

NXLog Config dosyası.

Bu config dosyası logları Syslog TCP olarak gönderir. Bu nedenle GUI olarak Graylog, Kibana veya hangi yapıyı kullanıyorsanız, Inputs olarak Syslog TCP seçmelisiniz. İndirdiğiniz config dosyasında da iki adet satır bulunuyor.
Bu satırlara sunucu log sunucunuzun IP adresini ve gönderdiğiniz logları dinlettirdiğiniz (Syslog TCP olarak) portu yazmalısınız.

Son olarak da Windows Servislerini açıp (services.msc) açıp, NXLog servisini start etmelisiniz. Firewall tarafında bir engel yoksa loglar akmaya başlayacaktır. Eğer GUI olarak Graylog kullanıyorsanız akan loglar düzgün akmayacaktır. Logların detayını açtığınızda bu şekilde gözükmesini istiyorsanız Graylog tarafında düzenleme yapmalısınız.

Bu düzenlemenin detaylarına ulaşabileceğiniz adresin detayları bu linkte mevcuttur.

Graylog JSON extractor düzenlemesi.

Eğer sorun yaşarsanız sosyal medya adreslerimden ulaşabilirsiniz.

Linux Sunucu Loglarını Gönderme

Linux üzerinden logları göndermek için de rsyslog kullanabilirsiniz. Bu dosyaya da RHEL sistemlerde /etc/rsyslog.conf olarak ulaşabilirsiniz. Ubuntu/Debian’da da /etc/rsyslog.d/50-default.conf içinden ulaşabilirsiniz.

Eklemeniz gereken parametreler aşağıdaki linkte mevcuttur.

Rsyslog.conf parametreleri.

Umarım zamandan kazanmanızı sağlar.

]]>
“Error: Exception of type ‘Vizioncore.ActiveBlockTracking’ was thrown.” Hatası https://exevolium.com/quest-vranger-error-exception-of-type-vizioncore-common-exceptions-shell-activeblocktrackingcommandexception-was-thrown-problemi/ Mon, 07 Jan 2019 16:27:06 +0000 http://exevolium.com/?p=1424 Merhaba,

Çok detaylıca girmeyeceğim. Bu hatayı desteğini sunduğum bir müşterinin backup yapısında aldım. (Quest vRanger) Eğer bu hatayı tek veya totalde iki sunucuda alıyorsanız, dosya sisteminde sorun olabilir. Bu yüzden dosya sisteminde chckdsk yapmanızı ya da vRanger backup taskı içinden ABM (Active Block Mapping) seçeneğini kaldırmanızı öneririm.

ABM’in ne olduğuna ilişkin detaya aşağıdaki linkten ulaşabilirsiniz:
Active Block Mapping Details

Umarım zamandan kazanmanızı sağlar.

]]>
“Primary filegroup is full” Hatası https://exevolium.com/mssql-primary-filegroup-is-full-hatasi-cozumu/ Fri, 04 Jan 2019 08:36:00 +0000 http://exevolium.com/?p=1350 Merhaba,

Yönetimini sağladığım sistemlerden birinde karşılaştığım bu problemin detayı ve kullanıcı taraflı bildirimi şu şekildeydi:

Öncelikle müşteri TABLO_ADI diye belirteceğim bir tabloda insert işlemi gerçekleştiremediğini ancak diğer tablolarda sorun olmadığını aktardı. Sorun genel bir sql limitlemesi gibi gözükmediği için database loglarını inceledim.

Error Logları aktif tutmanızı ve Full yerine Simple loglama kullanmanızı öneririm.

Karşılaştığım logun detayı da şöyleydi:

“Could not allocate space for object ‘dbo.TABLO_ADI’.’PK_TABLO_ADI’ in database ‘DB_ADI’ because the ‘PRIMARY’ filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.”

Bu sorunun çözümü için Management Studio’yu açın, sorun yaşadığınız veritabanının üzerine sağ tıklayın ve Properties’ tıklayın. Aşağıdaki alanda Autogrowtg/Maxsize değerini Unlimited’a çekin.

Her SQL veritabanının birincil bir dosya grubu vardır ve bu dosya gurubunda veritabanı dosyası bulunuyor. (.mdf) Çalıştırdığınız sorgu veya insert işleminin yapılabilmesi-sorguyu işlemesi için yeterli alana sahip olmadığından problem yaşadınız. Bu SQL’in default ayarıdır.

Umarım zamandan kazanmanızı sağlar.

]]>
IIS Conflict with SQL Server Reporting Services Problemi https://exevolium.com/iis-conflict-with-sql-server-reporting-services-problem/ Mon, 31 Dec 2018 07:16:13 +0000 http://exevolium.com/?p=1342 Merhaba,

Bu içerikte başınıza gelebilecek spesifik bir durumdan bahsedeceğim. Eğer yazılımınızda domain.com/reports veya /reportserver ile biten bir tanımınız var ise ve Web & SQL servislerini aynı sunucuda kullanıyorsanız MSSQL Reporting Services yazılımınızla çakışabilir.

MSSQL Reporting Services, MSSQL Express sürümünde bulunmayan ancak üst editionlarla gelen ve isminden de anlaşılabileceği gibi bir raporlama aracı. (Crystal Reports gibi düşünün ama daha afillisi.)

Bu konuyla ilgili daha detaylı bilgiyi de aşağıdaki linkte bulabilirsiniz.

Microsoft Reporting Services nedir?

Tamam, şimdi sorunun kaynağını anladık. Peki çözüm nasıl olacak? İki yolunuz bulunuyor:

a.) Yazılımda /reports veya /reportserver tanımlarınızı değiştirmek.
b.) SQL Reporting Services içinde /reports tanımını ya da portu değiştirmek.

Bu noktada sistem tarafında yapılacak adımı sizinle paylaşacağım.


SQL Reporting Services Configuration Manager açın ve Connect diyip bağlanın.
Sol framede Web Portal URL tıklayın ve açılan ekranda (üstte old. gibi) düzenleyin.

Burada üç seçeneğiniz var:
a.)Reporting Services’e 80 portunu dinletmemek.
b.)Virtual Directory Reports’u farklı bir isimle değiştirmek.
c.)Web makinanızla SQL’i daima ayrı makinalarda kullanmak.


Bu senaryoda MSSQL Reporting Services’de kullanacağım için portu değiştirdim. Böylelikle vahap.net/reports dediğimde benim yazılımım açılacak. vahap.net:8088/reports dediğimde Reporting Services açılacak.

Ufak bir dipnot: Eğer sunucunuzda SQL Reporting Services stop durumda ve /reports şeklinde bir veri çekmeye çalışıyorsanız 503 Service Unavailable hatası alabilirsiniz ve loglara hiçbir şey basmaz. Buna dikkat edin.

Umarım zamandan kazanmanızı sağlar.

]]>
Quest vRanger – “VSS snapshot on the target machine” Problemi https://exevolium.com/quest-vranger-failed-to-create-vss-snapshot-on-the-target-machine-problemi/ Wed, 21 Nov 2018 12:12:08 +0000 http://exevolium.com/?p=1334 Merhaba,

Eğer bu backup programını kullanıyor ve aşağıdaki hatayı alıyorsanız sorunun çözümü VSS Writer sorununu düzeltmekten geçiyor.

Error: Failed to create VSS snapshot on the target machine (P_VSSUTIL_WRITER_ERR).

Bu hata da vRanger programıyla ilgili değil, Windows sunucunuzda bu servisin çalışmamasıyla ilgilidir. vRanger tarafında çözmek için aşağıdaki seçeneği kaldırabilirsiniz.

Eğer sorunu Windows tarafında çözmek istiyorsanız da öncelikle hangi Writer çalışmadığını veya hata verdiğini anlamanız gerekiyor.
Bunun için de sunucuda Command Prompt açıp, “vssadmin list writers” komutunu çalıştırmalısınız. Sorunsuz bir yapıda aşağıya eklediğim gibi görseldeki gibi olmalıdır.

Burada hata veren Writer name aratıp, internette Regedit üzerinde yapacağınız ufak bir düzenlemeyle çözümleyebilirsiniz.
Ek olarak VMWare ortamındaki bir makinadan bahsediyorsak da, sanal sunucunun VMWare Tools’unun güncel olup olmadığına bakınız.
Eğer ki sizin de sonucunuz yukarıdaki gibiyse bir diğer olasılık olan, makina kaynaklarının full kullanıldığı bir anda backup denenmiş olabilir. Kaynakları yükseltip tekrar deneyin.

Umarım zamandan kazanmanızı sağlar.

]]>
Windows Server 2012/2016 Remote Desktop Problemi https://exevolium.com/windows-server-2012-2016-remote-desktop-problemi/ Wed, 21 Nov 2018 06:58:23 +0000 http://exevolium.com/?p=1329 Merhaba,

Bu içerikte bahsedeceğim konu tam olarak şu hatayı kapsıyor:

To sign in remotely, you need the right to sign in through Remote Desktop Services. By default members of the Administrators group have this right. If the group you’re in does not have the right, or if theright has been removed from the Administrators group, you need to be granted the right manually.”

Bu hatanın çözümüyse şu şekilde:

Allow log on through Remote Desktop Services kuralının içerisinde muhtemelen sadece Administrators grubu vardır. Bu nedenle de Administrators grubuna dahil olmayan kullanıcılar bağlantısı sağladıklarında yukarıdaki hatayı alabilirler. Tanımların yukarıdaki gibi olması gerekmektedir.

Umarım zamandan kazanmanızı sağlar.

]]>
SQL – Tüm SQL Tablolarının Boyutunu ve Satır Sayısını Bulma https://exevolium.com/how-to-find-all-sql-table-size-sql-tablo-boyutunu-bulma/ Thu, 15 Nov 2018 11:29:59 +0000 http://exevolium.com/?p=1320 Merhaba,

Bu sayfa ve içeriği tamamıyla geriye dönük not olması adına oluşturduğum bir sayfadır.
Bu sayfaya ek olarak SQL yönetimi noktasında derlediğim veya internetten araştırıp bulduğum sorguları ekleyeceğim.
Çoğu zaman gerçekten analiz konusunda büyük fayda ve kolaylık sağlıyor. Aşağıdak işlem için öncelikle database seçmelisiniz.
Database seçtikten sonra da aşağıdaki T-SQL sorgusunu çalıştırmalısınız. Bu işlem de sadece Select işlemi yapıldığı için data değişimi yapılmıyor.

SELECT 
    t.NAME AS TabloAdi,
    s.Name AS SemaAdi,
    p.rows AS SatirSayisi,
    SUM(a.total_pages) * 8 AS ToplamAlanKB, 
    CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS ToplamAlanMB,
    SUM(a.used_pages) * 8 AS KullanilanAlanKB, 
    CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS KullanilanAlanMB, 
    (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS KullanilmayanAlanKB,
    CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS KullanilmayanAlanMB
FROM 
    sys.tables t
INNER JOIN      
    sys.indexes i ON t.OBJECT_ID = i.object_id
INNER JOIN 
    sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id
INNER JOIN 
    sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN 
    sys.schemas s ON t.schema_id = s.schema_id
WHERE 
    t.NAME NOT LIKE 'dt%' 
    AND t.is_ms_shipped = 0
    AND i.OBJECT_ID > 255 
GROUP BY 
    t.Name, s.Name, p.Rows
ORDER BY 
    t.Name

Eğer truncate etmeniz gereken bir tablo varsa da aşağıdaki T-SQL sorgusunu çalıştırabilirsiniz.

truncate table tablo_adi

Umarım zamandan kazanmanızı sağlar.

]]>
IIS Üzerinde SSL İşlemleri (Export/Import) https://exevolium.com/iis-to-iis-ssl-export-import-islemleri/ Wed, 03 Oct 2018 10:21:22 +0000 http://exevolium.com/?p=1267 Merhaba,

Sunucu geçişlerinde karşılaşılan bir problem olan SSL geçişinde yardımcı ve Türkçe içerik olması adına bu makaleyi yazıyorum. Bu makale, IIS üzerinde bulunan bir SSL’in, başka bir IIS yapısına import edilmesini anlatmaktadır. Farklı platformda (Linux -Apache veya Nginx için-) SSL’i import edebilmeniz için private keye de ihtiyacınız var ancak bu başka bir makalenin konusu. 🙂

Öncelikle çalışan sitenizde SSL varsa yeniden SSL almanıza gerek yok. Dolar kurunu da düşünürsek gereksiz maliyet yaratacaktır. SSL taşıması yapmak için, öncelikle sitenizin çalıştığı sunucuya bağlanıp IIS’i açmalısınız. IIS’i açtığınızda sunucu adına tıklayın ve sağ framede Server Certificates’e tıklayın.

Sonraki sekmede sertifikanızı seçin ve sağ framede açılan Export butonuna tıklayın.

Bu alanda size export ettiğiniz sertifikayı nereye ve hangi isimle export etmek istediğinizi soracaktır. (1’nci alan) Diğer iki alanda da bu pfx’in çalınmaması adına IIS şifre girmenizi isteyecektir. 1234 demeniz bile yeterlidir.

Export to: dediğiniz alanda işlem sonunda dosyayı görebilirsiniz. Buraya kadar ki kısım IIS üzerinde bulunan SSL’i export etmek üzerineydi. Şimdi ki kısımda yeni sunucunuzda bu SSL’i import etmek üzerinedir. Şimdi yeni sunucunuza login olup, IIS’i açın ve yine Server Certificates kısmına gelin. Sağ tarafta açılan framede, “Complete Certificate Request…” diye bir link göreceksiniz. Ona tıklayın ve size aşağıdaki gibi bir pencere açacaktır. Görselde belirttiğim şekilde işlemi gerçekleştirin. Önemli bir detay var: Eğer SSL’i bir subdomain için aldıysanız Friendly Name: kısmına subdomain.siteismi.com olarak eklemelisiniz. Ben ana domainim için aldığım için www.vahap.net olarak ekledim. Diğer bir nokta da eğer aldığınız SSL Wildcard SSL ise (subdomainleri de kapsıyorsa) şu şekilde Friendly Name’e eklemelisiniz: *.siteismi.com.
OK dediğinizde muhtemelen size export ederken yazdığınız şifreyi soracak. Onu yazdığınızda SSL’i yeni sunucuya import etmiş olacaksınız.

Bu işlemden sonra IIS üzerinde web sitenizin üzerine gelin ve sağ frame üzerinde Bindings…’e tıklayın.

Aşağıdaki gibi bir ekran ile karşılaşacaksınız.

Yukarıdaki adımda Require Server Name Indication seçeneğinin aktif olduğundan emin olunuz. Bu özellik, tek bir IP üzerinde birden fazla domainde SSL çalıştırmanızı sağlıyor. Bu özellikte IIS 8 veya 8.5 ile geldi. (SNI özelliği diye aratabilirsiniz.) Yukarıdaki görselde www.vahap.net olarak https:// istek gelmesini ayarladım. Bunun birde www’suz gelen isteğini ayarlamalısınız. Adım yine aynıdır, sadece Host Name: kısmına başında www olmadan site ismini yazmalısınız.

ÖNEMLİ: Eğer Wildcard SSL aldıysanız Host Name: kısmına *.siteismi.com yazmanız yeterli. İki kez eklemenize gerek yok. Eğer subdomain için SSL aldıysanız subdomain.siteismi.com olarak tek bir kayıt eklemeniz yeterlidir. Bu haliyle sitenize hem http hem de https istek geldiğinde cevaplamış olacaktır. Sitenize http gelen isteği web.config dosyanızda veya URL Rewrite modülünü yükleyerek doğrudan https’e yönlendirebilirsiniz.

Umarım zamandan kazanmanızı sağlar.

]]>
Microsoft Windows İşletim Sistemi Üzerine OpenSSH Server Kurulumu https://exevolium.com/windows-uzerine-openssh-kurulumu/ Tue, 25 Sep 2018 13:09:43 +0000 http://exevolium.com/?p=1252 Merhaba,

Yazıyı okumadan önce bu detayı bildireyim: “Bu anlatım, Windows sunucunuza ya da bilgisayarınıza SSH ile remote bağlanmanızı sağlayacak yöntemi içerir.”

Geleceğin Opensource üzerinde olduğunu geç de olsa fark eden Microsoft, .Net Core ve Powershell 5 atılımından sonra Windows ortamında ki bilgisayar-sunucunuza SSH bağlantısını desteklemeye başladı. Bu doğrultuda Powershell üzerinde OpenSSH Server kullanabilmek adına aşağıdaki adımları uygulamanız yeterli olacaktır. Öncelikle Github üzerinden bu projeyi indirmeniz gerekiyor.

Windows Powershell OpenSSH Project Release

Bu linkten projenin 64bit versiyonunun .zip dosyasını indirdikten sonra bilgisayarınızda C:\ diski altına OpenSSH adında bir klasör oluşturup, indirdiğiniz dosyayı zipten çıkarın. Daha sonra Powershell’i Administrator yetkisinde çalıştırıp, install-sshd.ps1 olduğu path yoluna kadar inin.

Daha sonra scripti çalıştırın. Başarıyla kurulduktan sonra aşağıdaki çıktıyı almalısınız. Daha sonra aşağıdaki komutu çalıştırıp servislerin durumunu kontrol edin.

get-service *ssh*

Bu işlem sonucunda servisin ve agentın muhtemelen Stop durumda olduğunu göreceksiniz.

Servis ve agentın başlangıcının ayarlanması adına aşağıdaki görselde belirttiğim adımları uygulamalısınız.

Şimdi Windows Firewall veya kullandığınız firewallunuz üzerinde Incoming-Outgoing Traffic için 22 portuna ALL izin vermeniz yeterli olacaktır. Ancak güvenlik adına static IP adresiniz var ise sadece bu IP’nin 22 portuna Incoming traffic’ten eriştirmenizi öneririm.

Umarım zamandan kazanmanızı sağlar.

]]>