Selamlar, bu yazımda Splunk + MCP + Codex: Log Analizinden Android TV Kontrolünü ele aldım. Şimdiden keyifli okumalar. 🙂

1. Giriş

Merkezi log yönetimi ve gözlemlenebilirlik platformları, sistemlerden elde edilen verilerin toplanması, analiz edilmesi ve operasyonel süreçlerde kullanılmasında önemli rol oynamaktadır. Yapay zekâ destekli araçların gelişmesiyle birlikte bu platformlarla etkileşim kurmanın farklı yöntemleri de ortaya çıkmaktadır.

Bu çalışmada Splunk Enterprise, Model Context Protocol (MCP), OpenAI Codex ve Android Debug Bridge (ADB) teknolojilerini bir araya getirerek Android tabanlı bir Smart TV üzerinde izleme, analiz ve kontrol işlemlerinin gerçekleştirilebildiği bir laboratuvar ortamı oluşturdum.

Çalışmanın temel amacı, Android TV üzerinde oluşan sistem kayıtlarının Splunk Enterprise üzerinde merkezi olarak izlenmesi, bu kayıtların MCP aracılığıyla Codex üzerinden sorgulanması ve aynı yapı üzerinden televizyona kontrol komutlarının gönderilebilmesidir.

Geliştirilen mimari sayesinde Codex üzerinden doğal dil kullanılarak Android TV’nin durumu sorgulanabilmekte, Splunk üzerinde bulunan hata kayıtları analiz edilebilmekte ve televizyona kontrol komutları iletilebilmektedir.

Çalışma kapsamında gerçekleştirilen testler sonucunda hem Splunk üzerinden log analizi hem de Android TV üzerinde uzaktan komut çalıştırma işlemleri başarıyla doğrulanmıştır.


2. Kullanılan Teknolojiler

Çalışmada aşağıdaki teknolojiler kullanılmıştır:

TeknolojiKullanım amacı
Splunk EnterpriseAndroid TV sistem ve hata kayıtlarının merkezi olarak toplanması ve analiz edilmesi
Model Context Protocol (MCP)Yapay zekâ aracı ile harici sistemler arasında standartlaştırılmış araç iletişimi
OpenAI CodexDoğal dil komutlarının yorumlanması ve MCP araçlarının çalıştırılması
Python / FastMCPMCP sunucusunun ve araçlarının geliştirilmesi
Android Debug Bridge (ADB)Android TV üzerinde durum sorgulama ve kontrol komutlarının yürütülmesi
Windows PowerShellADB Gateway işlemlerinin gerçekleştirilmesi
SSHCodex, Linux MCP sunucusu ve Windows Gateway arasındaki güvenli iletişim
Splunk REST APISplunk üzerindeki kayıtların MCP araçları tarafından sorgulanması

Bu teknolojilerin birlikte kullanılmasıyla log analizi ve cihaz kontrolünün aynı etkileşim ortamında gerçekleştirilmesi hedeflenmiştir.

3. Laboratuvar Ortamı ve Mimari Tasarım

Çalışma, fiziksel bir Android TV ve farklı görevler için yapılandırılmış sunuculardan oluşan laboratuvar ortamında gerçekleştirilmiştir.

3.1. Laboratuvar ortamı

BileşenOrtamGörev
Splunk EnterpriseLinux, standaloneLog yönetimi ve analiz
MCP ServerLinuxMCP araçlarını sunma ve istekleri yönlendirme
Windows GatewayWindowsADB üzerinden Android TV’ye komut iletme
OpenAI CodexWindowsKullanıcı isteklerini MCP araçlarıyla gerçekleştirme
ONVO Android TVAndroid 14İzlenen ve kontrol edilen cihaz

Splunk Enterprise üzerinde android_tv isimli ayrı bir indeks kullanılmıştır. Android TV’den elde edilen logcat kayıtları bu indeks üzerinde saklanmıştır.

MCP sunucusu ise Splunk REST API ile iletişim kuran ve Windows Gateway üzerinden Android TV’ye komut gönderebilen merkezi bir entegrasyon katmanı olarak tasarlanmıştır.

3.2. Mimari çalışma prensibi

Mimari iki temel iş akışından oluşmaktadır.

Log analizi akışı:

  1. Android TV üzerinde oluşan sistem kayıtları ADB/logcat aracılığıyla elde edilir.
  2. Kayıtlar Splunk Enterprise üzerindeki android_tv indeksinde tutulur.
  3. Codex tarafından başlatılan MCP aracı, Splunk REST API üzerinden ilgili kayıtları sorgular.
  4. Sorgu sonuçları Codex’e iletilerek kullanıcıya analiz edilmiş biçimde sunulur.

