InfluxDB Üzerine Grafana Kurulumu yazısında bu altyapıyı CentOS 7 üzerinde sıfırdan nasıl kurduğumuzu anlatmıştım. Bu yazıda ise aynı sistemi EOL durumuna düşmüş CentOS 7’nin Oracle Linux 8.10 yükseltme sürecini ele alıyorum. Bunun yanı sıra, Grafana 8.x güvenlik açıkları da dahil olmak üzere in-place yöntemle gerçekleştirirken karşılaştığımız sorunları ve çözümleri gerçek komut çıktılarıyla aktarıyorum.
Altyapı ve Başlangıç Durumu
Yurt içi ve Avrupa olmak üzere iki farklı coğrafi bölgede toplamda 4 sunucudan oluşan bir monitoring altyapısını yükselttik. Bunun yanı sıra her bölgede bir Grafana sunucusu ve bir InfluxDB sunucusu çalışıyor. Dolayısıyla yükseltme sürecini her iki bölge için ayrı ayrı planladık ve uyguladık.
CentOS 7, Haziran 2024 itibarıyla End of Life durumuna girdi. Güvenlik güncellemesi almayan bu sistemlerde Grafana 8.x için de aktif CVE’ler açıktı. Yükseltme artık ertelenebilir değildi.
Yükseltme Stratejisi
Doğrudan CentOS 7’den Oracle Linux 8’e atlamak mümkün değil. Oracle’ın önerdiği in-place yükseltme iki aşamada gerçekleşiyor:
Grafana tarafında ise 8.2.2 → 13.x doğrudan atlama yapılamaz. Bunun nedeni, major sürümler arasında DB migration’larının zorunlu olmasıdır. Bununla birlikte OS yükseltmesi sırasında Grafana repo aktif olduğundan yükseltme otomatik gerçekleşti ve ardından yalnızca SQLite şema düzeltmesi yapılması yetti. Dolayısıyla ayrı bir adım gerekmedi.
Hazırlık: Backup ve Snapshot
Her sunucu için yükseltme öncesinde üç katmanlı koruma aldık. Öncelikle hypervisor seviyesinde snapshot, ardından uygulama yedekleri ve son olarak InfluxDB portable backup gerçekleştirildi.
Hypervisor Seviyesi Snapshot
VMware üzerinden tüm disk’in anlık görüntüsü. Herhangi bir aşamada sorun çıkarsa tek tıkla geri dönüş imkânı.
InfluxDB Portable Backup
Yaklaşık 155GB veri içeren telegraf database’inin tamamı influxd backup -portable komutuyla alındı. Bu format, olası bir restore senaryosunda farklı bir InfluxDB instance’ına bile aktarılabilir.
Grafana Uygulama Yedeği
grafana.db (SQLite veritabanı) ve grafana.ini (konfigürasyon) manuel olarak yedeklendi. Dashboard, datasource ve alert kurallarının tamamı bu iki dosyada.
CentOS’tan Oracle Linux’a Yükseltme
Oracle’ın centos2ol.sh scripti, CentOS paket depolarını Oracle Linux depoları ile değiştirerek sistemin kimliğini dönüştürüyor. Bunun yanı sıra disk verisine kesinlikle dokunmuyor; yalnızca paket metadata’sı güncelleniyor. Dolayısıyla mevcut veriler ve konfigürasyonlar olduğu gibi korunuyor.
Script başarıyla tamamlansa bile son adımda 3rd party repo GPG hatası nedeniyle hata verebilir. Bu durumda cat /etc/oracle-release ile OS’un zaten Oracle Linux olduğunu doğrulayabilirsiniz. Script’in asıl işi tamamlanmıştır.
Oracle Linux 7.9 → Oracle Linux 8.10
OL7’den OL8’e geçiş için Oracle’ın leapp aracı kullanılıyor. Önce preupgrade ile sistem analizi yapılıyor, sorunlar gideriliyor, ardından upgrade ile yükseltme gerçekleştiriliyor.
Grafana 8.x → 13.x Yükseltmesi
OS yükseltmesi sırasında Grafana repo aktif olduğundan, yükseltme otomatik olarak gerçekleşti. Dolayısıyla ayrı bir müdahaleye gerek kalmadı. Bununla birlikte Grafana 13, SQLite DB şemasında yeni kolonlar bekliyor ve bu nedenle eski DB ile başlayamıyor.
playlist tablosu migration hatası
Grafana 13 başlatıldığında SQL logic error: no such column: p.uid hatası alındı. Çözüm: eksik kolonları manuel olarak eklemek.
OL8 yükseltmesi sonrası bazı sistemlerde Grafana 9.x kurulmuş olabilir (Oracle’ın appstream reposundan). Bu durumda uid kolonunu zaten eklemiş olursunuz. Grafana 13’e yükseltince “duplicate column” hatası alırsınız. Çözüm: uid kolonu olmayan yeni bir tablo oluşturup rename etmek.
InfluxDB Durumu
InfluxDB 1.8.10, 1.x serisinin son kararlı sürümüdür. Bunun yanı sıra OS yükseltmesinden etkilenmeden çalışmaya devam etti. Dolayısıyla herhangi bir uygulama seviyesinde yükseltme yapılmasına gerek kalmadı.
InfluxDB 2.x, Flux query language ve tamamen farklı bir API kullanıyor. Tüm Grafana dashboard’larının ve Telegraf konfigürasyonlarının yeniden yazılmasını gerektiriyor. Bu ayrı bir proje kapsamında değerlendirilmeli.
Karşılaşılan Sorunlar ve Çözümler
Yükseltme sürecinde birkaç tekrarlayan sorunla karşılaştık. Bunları belgelemek sonraki yükseltmeler için büyük zaman tasarrufu sağlıyor.
leapp upgrade sırasında python-six ve sysvinit-tools paketleri OL8 paketleriyle çakışıyordu.
Çözüm: rpm -e --nodeps sysvinit-tools ile kaldır. python-six için ise RPM kaydını kaldır ama six.py dosyasını diskte tut — leapp bu dosyayı çalışmak için kullanıyor.
rpm -e sonrası leapp çalışmıyor: DistributionNotFound: six. Python’un pkg_resources modülü dosya varlığını değil egg-info metadata’sını arıyor.
Çözüm: Manuel olarak egg-info dizini oluştur:
mkdir -p /usr/lib/python2.7/site-packages/six-1.9.0.egg-info cat > /usr/lib/python2.7/site-packages/six-1.9.0.egg-info/PKG-INFO << 'EOF' Metadata-Version: 1.1 Name: six Version: 1.9.0 EOF echo "six" > \ /usr/lib/python2.7/site-packages/six-1.9.0.egg-info/top_level.txt
Avrupa sunucularında leapp, /etc/yum.repos.d/leapp_upgrade_repositories.repo dosyasını arıyordu. Dosya /etc/leapp/files/ altındaydı.
Çözüm: cp /etc/leapp/files/leapp_upgrade_repositories.repo /etc/yum.repos.d/
Repo dosyası mevcut olmasına rağmen ol8_UEKR6 repo’su eksikti. leapp bu repo’yu zorunlu tutuyordu.
Çözüm: Repo dosyasına [ol8_UEKR6] bölümünü manuel ekle ve rpm --import ile Oracle GPG key’i yükle.
OL8 appstream reposunda grafana-9.x paketi mevcut. yum update grafana komutu grafana-selinux bağımlılığı nedeniyle çalışmıyordu.
Çözüm: rpm -e --nodeps grafana-selinux ile kaldır, ardından yükselt.
Avrupa Grafana sunucusunda leapp upgrade sonrası nginx paketi kaybolmuştu. Sadece nginx-filesystem kuruluydu.
Çözüm: yum install -y nginx ile yeniden kur, systemctl enable --now nginx.
Sonuç
Dört sunucuda toplam yaklaşık 8 saat süren çalışmanın sonunda, CentOS Oracle Linux yükseltme süreci başarıyla tamamlandı. Dolayısıyla tüm altyapı, güvenlik açıkları kapatılmış ve uzun vadeli destek garantili bir platforma taşınmış oldu. Bunun yanı sıra tüm servisler eksiksiz ayağa kalktı ve altyapı sorunsuz çalışır hale geldi.
centos2ol scripti güvenilir — GPG hatası ile sonlansa bile OS geçişini tamamlıyor.
leapp, 3rd party paketlere karşı hassas — yükseltme öncesi tüm üçüncü parti repoları devre dışı bırakmak süreci çok daha sorunsuz hale getiriyor.
Grafana SQLite migration hatalarını bilmek kritik — playlist tablosu sorunu Grafana 8→13 yükseltmelerinde tekrar eden bir problem.
Özet
Bu yazıda, CentOS Oracle Linux yükseltme sürecini dört sunucu üzerinde adım adım ele alıyoruz. Öncelikle EOL durumuna düşmüş CentOS 7 sistemlerini centos2ol scripti ile Oracle Linux 7.9’a taşıdık. Ardından leapp upgrade aracı ile Oracle Linux 8.10’a yükselttik. Bunun yanı sıra, Grafana 8.x sürümünü 13.0.1’e güncelledik ve InfluxDB 1.8.10’un 1.x serisinin son kararlı sürümü olduğunu doğruladık. Sonuç olarak tüm sistemler sorunsuz çalışır hale geldi. Bununla birlikte süreç boyunca python-six çakışması, leapp repo hataları ve Grafana SQLite migration sorunları gibi engellerle karşılaştık; bu yazıda her birini nasıl aştığımızı da paylaşıyoruz.
Umarım bu rehber, CentOS Oracle Linux yükseltme konusunda sizlere yol gösterici olmuştur. Bunun yanı sıra, karşılaştığınız sorunlarda bu yazıyı referans olarak kullanabilirsiniz. Sonuç olarak sorularınız veya eklemek istedikleriniz varsa iletişim bölümünde buluşalım. Bir sonraki makalede tekrar görüşmek dileğiyle!