Android TV kontrol akışı:

  1. Kullanıcı Codex üzerinden doğal dilde kontrol isteği gönderir.
  2. Codex, ilgili MCP aracını çağırır.
  3. MCP sunucusu Windows Gateway için bir görev oluşturur.
  4. Windows Gateway, görevi alarak ADB üzerinden Android TV’ye iletir.
  5. Komut sonucu MCP görev kuyruğuna kaydedilir ve Codex tarafından sorgulanabilir.

Bu yaklaşımda Splunk analiz katmanını, MCP entegrasyon katmanını ve ADB Gateway ise cihaz kontrol katmanını oluşturmaktadır.


4. Android TV Loglarının Splunk Üzerinden İzlenmesi

Android işletim sisteminde uygulama ve sistem bileşenleri tarafından üretilen kayıtlar logcat aracılığıyla incelenebilmektedir.

Bu kayıtlar uygulama davranışları, sistem olayları, hata mesajları ve farklı Android bileşenlerine ilişkin teknik bilgiler içerebilir.

Laboratuvar ortamında ONVO Android TV üzerinde ADB bağlantısı kurularak logcat kayıtları elde edilmiş ve Splunk Enterprise üzerinde merkezi olarak analiz edilebilecek hâle getirilmiştir.

4.1. Android TV bağlantısının doğrulanması

Windows ortamında ADB kullanılarak bağlı cihazlar aşağıdaki komutla kontrol edilmiştir.

.\adb.exe devices -l

Cihazın bağlantı durumunun device olarak görünmesi, ADB üzerinden komut gönderilebildiğini göstermektedir.

4.2. Android sistem kayıtlarının incelenmesi

Android TV üzerinde oluşan kayıtlar aşağıdaki komutla incelenebilir:

adb logcat

Yalnızca hata seviyesindeki kayıtlar incelenmek istendiğinde:

adb logcat "*:E"

Logcat verilerinin merkezi olarak analiz edilmesi, kayıtların tek tek terminal üzerinden incelenmesine kıyasla arama, filtreleme ve geçmişe yönelik analiz imkânı sağlamaktadır.

4.3. Splunk üzerinde logların sorgulanması

Splunk Enterprise üzerinde Android TV kayıtları için android_tv indeksi kullanılmıştır.

Temel sorgu:

index=android_tv

Belirli bir cihaza ait kayıtları filtrelemek için:

index=android_tv host="ONVO-TV"

Hata seviyesi üzerinden analiz gerçekleştirmek için:

index=android_tv host="ONVO-TV" tv_level="E"
| stats count by tv_component
| sort - count

Bu sorgu, Android TV üzerinde hata üreten bileşenleri ve her bileşene ait kayıt sayılarını görüntülemek amacıyla kullanılabilir.


5. Python ile MCP Sunucusunun Geliştirilmesi

Model Context Protocol, yapay zekâ uygulamalarının harici araçlar ve veri kaynaklarıyla standart bir arayüz üzerinden iletişim kurmasını sağlayan bir protokoldür.

Bu çalışmada MCP katmanı Python kullanılarak geliştirilmiştir.

MCP sunucusu üzerinde iki temel yetenek oluşturulmuştur:

  • Splunk REST API üzerinden kayıtların sorgulanması ve analiz edilmesi
  • Windows Gateway aracılığıyla Android TV’ye kontrol komutlarının gönderilmesi

5.1. Proje yapısı

Laboratuvar ortamında kullanılan temel proje bileşenleri aşağıdaki şekilde düzenlenmiştir:

smart-tv-mcp/
├── server.py
├── splunk_client.py
├── gateway_queue.py
├── certs/
│   └── lab-ca.crt
└── gateway_queue/
    ├── pending/
    ├── processing/
    └── completed/

Dosyaların görevleri:

server.py: MCP sunucusunu başlatır ve Codex tarafından kullanılabilen araçları tanımlar.

splunk_client.py: Splunk REST API sorgularını gerçekleştirir.

gateway_queue.py: Android TV’ye gönderilecek komutların oluşturulması, işlenmesi ve sonuçlarının saklanmasını sağlar.

certs/lab-ca.crt: Splunk REST API bağlantısında TLS sertifika doğrulaması için kullanılır.

5.2. MCP sunucusunun oluşturulması

FastMCP kullanılarak geliştirilen yapının temel mantığı aşağıdaki örnek üzerinden gösterilebilir:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("Smart TV & Splunk MCP")

@mcp.tool()
def get_server_status():
    return {
        "status": "running",
        "service": "Smart TV & Splunk MCP"
    }

if __name__ == "__main__":
    mcp.run()

Bu örnek, MCP sunucusu üzerinde bir aracın nasıl tanımlandığını göstermektedir. Laboratuvar ortamında kullanılan gerçek sunucuda ek olarak Splunk analiz ve Android TV kontrol araçları bulunmaktadır.

5.3. Geliştirilen MCP araçları

Çalışma kapsamında toplam 11 MCP aracı oluşturulmuştur.

MCP aracıGörevi
get_server_statusLinux MCP sunucusunun durumunu getirir
get_tv_errorsSplunk üzerinden Android TV hata kayıtlarını sorgular
get_tv_error_summaryHata türlerini ve tekrar sayılarını analiz eder
get_tv_statusAndroid TV durum sorgulama görevini oluşturur
get_tv_job_resultOluşturulan görevin sonucunu getirir
press_homeAndroid TV ana ekran komutunu gönderir
open_youtubeYouTube uygulamasını açar
volume_upSes seviyesini artırır
volume_downSes seviyesini azaltır
play_pauseMedya oynatımını kontrol eder
play_youtube_videoBelirtilen YouTube videosunu açmak için görev oluşturur

Bu araçlar sayesinde Codex, cihaz kontrolü veya log analizi için doğrudan ADB ve Splunk komutlarını bilmek zorunda kalmadan ilgili işlemleri gerçekleştirebilmektedir.


6. Windows ADB Gateway ve Görev Kuyruğu

Android TV’nin bulunduğu ağ ile Linux MCP sunucusunun bulunduğu ortam arasındaki iletişimi yönetmek için Windows üzerinde bir ADB Gateway geliştirilmiştir.

Gateway, Android TV ile doğrudan ADB iletişimi kurabilen Windows sisteminde çalışmaktadır.

Bu mimaride MCP sunucusu Android TV’ye doğrudan ADB bağlantısı açmak yerine görev kuyruğu kullanmaktadır.

6.1. Görev kuyruğu mekanizması

Bir kontrol komutu gönderildiğinde görev aşağıdaki durumlardan geçmektedir:

pending → processing → completed

pending: Görev oluşturulmuştur ve Gateway tarafından alınmayı beklemektedir.

processing: Gateway görevi almış ve ilgili ADB işlemini gerçekleştirmektedir.

completed: İşlem tamamlanmış ve sonuç kaydedilmiştir.

Bu mekanizma, kontrol komutlarının oluşturulması ile yürütülmesini birbirinden ayırmaktadır.

Ayrıca her görev için benzersiz bir job_id üretilerek işlemin sonucu daha sonra sorgulanabilmektedir.

6.2. Android TV kontrol komutları

Android TV’nin ana ekranına dönmek için ADB üzerinde aşağıdaki komut kullanılabilir:

adb shell input keyevent KEYCODE_HOME

Benzer şekilde ses seviyesini artırmak için:

adb shell input keyevent KEYCODE_VOLUME_UP

Geliştirilen MCP yapısında bu komutlar, kullanıcı tarafından doğrudan çalıştırılmak yerine ilgili MCP araçları aracılığıyla Windows Gateway’e iletilmektedir.


7. OpenAI Codex ile MCP Entegrasyonu

Geliştirilen MCP sunucusunun doğal dil üzerinden kullanılabilmesi için OpenAI Codex ile entegrasyonu gerçekleştirilmiştir.

Codex, Linux üzerinde çalışan MCP sunucusuna SSH bağlantısı üzerinden erişmektedir.

Bu yapıda MCP iletişimi stdio üzerinden sağlanmaktadır.

7.1. Codex MCP yapılandırması

Codex yapılandırma dosyasında MCP sunucusu aşağıdaki yapıya benzer şekilde tanımlanmıştır:

[mcp_servers.smart-tv]
command = "ssh"
args = [
    "-T",
    "-i", "C:/PATH/TO/SSH_KEY",
    "-o", "IdentitiesOnly=yes",
    "-o", "BatchMode=yes",
    "splunk@MCP_SERVER_IP",
    "cd /home/splunk/smart-tv-mcp && exec .venv/bin/python server.py"
]

startup_timeout_sec = 30
tool_timeout_sec = 90

Bu yapılandırma sayesinde Codex, SSH üzerinden Linux MCP sunucusunu başlatabilmekte ve sunucuda tanımlanan araçları kullanabilmektedir.

7.2. MCP araçlarının doğrulanması

Entegrasyonun ardından Codex üzerinden get_server_status aracı çağrılmıştır.

Gerçekleştirilen testte Linux MCP sunucusunun çalıştığı doğrulanmış ve sistem bilgileri başarıyla alınmıştır.


8. Test Senaryoları ve Elde Edilen Sonuçlar

Geliştirilen mimarinin doğrulanması amacıyla Splunk analizi ve Android TV kontrolü olmak üzere farklı test senaryoları gerçekleştirilmiştir.

8.1. Test 1 – Splunk üzerinden Android TV hata analizi

İlk testte Codex üzerinden get_tv_error_summary aracı çağrılmıştır.

Kullanılan parametreler:

minutes = 10080
limit = 10

Bu sorguyla Android TV’nin son yedi günlük hata kayıtları incelenmiştir.

Test sonucunda döndürülen ilk 10 hata grubunda toplam 671 kayıt tespit edilmiştir.

En sık karşılaşılan beş hata grubu:

BileşenTekrar sayısı
MI_PQ612
cqmt44
TraceManagerImpl – vpn3
TraceManagerImpl – broadcast2
mtk_and2

En yoğun hata grubunu oluşturan MI_PQ bileşeninde aşağıdaki hata mesajı gözlemlenmiştir:

<ERR>_MI_PQ_CalculateSubwinCrop[6050]: invalid input

Bu hata yaklaşık 30 saniyelik bir zaman aralığında 612 kez tekrarlanmıştır.

Mesaj, görüntü işleme sırasında kullanılan kırpma veya boyutlandırma parametreleriyle ilgili bir soruna işaret ediyor olabilir. Ancak yalnızca bu kayıt üzerinden kesin kök neden belirlenememektedir.

Bu test, Splunk üzerinde tutulan kayıtların MCP aracılığıyla sorgulanabildiğini ve Codex tarafından analiz edilerek anlamlı bir rapora dönüştürülebildiğini göstermiştir.


8.2. Test 2 – Android TV durumunun sorgulanması

İkinci testte Android TV’nin bağlantı ve çalışma durumu Codex üzerinden sorgulanmıştır.

Bu işlem için get_tv_status aracı kullanılmıştır.

Oluşturulan görev, Windows Gateway tarafından işlendikten sonra get_tv_job_result aracıyla kontrol edilmiştir.

Görev sonucu:

status: completed
result: success

Bu sonuç, Android TV’nin Gateway üzerinden erişilebilir olduğunu ve durum sorgulama işleminin tamamlandığını doğrulamıştır.

8.3. Test 3 – Android TV ana ekran kontrolü

Üçüncü testte Codex üzerinden Android TV’nin ana ekranına dönmesi istenmiştir.

Bu işlem için press_home aracı çağrılmıştır.

MCP sunucusu tarafından oluşturulan görev Windows Gateway’e aktarılmış ve ilgili ADB komutu Android TV üzerinde çalıştırılmıştır.

Ardından get_tv_job_result aracılığıyla görev durumu kontrol edilmiştir.

Sonuç:

action: press_home
status: completed
result: success

Bu test, Codex üzerinden verilen doğal dil komutunun MCP ve Windows Gateway katmanlarından geçerek gerçek Android TV üzerinde uygulanabildiğini göstermiştir.

8.4. Test sonuçlarının değerlendirilmesi

Test senaryosuSonuç
Linux MCP sunucu durumunun sorgulanmasıBaşarılı
Splunk REST API bağlantısıBaşarılı
Son yedi günlük Android TV hata analiziBaşarılı
Android TV cihaz durumunun sorgulanmasıBaşarılı
Android TV Home komutunun çalıştırılmasıBaşarılı
Gateway görev sonucunun doğrulanmasıBaşarılı

Test sonuçları, geliştirilen mimarinin temel izleme, analiz ve kontrol işlevlerini laboratuvar ortamında gerçekleştirebildiğini göstermektedir.


9. Karşılaşılan Sorunlar ve Çözümler

Çalışma sırasında bazı bağlantı ve yapılandırma sorunlarıyla karşılaşılmıştır.

Karşılaşılan sorunUygulanan çözüm
Splunk REST API üzerinde 401 Unauthorized hatasıREST API kimlik bilgileri doğrulanarak MCP sunucusundaki parola yapılandırması güncellenmiştir.
Codex MCP çağrılarında Transport closed hatasıSSH/MCP bağlantısı kontrol edilmiş ve Codex oturumu yeniden başlatılarak sorun giderilmiştir.
Splunk sorgularında lookup uyarılarıYüklenemeyen lookup tanımları tespit edilmiş ve sorgu sonuçları bu uyarılar dikkate alınarak değerlendirilmiştir.

Bu sorunlar giderildikten sonra temel testler başarıyla tamamlanmıştır.

10. Güvenlik Değerlendirmesi

MCP sunucularının harici sistemlerle iletişim kurabilmesi ve bazı durumlarda komut çalıştırabilmesi nedeniyle güvenlik kontrolleri önem taşımaktadır.

Bu çalışma kapsamında iletişim için SSH kullanılmış, Splunk REST API bağlantısında TLS sertifika doğrulaması uygulanmış ve Android TV kontrol işlemleri tanımlı MCP araçları üzerinden gerçekleştirilmiştir.

Geliştirilen görev kuyruğu yapısı, Android TV üzerinde çalıştırılabilecek işlemleri belirli komutlarla sınırlandırmaya imkân tanımaktadır.

Laboratuvar ortamında Splunk erişimi için admin hesabı kullanılmıştır. Ancak üretim ortamlarında ayrı bir servis hesabı oluşturulması, yalnızca ihtiyaç duyulan yetkilerin tanımlanması ve kimlik bilgilerinin güvenli bir şekilde yönetilmesi önerilmektedir.

Ayrıca kontrol komutlarının kayıt altına alınması, görev sonuçlarının izlenmesi ve erişim yetkilerinin sınırlandırılması üretim ortamları açısından değerlendirilmesi gereken başlıklardır.

11. Sonuç

Bu çalışmada Splunk Enterprise, Model Context Protocol, OpenAI Codex ve Android Debug Bridge teknolojileri bir araya getirilerek Android TV üzerinde hem izleme hem de kontrol işlemlerinin gerçekleştirilebildiği bir laboratuvar ortamı oluşturulmuştur.

Geliştirilen MCP sunucusu sayesinde Splunk üzerindeki log kayıtları Codex üzerinden doğal dil kullanılarak sorgulanmış, elde edilen hata kayıtları analiz edilmiş ve Android TV’ye gönderilen kontrol komutlarının başarıyla tamamlandığı doğrulanmıştır.

Özellikle Android TV üzerinde tespit edilen hata kayıtlarının Splunk üzerinden analiz edilmesi ve aynı Codex oturumu içerisinde cihazın kontrol edilebilmesi, MCP tabanlı entegrasyonların operasyonel kullanım potansiyelini ortaya koymaktadır.

Çalışma, log yönetimi platformlarının yalnızca veri görüntüleme amacıyla değil, yapay zekâ destekli analiz ve kontrollü otomasyon senaryolarında da kullanılabileceğini göstermektedir.

Gelecekte bu mimarinin alarm bazlı otomatik analiz, daha ayrıntılı cihaz sağlık kontrolleri ve olaylara göre tetiklenen aksiyonlarla genişletilmesi mümkündür.

Sonuç olarak gerçekleştirilen PoC, Splunk üzerinde elde edilen verilerin yapay zeka destekli araçlarla analiz edilmesi ve bu analiz ortamından fiziksel bir cihaza kontrollü komut gönderilmesi açısından uygulanabilir bir örnek sunmaktadır.

Bu çalışma, Splunk verilerinin MCP aracılığıyla yapay zekâ destekli araçlara sunulmasının yanı sıra, analiz ve fiziksel cihaz kontrolünün aynı operasyonel iş akışında birleştirilebileceğini göstermektedir.

Share this content:

Bir yanıt yazın

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

Explore More

MITRE ATT&CK Nedir?

Herkese selam! Bu yazımda ele aldığım konu MITRE ATT&CK Nedir? , Keyifli Okumalar 🙂 MITRE ATT&CK, Çelişkili Taktikler, Teknikler ve Ortak Bilgi anlamına gelmektedir. MITRE ATT&CK saldırgan davranışının gözlemlenmesiyle toplanan siber

WAZUH ile WINDOWS’da SFX ARŞİVLERİNİ İZLEME

Herkese selam! Bu yazımda ele aldığım konu Wazuh ile SFX Arşivlerini İzleme , keyifli okumalar.  🙂 Kendiliğinden açılan arşivler (SFX), içlerinde yerleşik bir kod bulunduran sıkıştırılmış veriler içeren yürütülebilir dosyalardır. Genellikle

WAZUH ile SYSMON LOGLARINI GÖRÜNTÜLEME

Herkese selam! Bu yazımda ele aldığım konu WAZUH ile SYSMON LOGLARINI GÖRÜNTÜLEME , Keyifli Okumalar. 🙂 Wazuh hakkında daha önceki yazımda bilgi verip ubuntu üzerinde kurulumunu gerçekleştirmiştim  bu yazıma linkten