Do not ever assume

#sysadminday


Happy SysAdmin Day!
Two days ago was #sysadminday; System Administrator Appreciation day and Murphy was making sneaky and hideous plans for us.

And please don't tell me Murphy is not to be blamed but the Cosmos, or the God or another supernatural power is. Rule is named after him and he will have to cope with the accusations ;)

#symptoms 


It was a slow Friday and it all started after I went to the cafeteria to have some tea with friends. And I was not aware of any Murphy activity. After some time I was coming down stairs to my workstation I saw our DBA has a cluster of people around her.

Oh this is never good. 

Our ERP system was flaky and the culprit seemed to be the PostgreSql cluster. Gulçin was working on it and it has been a while since the issues has begun. But she could not pinpoint the cause.

Here I need to tell you that our home-baked ERP system is the heart of our operations. Every department, need to use some parts of it to run the company. It is the start of 5 days Ramadan festive vacation thus every other part of the company is preparing for the upcoming days, - every other department because hey we are sysadmins, if we are not working then we have done our jobs well - . This day ERP was a bit more important than usual. The issue must be solved at once. 

At this point my colleagues decided the issue may be the master postgres server and it was time to retire it. Promotion out of thin air for the long waiting slave.

Everything would be ok now except the issue reappeared in no time. It is not a db problem. It seems to be a more complex issue and a broader and fresh look was needed. So it was time for me to step in.

After talking with my colleagues about the issue and learning the symptoms. Something was not adding up. Systems were steady in cpu usage, our SAN was not out of breath, actually our DB showed strangely low write activity, network seemed to be not saturated or not showing any latency. There were little or no system log on the DB. load was high but not because cpu or disk IO? What the heck?

Only strange log was some tasks were hung more than 120 seconds and terminated. All related to postgresql.

#theinvestigation

The Team

Then I started to investigate.

I saw many "idle in transaction" postgres processes. I binded some of them with strace and see that they were waiting for data from a file descriptor. With the help of lsof and /proc filesystem, I found out that the fds belonged to our client pgbouncer's network sockets. So I opened another terminal tab and sshed into our client apps and straced into the counterpart processes. Strange thing is they seemed to be stalled on waiting data from PostgreSQL.

A race condition or something? Why would each part waited the other hand? I was clueless at this point.

At this time my colleagues was trying brute force strategies, Closing different parts of our stack to see effects. Was it our cronjobs? Celery tasks? Web apps? But nothing was helping.

I needed a break at this point thus I diverted my efforts to another but seemingly unrelated issue we were having. Sudo was responding very late. Our systems all connected to our Active Directory LDAP servers and sudo was no exception. Most of the time late sudo is caused by unresponsive dns servers, or in sudo-ldap situations ldap connection issues. But neither were in guilt this time.

Still I was not ready for facing the gruesome monster we had so I defaulted to my swiss army knife, strace to look more into this sudo issue. By the way it was intriguing. I was assuming it was because dns or ldap connection or PostgreSql was having locks on the cpu so sudo was not responding. Could the two issues be related? Yes intriguing.

Here I will give you a 2¢. Have you ever tried stracing sudo? If you are not root, sudo would bulk out because it is lacking setuid. strace is not setuid thus setuid on the sudo binary is not elevated to execed sudo. Easiest solution is to run strace via root user to strace sudo.

Strace shown that sudo was waiting on /dev/log a worrisome and noticeable  time, in the seconds magnitude.

Syslog is important
Then I had the moment. The moment where you solve every issue at once and feel lightening. Everything was in place now. Everything adding up.

It was logstash, no to be more specific it was Elastic Search. We have just begun collecting syslogs to a central server. And it was not responding in time because of failed elastic search shards.

After I fixed elastic search and restarted rsyslog instances, everything began to work flawlessly. Sure we had degraded database and elastic clusters but ERP was OK for now.
 

#theverdict

 

I was assuming many things that led us to this situation. After I built central logging with logstash, the single node elastic search cluster failed once and I thought it would hold till we solve our storage problem to introduce more nodes and would not affect anything even if it failed. I was dead wrong.

  • I assumed local syslog would never block. -- wrong
  • I assumed seemingly remote and unrelated systems would not affect each other. ElasticSearch was too remote, seemed innocent and never was brought up in the investigation.
  • I assumed I had time to add Elastic Search nodes.
  • I assumed late responding sudo was an unrelated issue.
  • I assumed sudo was late because of ldap or dns issues or byproduct of the the high load of the system.
  • We assumed the culprit was old master PostgreSql server.
  • I assumed that slow friday would end slow like it started.
 
I learned for the thousandth time to "Never assume". I'm a fast learner but I am also fast forgetting :)

27 Temmuz 2014

İnterneti Yasaklamanın Dayanılmaz Cazibesi

Bu yazı ülkemizdeki İnternet yasaklarının kısa tarihinin bireysel bir değerlendirmesidir.

Ülkemizde İnternet 12 nisan 1993’de üniversitelerin önerdiği DPT’nin finansını sağladığı tr-net projesi olarak başladı. Türk Telekom ve genel olarak devlet İnternetin pek farkında değildi. İlk yıllar büyük kurumlar, tek kişilik hesab ile yetiniyordu. 1995’e gelince, bir yandan özel sektör ilgilenmeye başlamıştı, öte yandan devlet internetin farkına vardı. Ankara’da yapılan bir toplantıda interneti kısıtlamak/kapatmak fikri tartışıldı. Ama, o toplantıda internetin olumlu olduğuna devlet ikna edildi.

1995 yılında Turnet ihalesi yapıldı, 1996 sonbaharında çalışmaya başladı. 1999-2000 de TTnet calışmaya başladı. 2000 yılında bir genç kızımız satanistlerin etkisiyle intihar etti. Zamanın Milli Eğitim Bakanı “İnternet’den evlere lağım akıyor” dedi. Toplum İnterneti kapatmayı tartıştı. İnterneti savununlar “Trafik kazaları nedeniyle yolları trafiğe kapatmıyoruz”, “Bıçakla insan yaralanabilir ama bıçağı yasaklamıyıroz” örneklerini veriyordu.

RTÜK Tokadı

İnternet üzerine bir sonraki saldırı RTÜK yasası TBMM de görüşülürken geldi. İnternet Medyası oluşmaya ve muhalefet etmeye başlamıştı. Anayasa komisyonundaki görüşmeler sırasında İnterneti ilgilendiren, endişe verici şu 2 ifade vardı. RTÜK yasası taslağındaki “Her türlü teknoloji ile ve her tür iletişim ortamında yapılacak yayın ve hizmetlerin usul ve esasları … RTÜK tarafından denetlenir” ve basın yasasına eklenmek istenilen “ Bu kanun hükümleri bilişim teknolojileri ve internet ortamında sayfa açılması veya elektronik gazete, elektronik bülten vb. suretiyle yayınlanan her türlü yazı, resim, işaret, sesli veya sessiz görüntü, ileti ve benzerleri hakkında da uygulanır.” Bu en basitinden “İnternetde basın kanuna tabidir” anlamında idi. O an TBMM de TBD öncülüğünde kurulan Bilgi Grubu vardı. Bilgi Grubu ve Bilişim STK’larına hiç bir görüş sorma gereği duymadan, madde taslağa ekledi. İnternet camiası bunun ne anlama geldiğini geç farketti. Basın kanuna bağlı yayınlar için, i) izin almak, en azından yayına ilişkin bildirimde bulunmak, ii) her nüshanın 2 kopyasının Cumhuriyet Savcılığına iletmek gerekiyor. Bu farkedilince kıyamet koptu. Neyin kapsam içinde olacağı açık değildi: e-mektup, chat/ irc, forum ve e-posta listelerde, blog ve weblerde yazılanlar ve ucu açık benzerleri. O zaman sosyal ağlar henüz yeteri kadar gelişmemişti. Her ileti, her mesajı, her web sayfası değişikliğini savcılığına nasıl iletecektiniz ? Savcılığında buna uygun bir altyapısı olmadığı da açıktı. İnternet camiasının isyan etmesi sonucunda basın yasası kısmı basitleştirildi, sadece hakaretle ilgili kısım kaldı. Yasa Cumhurbaşkanınca meclise bir daha görüşmek üzere geri gönderildi, 1 yıl sonra aynen geçirildi. Basın kanuna eklenen madde ise 59. Hükümetçe kaldırıldı. Bu maddeden sadece 1 mahkumiyet oldu. Ama, 2 yıl İnternet camiası bu yasayla meşgul oldu. Ama RTÜK’le ilgili madde duruyor. RTÜK İnternet üzerindeki radyo-TV yayınları izlemeye ve kaydetmeye devam ediyor.

Fiili Yasaklar Başlıyor!

2001-2002 yıllarında Askeriyedeki yolsuzlukları açıklama iddiasıyla yolsuzluk.com webi ortaya çıktı. Türk Hukuk sisteminde bir webi kapatma, erişime engelleme için bir düzenleme yoktu. Gerçi 1991’te Fransız ceza hukukuna giren Bilişim Suçları mevzuatı, Sulhi Dönmezer hocanın inisiyatifiyle Ceza Yasasına 525. madde olarak girmişti. Ama, bu bilişim sistemine girme, verileri değiştirme, zarar verme gibi konuları kapsıyordu. Henüz, İnternet Çağına ayak uydurmamıştı. Bilgisayar yerine de “verileri otomatik işleme tabi tutan makine ” ifadesi kullanılmıştı. ATM makineleri, cine5 modemleri, telefon sistemlerine ilişkin suçlar bu madde kapsamında yargılanıyordu. Yolsuzluk.com Genel Kurmay mahkemesinin kararı ile yasaklandı. O yıllarda webteki bir şikayet üzerine web hizmeti veren servis sağlayıcı şirketlerin genel müdürlerinin apar topar gözaltına alındığı oluyordu. 2004 Ceza Yasasında Bilişim Suçları konusunda oldukca kapsamlı bir düzenleme yapıldı. Türkiye Siber Suç Sözleşmesi çalışmalarına katılmış, ama bazı çekincelerle imzalamaktan kaçınmıştı. Bu çekinceleri ve gerekçesi ise kamuoyuna açıklanmadı. (Uzun yıllar sonra Sözleşmeyi imzaladık ama, sözleşme 2 yıl kadar mecliste beklediten sonra twitter yasağı sonrasında muhalefetin önçülüğünde onaylandı.) Ceza yasası sırasında Bilişim STK’ları olarak ilgili maddeler üzerinde çalıştık, ve TBMM deki ilgili komisyona ilettik. Önerimizin bazı kısımları kabul görmedi, ama bunları tartışmaya fırsat bulmadan taslak yasalaştı. Daha sonra CMUK – Ceza Mahkemeleri Usul Kanunu gündeme geldi, ve jet hızıyla yasalaştı. Bizim STK’lar olarak bir öneri götürme şansımız bile olmadı. Adalet Bakanlığı İnternete ilişkin düzenleme gereğini hissetti ve bir “İnternet Yasası” hazırlamak istedi. Bu amaçla, bir Komisyon kurmaya girişti. Ama, ilk yıl bu komisyon çalışmaya başlamadı. İkinci yıl yeniden bir komisyon kuruldu. Komisyon Başkanı bir Bilgisayar Mühendisliği hocası oldu. Üniversitelerin Hukuk Fakültelerinden uzmanlar, güvenlik kuvvetleri temsilcileri, bakanlık temsilcileri ağırlıklı bir komisyon oluşturuldu. Özel sektör ve Sivil Toplum temsilcileri yok denecek kadar azdı. Servis sağlayıcıları temsilcisi ısrarlar üzerine son dönemde komisyona katıldı. “Bilişim Ağı Hizmetlerinin Düzenlenmesi ve Bilişim Suçları Kanun Tasarısı” hazırlandı, kamuoyuna sunuldu, gelen öneriler büyük ölçüde değerlendirildi. Üzerinde çalışılması gereken az bir nokta kalmıştı.

Sansür Yasası 5651 Şapkadan Çıkıyor!

2006 sonbaharında Emniyet teşkilatında ilk “Bilişim Dairesi” İstanbulda açıldı. Daha önce Bilişim ekipleri Kaçakçılık Dairesi içinde idi. İstanbul Bilişim Dairesi elindeki tüm birikmiş cocuk pornosu dosyalarını basına servis etti. Basınımız her zamanki gibi polisin sunduğu dosyaları olduğu gibi yayınlandı. Ülkemizde ciddi bir çocuk pornosu salgını varmış algısı yaratıldı. Bu arada bir kaç tane çocuk taciz olayı da yaşandı. Başbakan bu sorunun çözülmesi talimatını verdi. Bu arada kamuoyunu hazırlamak amacıyla Ankara’da bir “Temiz İnternet” etkinliği yapıldı. Etkinliğin logosu çamaşır ipine asılmış 3 tane W harfi idi. Yıkanmış temizlenmiş İnterneti temsil ediyordu. Adalet Bakanlığı tasarısı kesip biçilerek, daha dar kapsamlı bir Sansür Yasası hedeflendi. Adalet Bakanlığı ve Bakanlık taslağını hazırlayan komisyon deve dışı bırakıldı, Ulaştırma Bakanlığı, esas olarak “zararlı “ içeriğe erişimi engelleyen bir taslak hazırladı. Söylem “Kirli Bilgiyi temizleyip öyle sunmaktı”. Taslak kamuoyu önünde tartışılmadan Meclise geldi. Mecliste biraz yumuşatıldı. Ve Genel Kurulda 1 saat bile görüşülmeden, ciddi bir itiraz olmadan geçti. Çocuk pornosu etrafında öyle bir hava yaratıldı ki, sivil toplum kuruluşlarının feryadına rağmen, ne Cumhurbaşkanı yasayı meclise geri gönderebildi, ne de muhalefet Anayasa Mahkemesine götürebildi.

5651 Katalog suçları Ceza yasası ve Atatürk Kanunu yoluyla tanımladı. Kapsam Katalog suçlar ile sınırlı idi. “ Uyar Kaldır”ı tanımladı. Esas olarak Erişimi Engellemeyi tanımladı. Web sitelerini, tanımsız olarak, yurtiçi ve yurt dışı olarak ayırdı. Yurtdışındaki webler için TIB’e resen yasaklama yetkisi verildi. TIB uygun bulmadığı bir içerik nedeniyle, hiç bir uyarı yapmadan, hiç bir diyalog olmadan, savunma almadan, bilirkişi değerlendirmesi olmadan bir webi yasaklama yetkisine sahip oldu. Şu anda yasaklanan 48 bin webin büyük çoğunluğu bu şekilde yasaklanmıştır. Yurt içindeki weblerde esas olarak mahkemeler yetkilidir. Acil durumlarda Cumhuriyet savcıları, çocuk istismarı, fuhuş konularında TIB mahkeme kararı olmadan erişimi engelleme kararı verebiliyor, ancak 24 saat içinde mahkemeye başvurmak zorunda idiler.

YouTube Trajedisi

Youtube yasağı ülkemizdeki internetin politikalarının turnosul kağıdı olarak görülebilir. Bir kac defa değişik sürelerle kapatıldı. En uzunu yaklaşık 2.5 yıl sürdü: 5 mayıs 2008-31 ekim 2010. 2014 yasağı bile Anayasa Mahkemesi kararından bir kaç gün sonra ancak kaldırılabildi. İlk yasak Yunanlı bir gencin Atatürk aleyhine bir bir video için alınmıştı. Hürriyet ve Sabah gazeteleri bir kampanya ile kamuoyunun dikkatine getirmişti. Bunun üzerine savcılık bir CD’ye videoyu kopyalayıp mahkemeye yasaklama talebiyle gitti. Mahkeme, videoyu youtube üzerinden doğrulamak gereği duymadan yasaklama kararı verdi. Gerçi, mahkemenin böyle bir olanağı yoktu: çünkü UYAP üzerinden youtube ve benzeri sosyal ağlara erişim engellenmişti. Bu karar öncesinde Youtube ile bir temas çabasına girilmedi. Video kısa bir süre içinde kaldırıldı ve youtube açıldı. Bir kaç sonra, 10 adet Atatürk aleyhine video nedeniyle Ankara 1 nolu Sulh Ceza Mahkemesinin youtube için erişimin engellenmesi kararı çıktı. Bu karar öncesinde ve sonrasında başka mahkemelerin de youtube’u yasaklama kararı vardı. Ama, en uzun soluklu olan Ankara 1. sulh ceza mahkemesin kararı oldu.

Youtube 10 videonun yarıdan fazlasını anında kaldırdı. Geri kalanlar için “bunlar ABD’de ifade özgürlüğü sınırları içinde” anlamında bir gerekçeyle onları kaldırmadı. Ama, bugün twitter’inde yaptığı gibi bu videoları Türkiye’den izleyicilere göstermeme yolunu izledi. Bu videolara Türkiyeden yapılan bağlantılarda “Bu videoyu fikri haklar nedeniyle sizin ülkenizde göstermiyoruz” şeklinde bir açıklama sunuldu. Mahkeme kararına ve Türkiye’nin talebine bir atıf yoktu. Sanki, videonun sahibi Türkiye’den gösterilmesine izin vermiyormuş gibi davranıldı.

Sakıncalı bulunan videoların Türkiye’den izlenememesi üzerine Mahkemeye erişim yasağının kaldırılmasını biz INETD olarak, İnsan hakları savunucusu hukukcular Yaman Akdeniz-Kerem Altıparmak ve youtube avukatları itiraz ettik. Mahkeme söz konusu videoların Türkiye dışından erişebildiği nedeniyle başvurmuzu reddetti, ilgili videoların bütün dünya için yasaklamasını isteğini sürdürdü. Bir başka deyişle mahkemelerimiz yetkisinin tüm dünya olduğunu düşünüyor.
Mahkeme, otomatik olarak, kararını bir üst mahkemeye iletip, onunda kararı onaylamasının yolunu açtı. Bizim, üst mahkemeye yeni belge ve argüman sunmamızın önü kesilmiş oldu.

Verilen karar bir tedbir kararı olduğu için iç yargı yolu bitmişti. Yargıtaya taşıma yolu kapanmıştı. Bunun üzerine biz INETD olarak AIHM’e başvurduk. AİHM henüz bize cevap vermedi. Daha sonra sites.google.com ve muzik weblerin yasaklanması (last.fm) AIHM’e taşındı. Sites.google.com konusunda Yıldıırm-Türkiye kararıyla, 5651’in AIHS’nin ifade özgürlüğü maddesine aykırı olduğuna karar verdi. Türkiye bu kararı görmezden geldi. Yeniden düzenlenen 5651 AİHM kararını göz ardı etti.

Mahkemelerin bir video yada bir sayfa nedeniyle tüm webin; bazen alanadı temelli bazenda hem alanadı temelli hemde IP temelli yasaklaması, orantısız cezalandırma olduğu gerekçesiyle çok eleştirildi. Bu eleştiriye zaman zaman zamanın Ulaştırma Bakanı Binali Yıldırım, ve BTK başkanı Tayfun Acarer de katıldı, açıkça mahkemeleri eleştirdikleri oldu. Mahkemelerden, sadece ilgili nesneyi yasaklama kararı çıktığı oldu. BTK’nın çıkardığı yönetmelik URL temelli erişimi engelemeye izin vermiyordu. Ya alan adı bozulması yoluyla o alan adını “Bu sayfaya giriş şu mahkeme kararıyla yasaklanmıştır” içeren sayfaya yönlendiriyordu, ya da o IP’ye giden istekleri çöpe atıyordu.
Pek çok halde mahkemeler ikisini birden yapıyordu: yani hem alanadı hemde IP temelli yasaklama oluyordu. Hatta, youtube, blogger vs örneklerinde olduğu gibi o alan adına ait tüm IP’leri yasaklama yoluna gidiyorlardı. LigTV’nin korsan yayınlarını engellemek isterken, tüm Google servislerine erişim bu nedenle aksamıştı. Yasakların en başında biz, bazı STK’ler, tüm webin yasaklanması yerine URL yasaklanması önermiştik. BTK bunu tartışmadı bile.

BTK ve Ulaştırma Bakanlığının bir taraftan tüm webin yasaklanmasını eleştirmesi, öte yandan kendi çıkardıkları yönetmeliği değiştirmeye yanaşmaması dikkat cekici. Kamu oyunu kazanmaya yönelik demeçler verilirken, sorunun çözümü konusunda bir şey yapmak söz konusu olmadı. Benzeri bir konu, youtube yasağında oluştu. Youtube, sakıncalı bulunan bazı videoları kaldırmış, geri kalanı Türkiye’ye göstermiyordu. Bir başka deyişle URL temelli filtreleme yapıyordu. Bilindiği gibi o dönem, yurttaşlarımız, DNS değiştirme ve başka yollarla youtube.com’a erişiyordu. Başbakanımızda “Ben Youtube’a giriyorum, sizde girin” demişti. Mahkemenin, ülkeye zarar veren uygulmasını geçersiz kılmak için, ilgili yönetmeliği, en fazlası 1 maddelik bir yasa değişikliği ile çözülebilecek bir konu konusunda hiç bir çabaya girilmedi.

Onun yerine konu egemenlik ve vergi boyutuna taşındı. Youtube’un burada bir ofis açması, bakanlığa gerekli saygıyı göstermesi, sürekli iletişim içinde olması ve vergi vermesi gerektiği söylendi. Youtube yasağının bir mahkeme kararıyla oluştuğu, yukarıdaki argumanların yasakla bir ilgisi olmadığı pek dikkati çekmedi. Türk mevzuatında, vergi borcu nedeniyle, bir webin kapatılması mümkün değil. Ama, Cumhurbaşkanı, Columbia Üniversitesinde bir soruya verdiği cevapta, Youtube’un ifade özgürlüğü kapsamında kapanmadığını, vergi nedeniyle kapandığını söyledi. BTK, bilerek Cumhurbaşkanını yanılttı.

Youtube Nasıl Açıldı ?

Youtube’un açılması, ancak bizim bulacağımız bir “hülle” olayıdır. Zamanın İnternet Kurulu, bu videolarda kullanılan Atatürk fotoğrafları nedeniyle bu videoların teklif hakkının Türkiye adına kendilerinde olduğu saptadı, ve Almanya’daki Türklere ait bir firmaya fikri hatları devretti. Bunun üzerine firma, youtube’a bu videoların telif hakkının kendinde olduğunu ve bu videoları youtube’tan kaldırmak istediğini söyledi. Youtube hemen ilgili videoları kaldırdı. Bunun üzerine Ankara Cumhuriyet savcılığı bunu bilirkişi yoluyla tespit ettirdi ve 5651 uyarınca yasak kararının geçersiz olduğu ilan etti. Daha sonra, Youtube Almanyadaki firmaya söz konusu vidoların fikri hakkını görmek istedi. Ve geçerli bir belge olmadığı için, videoları yerine koydu. Videolar açısından yasağın kalkması öncesi ve sonrasında bir fark yok. Hala Türkiye’deki IP’lere o videolar gösterilmiyor. Böylece, ülkemiz, düzgün bir şekilde ilgili yasal mevzuatı düzeltmek yerine gecekondu bir çözüme gitti.

Filtreli İnternet Maceramız

BTK 2011 yılında Avrupa’daki “Safer İnternet”i örnek almak bahanesiyle bir yönetmelik çıkardı. Taslak, ilgili sivil toplum kuruluşlarını dışlayarak oluşmuştu. Çelişkili maddeler içeriyordu. Dört profil tanımlıyordu: standart, cocuk, aile ve yerli. Her kullanıcı bu profillerden birini seçecekti, aksi belitilmeyen herkes standart profilde olacaktı. Standart profil konusunda kafalar karışıktı: yurttaşlar ciddi bir filtreleme yapılacağı düşüncesindeydi, ama BTK ek filtreleme olmayacağını söylüyordu. Bence, en ilginç olanı yerli profili idi: kısaca Türkiye İntraneti ile sınırlı idi. Bir başka deyişle, google, yahoo, amazon, wikipedia gibi Türkiye dışının kapandığı bir profil idi. Bu İnterneti hiç anlamamış, çağın dışında kalmış bir bakış açısının ürünüydü. Ülkede büyük bir tepki oluştu. Bir yandan hukuksal mücadele yolunda danıştaya dava açıldı, öte yandan tepki mitingler şeklinde sokağa taşındı. Sivil toplum örgütlerinden atik davranan girişimci yurttaşlar, büyük ölçüde facebook’u kullanarak, ülkenin kalburüstü şehirlerinde mitingler düzenledi. Daha önce, Sivil toplum Örgütleri öncülüğünde Sansüre Karşı bir Platform oluşmuştu. Bu Platform öncülüğünde ses getiren bir yürüyüş olmuştu. Katılım 20 bin civarında idi. Filtre karşıtı mitingler 10 kadar şehirde yapıldı. İstanbul da yapılan, İnternet konusunda yapılan dünyadaki en büyük miting oldu: 150 bin civarında katılım oldu.
Artan baskılar sonucunda yönetmelik değiştirildi: standart ve yerli profil kaldırıldı, geriye çocuk ve aile profili kaldırıldı ve uygulama bir kaç ay ertelendi. Bu değişiklik sonucunda kamu oyu tepkisi sönümsedi. Bazı Sivil Toplum Örgütleri eleştirmeye devam ediyorlar. Aile profili bir kara listeden oluşuyor; buralara girilemez. Çocuk profili ise bir beyaz listeden oluşuyor: sadece buralara girilebilir.
Bu listelerin oluşmasında ilkeleri belirlemek için bir kurul oluşturuldu. Bu listenin nasıl oluştuğu, içinde kimler olduğu kamuoyundan saklandı. Liste üyeleri çok sonra açıklandı. Kurul ilkeler belirledi, ama uygulamayı BTK/TIB yaptı. Bu listeler oluşturulurken her hangi bir saydamlık ve katılımcılık yok. “ihbarweb” üzeriden şikayet etmek serbest tabii. Bu listelerde kaç web olduğu bilgisi devlet sırrı. Ama, web üzerinden bir alan adının yasaklanaıp yasaklanmadığı sorgulamak mümkün. Bir defada en fazla 10 sorgu yapabilirsiniz. 3 yıl sonunda 1 milyon civarında filtreli aboneye ulaşıldığı ilan edildi . Abone servis sağlayıcı webi üzerinden profil değiştirebilir, çıkabilir. Bu hizmet için ek ücret alınmıyor. Buradaki temel hata, yurttaşa ya hep ya hiç seçeneğinin sunulması ve listenin devlet tarafından belirlenmesidir. Yurttaşın, kendi ailesi için bir filtre koyması en doğal hakkıdır. Burada ciddi bir tehlike, ailelere sahte bir güvenlik hissi verilmesidir. Çocuk filtresi, çocukların bilinçlenme çabalarını engellememeli, ve internete ilişkin güvenlik tedbirlerini göz ardı edilmesine neden olmamalıdır. Yutttaşın, filtre içeriğini değiştirebilme, ekleme ve çıkarma hakkını korumalıdır. Yaklaşık 1 milyar web içinden beyaz ve kara listeyi kim hangi kadroyla, hangi bilimsel yetkinlikle, hangi hukuksal yetkiyle hazırlayabilir?

Yeni 5651 Ne Getirdi?

5651 de son yapılan değişikliklerin önemli bir amacının tüm webin bir kaç URL yüzünden kapatılmasını engellemek olduğu Bakanlık ve BTK tarafından savunulmuştu. Çözüm, sadece sakıncalı bulunan URL’lere erişimi engellemek, webin geri kalanını rahat bırakmaktı. Değişiklikte bunun dışında Erişim Sağlayıcıları Birliği, TİB başkanına bazı hallerde yasaklama yetkisi vermek, çeşitli düzeyde log tutmak, ve kişisel haklar bahanesiyle yargısız infaz yolunun açılması olarak özetlenebilir.

Büyük gürültülerle ilan edilen URL temelli yasaklama uygulanamadı. BTK ve TIB’deki uzmanlar, weblerin çoğunun HTTPS protokolüne geçtiğini farkedemişler. HTTPS tüm trafiği simetrik sifrelemeyle izlenemez hale getirir. Bu temel kriptoloji bilgileri arasındadır. Sunucu sisteminin işbirliği olmadan https trafiğini izlemek mümkün değildir. BTK ve onun baskısıyla/teşvikiyle Türk Telekom https trafiğini de izleyebilecek donanım ve yazılım alıyor haberi basında çıktı. Yapılmaya çalışılan tüm internet tarfigini izlemek, analiz etmek, sınıflandırmak ve bunu çeşitli siyasi, adli ve ticari amaçlarla kullanmaktır. Açıktır ki, bu Anayasal bir suçtur, temel insan nhaklarının ihlalidir ve evrensel hukukun ayaklar altına alınmasıdır.

5651’in getirdiği bir yenilik ise muğlak ifadelerle servis sağlayıcıları yasal olmayan yollara iterek, yasaklama kararlarının her ne pahasına olursa olsun uygulanmasını istemesidir. Alternatif erişim yollarının engellemesi, mahkeme kararı olmadan kişisel içeriği değerlendirip yasaklaması gibi yükümlülükler bir hukuk devletinde kabul edilebilecek şeyler değil.

Twitter ve Youtube Yasakları

Başbakanımız her ne kadar aktif bir facebook ve twitter kullanıcısı gözüksede, facebook, twitter ve youtube’u kısaca sosyal medyayı “insanlığın başbelası” olarak görüyor. Öte yandan AKP, sosyal medyayı en iyi kullanmaktan kıvanç duymakta, geniş bir kadroyu sosyal ağlarda etkin olmakla görevlendirdiği bilinmektedir. Bu çelişkiye dikkati çekmekle yetinelim.

Başbakanımızın, “Twitter miviterin kökünü kazıyacağız” demeci üzerine BTK/TİB twitteri bir yolunu bulup kapattı. 2 mahkemenin 2 hesap hakkındaki kararı vardı, ama twitteri kapatma kararı yoktu. Kanun kuyucu tarafından kapatılan bir mahkeme, yetkisi olmadan twitterı kapatma kararı verdi. Yani, yetkili bir mahkemenin kararı olmadan, TIB yetki gaspıyla twitterı kapattı. Yasağı kaldırma taleplerine, bir mahkeme “yasaklama kararı olmadığı” şeklinde cevap verdi. Bir başka mahkeme, doğrudan yasaklamanın kaldırılması kararını verdi, TIB oralı olmadı. Twitter yasaklaması, 30 mart belediye seçimleri öncesinde gerçekleşmişti. TIB mahkeme kararını, 30 günlük itiraz süresi bahanesiyle uygulamadı. Seçimlerden sonra Anayasa Mahkemesi, ilgili AİHM kararalarına dayanarak, Kerem Altıparmak-Yaman Akdeniz ve benzeri bireysel başvurular üzerine kaldırdı. Bu arada Twitter yöneticileri ile yapılan görüşmeler sonucunda, zaman zaman mahkemelere itirazla birlikte, Türkiye’deki mahkeme kararlarından, cocuk pornosu ve nefret suçları gibi evrensel kabul görenler dışındakilere sadece Türkiye’den erişimi engelleme yoluna gittiler.

Dışışlerindeki bir konuşmanın kayıtlarının internetde yayınlanması ve bir kopyasının youtube konması üzerine, BTK youtube’a erişimi engelledi. Bir yandan ulusal güvenlik nedeniyle bir mahkemeden yasaklama kararı alındı. Ayrıca, youtube’de Atatürk aleyhine videolar olduğu webten ilan edildi. 5651 de ulusal güvenlik nedeniyle erişim enegelleme olanağı yoktu. Ama, yinede yasaklandı. Mahkemelerin yasak kararını kaldırması, yeniden koyması, yürütmeyi durdurma kararları yeterli olmayıp, Anayasa Mahkemesinin Youtube, Barolar Birliği ve bir çok bireysel başvuru üzere ifade özgürlüğü açısından yasağı kaldırması sonucunda erişime açılabildi.

İnternetden korunmak mı, yoksa İnternetle Büyümek mi ?

Ülkemizde İnterneti yasaklamak, çocukları korumak, yurttaşı korumak, ahlakı korumak, ulusal güvenliği korumak, kişilik haklarını korumak, ülkenin “milli çıkarlarını” korumak, değerlerimizi korumak gibi gerekçelerle, kolayca yapılabiliyor. Bu genelde savunma yapmadan, uzman görüşü olmadan, yani yargılama olmadan koruma tedbiri olarak yapılıyor. Bunların hemen hepsi hiç bir zaman bir yargılamayla devam etmiyor. Bunun önemli bir nedeni weblerin yurt dışında oluşu ve pratik olarak itiraz ve yargı yolunun zor ve masraflı oluşudur. Engelliweb’in verilerine göre bu yazının yazıldığı anda 49 bine yakın web kapalı idi. Dünyada 1 milyara yakın web olduğunu gözönüne alırsak, tüm “zararlı “ webleri belirmenin ne kadar zor olduğu açıktır. Çocuk pornosu, nefret söylemi gibi hemen bütün dünyanın uzlaştığı konuların dışında konularda devletin neyin zararlı, neyin iyi, neyin kötü olmasına karar vermesi demokratik değildir.

Devletin, cocuk pornosu ve nefret söylemi dışındaki konularda yapması gereken, yurttaşın neyin iyi neyin kötü olmasına karar vermesini sağlayacak ortamı oluşturarak, kendisinin kenara çekilmesidir. Bu, bilgilendirmek, bilinçlendirmek, gerekli yazılımların gelişmesini sağlamak, ücretsiz dağıtımı ve eğitimini sağlamakla başlanabilir. Devletin bu konularda listeler hazırlayıp uygulatması yanlıştır. Bunu uzman siivl toplum kuruluşlarına ve üniversitelere bırakmalıdır. Yazılımlar konusunda yarışmalar yapabilir, özgür yazılımları geliştirip, bunlar arasında rekabet yaratabilir.

Devletin asıl görevi, yurttaşların internetin zararlarından korumaktan çok, yurttaşın internetden yararlanması, kendini geliştirmesi, işini internete uyarlı hale getirmesi, toplumsal yaşama ve toplumsal denetime katılması, siyasete ve devlet yönetimine aktif bir yurttaş olarak katkı vermesi, sorgulayan ve katılımcı bir yurttaş olmasını sağlayacak, teşvik edecek tedbirler almasıdır. Tabii ki, yurttaşı, intenetden gelebilecek tehliklere karşı eğitmeli, uyarmalı, farkındalık yaratmalı, bu konularla ilgili kurumsal yapılar oluşturmalıdır. Daha da önemli olan, internetin gelişmesi, etkin kullanımı, ülke kalkınması, bireysel gelişim, toplumsal aktılım ve katılımcı demokrasi için çabaların öne çıkmasıdır. Sayısal bölünmenin önlenmesi, bunun için hem internetin kolay, ucuz, hızlı ve güvenli olması, öte yandan bilişim/bilgi/sosyal medya okuryazarlığının, başta ilkokullar olmak üzere, tüm yurttaşlara ulaştırılması önemlidir. Ülkenin Bilgi Toplumu çalışmalarının, ulusal bir strateji etafında, tüm paydaşların katılımı ile saydam bir şekilde açık ortamlarda tartıiılrak belirlenmesi, saydam bir şekilde hayata geçmesi, ve değerlendirilmesi önemlidir. Bunun için araştırma merkezleri, İnternet Enstitüleri kurulmalı; yıllık değerlendirme anketleri, konferanslar yapılmalıdır.

Ülkemiz, İnternetin marjinal problemleri içinde boğulmaktan kurtulmalı, ve internetin bu ülkeye sunduğu potansiyele odaklanmalıdır.

İnternet yaşamdır !

20 Temmuz 2014

Posted In: Açık kaynak, bilgi toplumu, demokrasi, devekuşu, Genel, güvenli internet, insan hakları, internet yasaklari, lkd, sansür, saydamlık, temel bilişim eğitimi, yönetişim

Php ldap and Custom CA signed certificates


Have you ever had a problem connecting a secure ldap server using php's ldap functions?

It is probably caused by certificate trust issues and 9 out of 10 times root cause is the custom CA can not be recognized by php interpreter.  And as any self respecting devops engineer would solve it by introducing CA's certificate to the system.

But php is a damned monster the normal way to do this, putting the certificate to cacerts dir never works. Even adding  
TLS_CACERT [full.path.to.ca.cert]
line into ldap.conf won't help you. Of course some lucky ones with special deals with Murphy may not have this issue. But believe me, php.net's documentation comments and the internet are full of unresolved ca issues. And sometimes the solution presented is "recompile php with openssl/gnutls/libressl with this custom conf".

If the hell has not opened doors and the earth is not full with demons this solution can not be accepted. there must be a solution.

And of course there is a simple one. PHP uses openssl and openssl respects some environment variables even if you can not make it respect an ldap.conf file. So adding the following lines to your php app with the corresponding paths to your case will fix the issue:

<?php
   putenv('LDAPTLS_CACERTDIR=/etc/ssl/certs/');
   putenv('LDAPTLS_CACERT=/etc/ssl/certs/myCustomCA.crt');
?>

But sometimes even adding ca cert can not be enough. You may have expired certificates or something. So you may need to scrape away the whole certificate validation process. Adding

<?php
   putenv('LDAPTLS_REQCERT=never');
?>
Line to the beginning of your script would solve this issue. And I strongly advice you against doing this.

But this is a simple work around which would work for small scripts or isolated incidents. If you have an established application and you can not modify it? It's one solution to set this environment variables globally in the php server or you may use php's mostly unknown and discarded gem auto_prepend_file.

Just create a file with only the envirionment variable setting lines and use php.ini to prepend this to all php files.





15 Temmuz 2014

Posted In: 2 cents, ca, certificate, devops, ldap, openssl, php, self signed, SSL, TLS

LaborComm 2014’te Düzenlediğimiz Paneldeki Sunuşum

Uluslararası İşçi ve İletişim Konferansı (LaborComm) [1], 2010 yılından bu yana Ankara Üniversitesi İletişim Fakültesi’nin [2] yürütücülüğünde düzenlenen ve bence oldukça önemli tartışmaların yürütüldüğü, dolu dolu geçen bir konferans. Bu yıl 5. kez düzenlendi. İlk kez geçen yıl dinleyici olarak katılabilmiştim LaborComm’a ve birçok oturumda epey bilgi edinmiş, tartışmalardan faydalanmıştım.

LaborComm 2014’ün teması, geçtiğimiz birkaç yılda dünyada ve Türkiye’de ortaya çıkan direniş hareketlerinin etrafında şekilleniyordu. Çağrı metninden [3] alıntılayacak olursam:

“Geçtiğimiz birkaç yıl tüm dünyada ve Türkiye’de toplumsal hareketlerin yükseldiği ve bu çerçevede iletişim ve iletişim ağlarının önem kazandığı bir dönem oldu. Egemenler interneti artık sadece yeni birikim stratejilerinin ayrılmaz bir parçası olarak değil, aynı zamanda kendi egemenliklerine yönelen büyük bir tehdit olarak da görmeye başladılar. Bu çerçevede internet üzerindeki izleme faaliyetlerinin giderek tırmandığı açığa çıkarken, internetin sınırlandırılmasına yönelik düzenlemeler de giderek daha fazla gündeme geliyor. Ancak diğer yandan internet üzerindeki görece özgür alanların sınırları genişliyor ve buralardaki iletişim ve örgütlenme kent meydanlarında somutlaşıyor. LaborComm 2014, bu alanda yaşanan deneyimlerin bilgisini üretmeyi ve ileriye dönük olarak emeğin ve iletişimin özgürleşim olanaklarını değerlendirmeyi amaçlamaktadır. Bunun yanı sıra düzenlenme amacına uygun olarak iletişim ve emeğin kesiştiği tüm alanlara ilişkin çalışmaları beklemektedir.”

Tahmin edilebileceği gibi, Gezi Direnişi ile ilgili epeyce bildiri vardı, programdan da görülebilir. Biz de, hem Gezi Direnişi’ni, hem de özgür yazılımı, özgür İnternet’i ve özgür iletişimi önemseyen 4 bilişim emekçisi (İzlem Gözükeleş, Taylan Özgür Yıldırım, Oktay Dursun ve ben) olarak bu yıl konferansta bir panel düzenlemeyi önerdik. Konferans yürütücüleri fikre olumlu yaklaştılar ve böylelikle konferansın kapanış oturumunu kapmış olduk. Oturum başkanımızın da şu an iletişim alanında akademik çalışmalarını yürüten ama özünde bizler gibi bilgisayar mühendisi olan Doç. Dr. Funda Başaran Özdemir olmasıyla biraz daha rahatladık:)

Panelimizin başlığını “Direniş Kendi İletişim Kanallarını Oluştururken; Özgürlük, Yazılım, İnternet ve Emekçiler” olarak belirledik, her birimiz konunun farklı birer boyutunu ele almaya çalıştığımız birer sunuş yaptık. Sunuşların ardından salondan gelen soru ve katkılarla da tartışmayı genişlettik. Hem bizlerin izlenimi, hem de panel sonrası dinleyicilerden gelen geri bildirimlere dayanarak söyleyebilirim ki güzel bir panel oldu.

Konferansın bildiri kitapçığı şu anda hazırlanma aşamasında. Önümüzdeki birkaç hafta içinde yayımlanmış olacak sanırım, konferans web sitesinden e-kitap olarak da indirilebilecek. Bizim paneldeki sunuşlarımız konferansın diğer oturumlarındaki gibi akademik bildiri niteliğinde değildi, ama yine de panelde konuşulanların da bildiri kitapçığında yer almasının güzel olacağını söylediler bize. Ben de toparlayabildiğim kadarıyla yaptığım sunuşu genel hatlarıyla kısa bir metinde aktarmaya çalıştım. Aşağıda o metni bulabilirsiniz.

Panelde ilk sunuşu ben yapmıştım ve özgür yazılımı neden bu kadar önemsediğimizi kısıtlı zamanda hızlı biçimde anlatmaya çalışmıştım. Yaptığım sunuşun içeriğinin büyük bir kısmı, bir süredir farklı etkinliklerde yaptığım “Her Yer Linux Her Yer Özgür Yazılım” sunumumla[4] çakışmakla birlikte, o sunumda yer verip burada anlatmadığım ve burada olup onda olmayan bazı kısımlar da var.

Özgür Yazılımı Neden Bu Kadar Çok Önemsiyoruz?

Richard Stallman’ın bundan yaklaşık 30 yıl önce başlattığı özgür yazılım hareketi, artık başladığı noktanın çok ilerisinde. İnternet’in sağladığı yayılma olanağının da katkısıyla bugün dünyanın her yerinde çeşitli özgür yazılımları geliştiren, yaygınlaştıran, yerelleştiren, paylaşan ve kullanan insanlar, şirketler ve hatta devletler bulunuyor. İnternet’e bağlı herhangi bir cihazı kullanan bir kişi, kendi kullandığı yazılımlar özel mülk yazılım olsa bile bağlandığı web sitesi özgür yazılımlar aracılığıyla hazırlandığı ve sunulduğu için dolaylı yoldan da olsa özgür yazılımları kullanmış oluyor. Teknik yeterlilikleri ve üstünlükleriyle özgür yazılımlar bilişim alanında kolaylıkla vazgeçilemeyecek bir yer edinmiş durumdalar.

Öte yandan, özgür yazılımı bu kadar çok önemsememizin ve her fırsatta öne çıkarmamızın sebebi sadece sunduğu teknik olanaklardan kaynaklanmıyor. Tarihçesi, ortaya çıkış gerekçeleri ve gelişim süreci ele alındığında özgür yazılım meselesi, teknik bir tartışma olmanın çok ötesinde, politik bir mesele olarak karşımızda duruyor. Özgür yazılım hareketini başlatan ve günümüzdeki en önemli temsilcilerinden biri olan Richard Stallman, çeşitli söyleşilerinde bu durumu şöyle dile getiriyor:

“Özgür yazılım, sadece teknik bir mesele değildir. Aynı zamanda etik, sosyal ve politik bir meseledir. Sadece bilişim alanında çalışanları değil, toplumun her kesimini ilgilendirir. Düşünce özgürlüğü, ifade özgürlüğü, kişisel bilgilerin gizliliği gibi konularla doğrudan ilgilidir. ”

Richard Stallman’ın çizdiği bu çerçeve, aslında epey geniş bir alanı tarifliyor olsa da, politik bir mesele olarak özgür yazılımı bireysel ve toplumsal özgürlükler bağlamında tartışmanın tek başına yeterli olmadığını düşünüyoruz. Elbette özgür yazılımların yazılım alanında üretici ve tüketiciler olarak bizlere sağladığı özgürlükler çok büyük önem taşıyor, özellikle de çokuluslu yazılım ve donanım tekelleri ile devletlerin bu özgürlüklerimize saldırılarını yoğunlaştırdıkları bir dönemde olduğumuzu göz önünde bulundurduğumuzda var gücümüzle savunmamız gereken bir mevkide bulunuyorlar. Fakat özgür yazılımı politik bir mesele olarak tartışırken, çok daha temelde olan ve aslında bu özgürlüklerin de kaynağını oluşturan, özgür yazılımların hem üretim hem de tüketim süreçlerini de doğrudan etkileyen bir noktayı ele almak istiyoruz: Kamusal mülkiyet. Eğer özgür yazılımlarla özel mülk yazılımları birbirinden net bir şekilde ayırt edebiliyorsak bunu sağlayan şey teknik özellikler değil, üretilen yazılımın ve kaynak kodunun mülkiyetinin kime ait olduğudur. Özgür yazılım hareketi, hem üretilen bir ürün olarak yazılımın, hem de o yazılımın üretilmesini sağlayan üretim aracı olarak kaynak kodlarının mülkiyetini topluma vermesiyle bir devrim yapmıştır. Yazılımın ve kaynak kodunun mülkiyetinin toplumsallaştırılması; yazılım geliştirme pratiklerinden paylaşım yöntemlerine, yazılımların çoğaltılma (kopyalanma) özgürlüğünden istenilen amaç doğrultusunda özelleştirilebilme ve kullanılabilme özgürlüğüne kadar tüm üretim ve tüketim süreçlerinin piyasa ekonomisi koşullarından bambaşka koşullarda şekillendirilebilmesine olanak sağlamıştır. Böylelikle hem bireysel ve toplumsal özgürlüklerimiz korunabilmiş, hem de özgür yazılımlar özel mülk yazılımlar karşısında birçok teknik üstünlüğe sahip olabilmişler ve yaygınlıklarını artırabilmişlerdir.

Politik bir mesele olarak özgür yazılımı ele alırken dikkate aldığımız önemli noktalardan bir başkasını da özgür yazılım hareketinin ortaya çıkış süreci bize anlatıyor. Bu nokta, özgür yazılım hareketinin, yazılımın metalaşmasına karşı geliştirilmiş bir hareket olmasıdır. 1970’li yıllara kadar, Richard Stallman’ın da aralarında bulunduğu yazılım geliştiriciler (hacker’lar) geliştirdikleri tüm yazılımları birbirleriyle paylaşmakta, böylelikle hem birbirlerinden öğrenmekte hem de çözülmüş bir sorunu tekrar çözmekle uğraşmak (“tekerleği yeniden keşfetmek”) zorunda kalmamaktadırlar. Yazılımların ticari olarak alınıp satılması yaygın değildir, bilişim alanında sadece donanım bir masraf kalemi olmaktadır. Ancak 1970’li yıllardan itibaren bu durum değişmeye başlar, yazılımın da parayla alınıp satılabileceği fikri yaygınlaşır ve birçok yazılım firması kurulur. Bunun yanı sıra, bu firmalar ürettikleri yazılımların kaynak kodlarını “ticari sır” oldukları gerekçesiyle paylaşmamaktadırlar. Bütün bunlara duyulan tepki, özgür yazılım hareketinin başlatılmasında tetikleyici olmuştur.

Özgür yazılım hareketinin uygulamaya koyduğu önemli özelliklerden birisi, hem kamusal mülkiyetle hem de hareketin metalaşma karşıtı niteliğiyle bağlantılı olan, “üretimde özgürlük, tüketimde eşitlik” ilkesidir. Özgür yazılımların mülkiyeti topluma ait olduğu için toplumun her bireyi özgür yazılımlar üzerinde aynı haklara sahiptir ve onları dilediği şekilde kullanma (tüketme) özgürlüğü vardır. Dolayısıyla tüketimde eşitlik sağlanmıştır. Öte yandan, yazılımı kullanma karşılığında bireylerden herhangi bir karşılık beklenmez. Üretim sürecine katılıp katılmama konusunda her birey kendisi karar verebilir ve üretime katılmayan bireyler, tüketim haklarını kaybetmezler; üretime katılan bireylerle hâlâ eşit tüketim hakkına sahip olurlar. Üretime katılmak isteyen bireyler ise bu özgürlüklerini istedikleri zaman kullanabilirler çünkü üretim aracı olan kaynak kodlarının mülkiyeti topluma aittir, onlar da bu kaynak kodlarını kullanarak istedikleri şekilde yazılım geliştirebilirler.

Özgür yazılım üzerine bugüne kadar yapılan sosyal araştırmaların bir kısmı, üretime katılan yani özgür yazılımları geliştiren ve diğer yollarla (çeviri, test, hata bildirimi vs.) bunlara katkı sağlayan bireylerin neden bu sürece katıldıkları sorusuna odaklanmıştır. Piyasa ekonomisi şartlarının geçerli olmadığı bir ortamda, bireyleri çalışmaya ve üretime yönlendiren sebepler birçok kez sorgulanmıştır. Bu araştırmalar sonucunda ortaya konan birkaç sonuca kısaca değinelim. Bunlardan biri, özgür yazılım toplulukları arasında bir “hediye ekonomisi” oluşmasıdır. Bir başka sonuç, bazı bireylerin “kendilerini kanıtlama” güdüsüyle üretim sürecine katıldıklarıdır; özgür yazılımlar kamusal alanda (İnternet) geliştirildiği için bu bireyler burada bireysel teknik becerilerini sergilemekte ve piyasa ekonomisinin geçerli olduğu yazılım geliştirme süreçlerinde (özel mülk yazılım üreten şirketlerde) iş bulma şanslarını artırmaktadırlar. Bir grup yazılım geliştirici ise, öğrenme ve merak güdülerini tatmin etmek amacıyla üretim sürecinde yer almaktadırlar; zihinsel emeğin ortaya konduğu yazılım geliştirme pratiğinde sıklıkla çeşitli “bulmaca”larla karşılaşılmakta, bireyler bu bulmacaları çözmekten zevk almaktadırlar. Tüm bunların yanı sıra, bazı bireyler de toplumsal çıkarları gözeterek özgür yazılımların geliştirilmesine katkı sağlamaktadırlar. Elbette saydığımız bu gruplar birbirlerinden homojen olarak ayrışmamakta, üretime katılan bir birey bu gerekçelerden birkaç tanesini sahiplenebilmektedir.

Özgür yazılımların geliştirilmesi aşamalarında kullanılmakta olan ve zamanla çeşitli gelişmeler göstermiş olan üretim pratikleri, ağırlıklı olarak meselenin teknik yönü ile ilgiliymiş gibi görünse de, esasen özgür yazılımın politik yanıyla doğrudan ilişkilidir. Özgür yazılımların tamamına yakını İnternet üzerinde, kamuya açık platformlarda geliştirilmektedir. Sadece geliştirilen yazılım ve yazılımın kaynak kodları değil, aynı zamanda tartışma ve karar alma süreçleri de kamusal erişime açık olarak yürütülmektedir. Bir özgür yazılımın geliştirilmesine katkı veren, yani üretim sürecine katılan bireyler, e-posta listesi ya da forum benzeri iletişim ortamlarında yazılım geliştirme süreci ile ilgili fikir alışverişinde bulunurlar ve bu iletişim ortamlarının arşivleri kamusal erişime açık olarak İnternet ortamında saklanır. Böylelikle üretim sürecine katılmayan bireyler de yürütülen tartışmaları izleyebilir, zaman zaman da çeşitli şekillerde kendi görüşlerini ifade edebilirler. Tüm bu özellikleriyle özgür yazılım geliştirme sürecinin oldukça verimli işleyen bir kolektif üretim süreci olduğu söylenebilir.

Özgür yazılımın, burada kısa kısa ele almaya çalıştığımız bu özellikleri, bu hareketin 30 yılı aşkın süredir adım adım ilerleyen ve büyük başarılar kazanan bir hareket olmasını sağlamıştır. Etkileri sadece bilişim alanıyla sınırlı kalmamış, özgür yazılımın başarısından etkilenen başka birçok alanda benzeri özellikleri taşıyan örnekler ortaya çıkmıştır. En basit ve akla gelen ilk örneği, özgür yazılım geliştirme sürecine benzer bir üretim süreciyle kolektif bilgi birikiminin oluşturulduğu Wikipedia projesidir. Benzer şekilde sinema, müzik, edebiyat gibi alanlarda çeşitli yansımaları olmasının yanı sıra, bilişim sistemlerinde kullanılan çeşitli donanımların kolektif biçimde üretilmesini ve bu alandaki tekellerin ortadan kaldırılmasını amaçlayan hareketler de ortaya çıkmaya başlamıştır.

Altını çizmeye çalıştığımız şekilde, özgür yazılım meselesi bir “politik mesele” olmayıp sadece bir “teknik mesele” olsaydı, tahminimizce şimdiye kadar çoktan sonlanmış bir durumda olurdu ve hepimiz özel mülk yazılımlara muhtaç olurduk. Bilişim ve iletişim teknolojileri hayatımızın her alanına nüfuz ederken, birer bilişim ve iletişim tüketicisi ve üreticisi olarak bugün sahip olduğumuz bazı bireysel ve toplumsal özgürlüklerimizi de çoktan kaybetmiş, ya da tıpkı Gezi Direnişi’nde olduğu gibi bunları savunmaya çalışıyor olabilirdik. Panelimizin ana konusuyla özgür yazılımın birbiriyle ne kadar içli dışlı olduğunu anlamak için, özgür yazılımı anlatırken sıklıkla kullandığımız bazı anahtar sözcüklere bitirirken değinmekte fayda var: “Özgürlük”, “Paylaşmak”, “Dayanışma”, “Kamusallılk”, “Kolektif üretim”, “Eşit tüketim”. Gezi Direnişi’ne baktığımızda, aynı anahtar sözcüklerin orada da meselenin kalbinde olduğunu görebiliyoruz.

adilga

[1] http://laborcomm.org/

[2] http://ilef.ankara.edu.tr/

[3] http://laborcomm.org/cagri-metni-2014/

[4] İlgilenenler LKD Seminer Çalışma Grubu sitesindeki Seminer Notları sayfasında bulabilirler:

http://seminer.linux.org.tr/seminer-notlari/


14 Temmuz 2014

Posted In: etkinlik, gezi direnişi, laborcomm, lkd-gezegen, mülkiyet, Özgür yazılım, toplumsal mülkiyet

Android Cihazlarda Rom Değiştirmek

Androidli telefonlarda yüklü olarak gelen rom dışında istediğimiz başka romları kurmak da mümkün. En bilinen romlar ise cynmod, miyui, aokp, paranoid android. Rom chip üzerindeki kalıcı yazılımları oluşturur. Romu değiştirerek cihazın içeriğini baştan sonra değiştirmiş olabiliriz. Bu değişim işlemci ve bellek kullanımı, kısayolları, ekran kilidi gibi birçok özelliği değiştirebilir. Telefondan aldığımız verimi artırabilir azaltabilir.

Ben şimdiye kadar cynmod'u denedim. Cihazınıza uygun cynmod romlarını buradan bulabilirsiniz. Uygun .zip dosyasını indirdikten sonra telefona sdcard içerisine kopyalamalıyız. adb reboot recovery diyerek telefonu recovery modda açıp zip dosyası kurmayı seçerek .zip'in konumunu da belirtmeliyiz. Cynmod'u kurduktan sonra Google Play Store sistemden kalkıyor. Play Store'u kurmak için gapps paketini indirmeliyiz. Gapps paketini de telefona kopyalayıp yine recovery moddan açarak kurulumu gerçekleştirmeliyiz.

Cihazın kendi sahipleri dışında bir firmanın yayınladığı romlara custom rom deniliyor. Cihaza kurulabilecek resmi (offical) romlara ise stock rom deniliyor. Custom rom kurduktan sonra stock romu indirerek tekrar cihazı ilk günkü haline çevirebiliriz.

Genelde stock romların içerisinde bir kurulum betiği oluyor. Nexus cihazlar için stock romlara buradan ulaşabilirsiniz. Nexus-5 için hammerhead .tgz dosyası içerisinde flash-all.sh dosyası var. İndridiğimiz .tgz dosyasını bilgisayarda açmalıyız. Cihazı ise adb reboot bootloader şeklinde fastboot modundan açarak bu dosyayı bilgisayardan çalıştırıp kurulumu gerçekleştirebiliriz.

14 Temmuz 2014

Posted In: adb, android, custom rom, cyanogenmod, fastboot, Gezegen, stock rom

Android Cihaz Rootlamak

Android telefonlara birkaç farklı şekilde root (yetkili kullanıcı) hakları verebiliriz. Android cihazlarda root olmak ise unix temelli işletim sistemlerindeki süper kullanıcı ile aynı şey.

Telefonu farklı modlarda başlatabilmek için güç, ses kısma-açma gibi tuşlara farklı kombinasyonlarda basmamız gerekli. Bu kombinasyonlar telefonun marka-modeline göre değişebilir ve elimizi sürekli şöyle miydi, böyle miydi düşüncesiyle basılı tutmak biraz zor :). Bunun yerine "android-tools-adb" ve "android-tools-fastboot" paketlerini kurarak telefonu bilgisayardan yönetebiliriz.

Android cihazlara root hakları vermek marka-modele göre değişebilir. Bu konudaki araştırmaları telefonun marka-modeline göre yapmak daha iyi olabilir. Ben burada adb ile kurulumdan bahsedeceğim için modele göre pek değişeceğini sanmıyorum ancak söylemek gerekirse Nexus-5 cihaz üzerinde çalışıyorum.

Usb kabloyu bilgisayara usb debug modda ve geliştirici hakları ile bağlamalıyız. Geliştirici yetkisi root ile aynı şey değil. Bilgisayardan telefona gelecek dosyaları kabul ettiğimizi belirtmek gibi birkaç işlem için gerekli. Geliştirici haklarına "Ayarlar->Telefon Hakkında->" yolunu izleyip "İnşa Numarası"na 5-6 kere basarak elde edilir. Debug mod için ise "Ayarlar->Geliştirici Seçenekleri"nde usb debug modunu aktif etmeliyiz.

Adb ise bilgisayardan telefonu yönetmek için gerekli. Bilgisayarda "adb devices" yazarak makineye bağlı cihazları görebiliriz. "adb shell" ile telefona bağlanabiliriz. Makineye birkaç telefon bağlı ise hangi cihaza erişeceğimizi belirtmeliyiz. "adb shell" ile telefona eriştikten sonra bash komutları ile telefonu yönetebiliriz ancak kullanabildiğimiz komutlar çok kısıtlı. Komut çeşidini artırmak için telefona busybox'ı kurabiliriz (busybox kurulumu root haklarını gerektiriyor). adb pull ile dosyaları bilgisayara çekebilir, adb push ile telefondan bilgisayara dosya aktarabiliriz. Örneğin telefondaki data dizininin içerisini root hakları olmadan listeyemeyiz, adb ile telefona bağlıyken su yazarak komut satırında root yetkilerini alabiliriz. Adb'nin tam belgesine buradan ulaşabilirsiniz.

Fastboot ise telefonu güncellemek, farklı recovery .img dosyaları yüklemek, bootloaderı kiltleyip açmak için kullanılabilir. Fastbooot hakkında daha fazlası için buraya bakabilirsiniz.

Cwm Yükleme

Telefonda yedekleme yapma, bilgileri sıfırlama, kurulum yapma gibi işlemler için birkaç farklı araç var. Bunlardan biri Clock Work Recovery Mod (cwm). Cwm'yi kurmak için buradan bilgisayara .img dosyasını indirebiliriz. adb reboot bootloader ile telefonu fastboot modunda açarak fastboot flash recovery cwm.img şeklinde recovery modu kurmuş oluruz. Şuan cihaz fastboot modda olduğu için ses kısma tuşu ile recovery moda geçerek telefonu yeniden başlatmalıyız. Böylece cwm'yi recovery mod aracı olarak yüklemiş olduk.

Root Hakları Verme

Buradan superSu.zip dosyasını telefona kopyalayıp, telefonu adb reboot recovery şeklinde recovery modda açarak install from zip'i seçmeliyiz. .zip'i kopyaladığımız konuma gidip dosyayı seçersek kurulum tamamlanmış olacak ve aşağıdakine benzer bir çıktı görülecek. Eğer .zip'i sdcarda kopyaladıysak sdcard'ı seçtikten sonra o/, legacy/, obb/ dizinlerinden o/ olan dizini seçmeliyiz. Bu şekilde kurulum tamamlanmış oldu.


İndirdiğimiz .zip dosyasını incelersek içinde SuperSu.apk'sı dışında betikler var, bu betiklerle gereken ayarları yapıp, .apk'yı yüklemeyi gerçekleştiriyor.

Root yetkisi verdiğimizi anlamak için SuperSu uygulaması yüklenmiş mi diye bakmak yeterlidir. Her zaman Supersu .apk'sının sistemde var olması rootlamanın başarılı bir şekilde tamanlanmış olduğu anlamına gelmiyor. Bu yüzden daha iyi bir yöntem ise adb ile telefona bağlıyken su yazınca root hakları veriliyorsa işlem sorunsuz tamamlanmış demektir.

13 Temmuz 2014

Posted In: adb, android, busybox, cwm, fastboot, Gezegen, recovery, root

Ngxtop: Gerçek zamanlı nginx log monitörleme aracı

Ngxtop, nginx web serverın loglarını gerçek zamanlı okuyarak, tanımlanan değişkenlere göre sitenize gelen sorguları hızlı ve kolay şekilde terminal üzerinden yorumlamanızı sağlayan bir programdır.

Python ile yazıldığından, python paketlerinin kurulumunda kullanılan pip aracı ile yada easy_install ile  kolayca kurulumunu yapabilirsiniz.

Ngxtop Kurulumu

Sisteminizde pip kurulu değil ise, ilk önce epel reposunda bulunan python-pip paketini kurmanız gerekiyor.

# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# yum install python-pip

Python-pip paketinin kurulumundan sonra artık pip komutu ile ngxtop programını kurabiliriz.

# pip install ngxtop

Easy_install ile kuracak iseniz, centos’un base reposunda bulunan python-setuptools paketini kurmanız gerekiyor.

# yum install python-setuptools
# easy_install ngxtop

Ngxtop Kullanımı

ngxtop [options]
ngxtop [options] (print|top|avg|sum) <var> ...
ngxtop info
ngxtop [options] query <query> ...

Bazı kullanım şeçeneklerine bakacak olursa,

  • -l <file> : Nginx access log dosyasının tam yolu ( full path )
  • -f <format> : Access log formatı ( default: combined )
  • –no-follow : ngxtop normalde mevcut log kayıtlarını dikkate almadan anlık olarak log dosyasına yeni yazılacak olan kayıtları dikkate alır. Bu seçeneği kullanarak, ngxtop mevcut log kayıtlarada bakarak çıktıyı vermesini söleriz.
  • -t <seconds> : güncelleme sıklığı
  • -n <number> : Gösterilecek satır sayısı. ( default değer 10 dur )
  • -o <var> :  Sonuçları sıralama kriteri ( default olarak count şeklindedir. )
  • -a <exp> …, –a <exp> : Çıktığı ortalama, max, min gibi seçenekler ile filtrelemenizi sağlar. ( exp: sum, avg, min, max  )
  • – v : Ayrıntılı çıktı verir.
  • -i <filter-expression> : Sadece filter ile eşleşen kayıtları işler.

Ngxtop ile kullanabileceğimiz  buil-in değişkenleri,

  • body_bytes_send
  • http_referer
  • http_user_agent
  • remote_addr
  • remote_user
  • request
  • status
  • time_local

Eğer nginx’i yum ile kurdu iseniz default olarak conf dosyası etc nin altına kurulduğu için ( /etc/nginx/nginx.conf ) ngxtop komutu verdiğinizde direk bu conf dosyasını okuyarak access log dosyasının yerini bulacaktır.

#ngxtop

Nginx’i elle derleyerek kurduysanız ve etc altına kurmadıysanız,  ngxtop access log dosyasının yerini bulamadığı için ( -l ) parametresi ile log dosyasının yerini göstermeniz gerekecektir.

# ngxtop -l /usr/local/nginx/log/access.log

Built-in değişkenlerini kullanarak çıktı elde etmek için,

# ngxtop print request http_user_agent remote_addr

# ngxtop top remote_addr

# ngxtop -i 'status == 404' print request status

Ngxtop’un en becerikli diğer bir özelliği ise Apache loglarını da yorumlayabilmesi. Apache loglarını yorumlayabilmesi için ngxtop’u aşağıdaki şekilde kullanmanız gerekiyor.

 # tail -f /var/log/httpd/access.log | ngxtop -f common

 

13 Temmuz 2014

Posted In: gerçek zamanlı monitörleme, lkd-gezegen, nginx, nginx log monitorleme, nginx web server, ngxtop, real time, Scripts

Hangi Masaüstü Ne Kadar Türkçe Konuşuyor? -6-

Malum yazılım çevirisi hiç bitmeyen bir süreç. Tamamen gönüllülerce sürdürülen bu işin yaygın etkisi çok ama sürdürülmesi oldukça güç. Özellikle aktif olarak geliştirilen yazılımlarda bir seviyeye getirilen çeviri oranı eğer güncellenmezse hızlıca aşağılara düşebiliyor.

Son bir yıldır çok az vakit ayırabildim çeviri işine. Neyse lafı uzatmayayım, masaüstü ortamları çevirilerde durumumuz şöyle:

KDE: Geçen yıl %84 olan çeviri oranı aynı yerde yine %84,
GNOME: Geçen yıl %80 olan çeviri oranı %75 civarında,
LXDE: Geçen yıl %89'a düştüğünü yazdığım çeviri oranı yeniden %100,
Enlightenment: Aradan geçen bir yılda büyük bir sıçramayla %59'dan %90'a yükselmiş,
Fluxbox: Yeni sürüm çıkarmayan Fluxbox'ta durum aynı %100,
XFCE: Bu yıl çok çalışan ekip çeviri oranını %69'dan %98'e çıkarmış.

LibreOffice de yeni sürümü öncesi arayüzde %99.5, yardım içeriğinde ise %96 çeviri oranını yakalamış durumda.

Büyük özverilerle çalışan çeviri ekiplerini tebrik ediyorum. Katkı vermek isteyen herkesi bekleriz.

11 Temmuz 2014

Posted In: Çeviri, Enlightenment, Fluxbox, Gezegen, Gnome, kde, libreoffice, Lxde, Xfce

Crontab Yardımıyla Göz Sağlığını Korumaya Çalışmak

Bilgisayar başında uzun saatler geçirenlerin çeşitli sağlık problemleriyle karşılaştıkları ortada. Sırt, bel rahatsızlıklarından tutun da göz sağlığının bozulmasına kadar pek çok olumsuz etkisi var bilgisayar başında geçirilen uzun saatlerin.

Bugüne kadar bunlarla ilgili pek çok yazı okudum, hemen hemen hepsi, belirli aralıklarla çeşitli egzersizler yapmayı öneriyor. Fakat okuduğunuz uzun bir makaleye yahut binlerce satırlık kodlara gömüldüğünüz zaman çoğunlukla bunlar aklınıza gelmiyor. Bu durum için de çeşitli çözümler üretilmiş tabii, birtakım uygulamalar, belirli aralıklarla size bu egzersizleri hatırlatabiliyor. Mesela RSIBreak[1] adlı uygulamayı kullanmıştım 3-4 yıl önce, belirli aralıklarla bazı egzersizleri hatırlatan küçük, güzel bir uygulama. Bazı dağıtımların paket depolarında bulunuyor, kurup deneyebilirsiniz.

RSIBreak uygulamasının bir süre sonra beni rahatsız eden iki yanını fark ettim:
1) Uyarıları ekran aracılığıyla yapıyor. Odaklanıp bir yazıyı okurken ekranın bir köşesinden çıkan uyarı kutucuğu dikkatimi çok fazla dağıtıyordu. (Tabii uygulamanın amaçlarından biri elbette bu ama işte biz anlaşamadık, napalım).
2) Belirli aralıklarda verdiği uyarılar sırasında bilgisayarı hiç kullanmamaya zorluyor. Mesela 20 sn boyunca fareyi ya da imleci hiç kımıldatmamanız gerekiyor, aksi takdirde uyarıyı sürdürüyor. Yazılımın beni uyarmasını seviyorum ama bu kadar zorlaması hoşuma gitmiyor.

Bu iki sebepten dolayı uzun süredir RSIBreak’i kullanmıyordum, yerine de yeni bir şey aramadım. Lakin yakın zamanda okuduğum sağlıkla ilgili birkaç yazı, beni tekrar önlem almaya itti. Özellikle göz sağlığı ile ilgili kısım, bilgisayar başında geçirilen süreler yüzünden gözleri bozulan bir kişi olarak “yav bu böyle olmayacak” dedirtince alternatif bir şey yapayım dedim.

Göz sağlığı ile ilgili uyarılar içeren yazıların çoğunda önerilen iki şey var:
1) 20-30 dakikada bir kez, 15-20 saniye süreyle ekrana değil de uzak bir noktaya (en az 5-6 metre uzağa) bakın.
2) Gözlerinizi kırpmayı unutmayın. Normalde insan gözü dakikada 10-12 kez kırpılıyor, fakat bilgisayar başında bir şeye odaklandığımızda bunu yeterince yapmıyoruz ve bu da göz kuruluğuna sebep oluyor.

Bu iki basit mevzuyu çözüme kavuşturmak için kendimce basit bir yol buldum: Bunları kendime hatırlattığım iki küçük(3-4 saniyelik) ses dosyası kaydettim. Kendi kendime “gözlerini kırpmayı unutma!” ve “Uzaklara bak!” diye sesleniyorum (şair burada kendine sesleniyor). Ardından crontab’a iki satır ekledim:

        */10 * * * * mplayer /home/adil/sesler/gozlerinikirp.ogg
        15,45 * * * * mplayer /home/adil/sesler/uzaklarabak.ogg

Böylelikle, her 10 dakikada bir kez gözlerimi kırpmam, her yarım saatte bir kez de ekrandan daha uzak bir mesafeye bakmam için sesli uyarı alıyorum. Şimdilik işe yarıyor, ne çok rahatsız edici ne de işlerimi yapmamı engelleyici.

Yukarıda RSIBreak (ve varsa benzeri yazılımları) kötülemiş gibi oldum ama şu farkın altını çizeyim: Benim çözümüm sadece göz sağlığı için. RSIBreak, oturmadan kaynaklı omuz ve bel rahatsızlıklarını da hedefleyen bir yazılım. O açıdan şans vermekte fayda olabilir ilgilenenler için.

adilga

[1] https://userbase.kde.org/RSIBreak

Not: Yazıyı iki gün önce yazıp kenara koymuştum, arada geçen zamanda hem bir iki arkadaştan fikir aldım hem de RSIBreak’i tekrar kurup kurcaladım biraz. Aslında epeyce özelleştirme imkanı sunuyor yazılım, uyarıların görülme sıklığından zorlayıcılıklarına kadar çeşitli düzenlemeler yapabiliyorsunuz, üstelik sesli uyarı seçeneği de var. Daha önce kullandığım zaman bunlar var mıydı hatırlamıyorum, belki vardı da ben fazla kurcalamamıştım. Şu anki haliyle benim ihtiyacımı giderebilecek durumda aslında. Yine de şimdilik kendi çözümüm benim işimi görüyor, iki gündür iyi geçiniyoruz kendisiyle. Öte yandan, yazıyı paylaştığım bir arkadaş, benim rahatsız olduğum zorlayıcılığın (yani yazılımın sizi ara vermeye zorlaması) aslında sağlık açısından daha faydalı olduğunu düşündüğünü belirtti, kısmen hak vermedim değil. Yine aynı arkadaş, göz sağlığı için başka iki yazılım önerdi, onları da not etmiş olalım buraya:

https://justgetflux.com/
http://jonls.dk/redshift/

Ben bunları henüz denemedim, bir ara denemeye çalışacağım bakalım.


10 Temmuz 2014

Posted In: lkd-gezegen, Özgür yazılım

Supervisor

  Supervisor kurulu olduğu bilgisayarın üzerindeki süreçleri kontrol edebilen Unix benzeri işletim sistemleri üzerinde çalışabilen bir sistemdir. Aslında süreçlerin kontrolünü rc.d dizini altına betikler yazarak da yapmak mümkün ama supervisor bu işi bi standarta göre yaptığından bakım yapmak da yazmak da yönetmek de daha kolay olacaktır. Ayrıca süpervisor ile zombi süreç oluşumunu engelleyebiliyoruz. Süreçleri gruplayarak toplu işler yaptırabiliyoruz. Tek seferde birden çok sürece parametre gönderebiliyoruz. Duran süreçleri otomatik başlatabiliyoruz. Hepsinden sırayla bahsedeceğim.

  Arayüzünün görünümü ise şöyle:


















   Komut satırını kullanarakta bilgi almak mümkün. Komut satırına supervisorctl yazarak etkileşimli bir kabuk açıldığını göreceğiz. "help" yazdığımızda yapabileceklerimizi rahatlıkla görebiliriz.

   Kurulumu:
  "easy-install supervisor", "pip install supervisor" kullanmak ya da direk kaynak kodundan kurmakta mümkün ama depodan kurabiliyor olmak kullanım alanını genişletecektir. Bu yüzden bunu tercih ediyoruz.

$ sudo apt-get install supervisor

  Şuan varsayılan olarak /etc/supervisor/supervisord.conf yolunda şablon olarak bir yapılandırma dosyası oluşmuş olmalı. İşler karmaşıklaştığında yönetimin daha kolay olması için buradaki bazı bölümleri yavaş yavaş /etc/supervisor/conf.d/ dizini altına taşıyacağız. İlk olarak http yaplandırması kısmını şöyle yazıyoruz:

  # vim /etc/supervisor/conf.d/http.conf

Açılan dosyaya şu yapılandırma bilgierini ekeyelim:

  [inet_http_server]         ; inet (TCP) server disabled by default
  port=*:9001        ; (ip_address:port specifier, *:port for all iface)
  username=user              ; (default is no username (open server))
  password=123               ; (default is no password (open server))

2. satırda * yerine özel bir ip adresi ya da localhost yazabiliriz. * yazmamız supervisor'a tüm arayüzlerden ulaşabilmemizi sağlar. Bu dosyayı kaydedip çıkalım.

  İçinde şuan kayıtlı hiçbir süreç olmadığından çalıştığında bir süreç göremeyeceğiz. Çalıştırmak için şu komutu verelim:

  # service supervisor start

  Şimdi adres çubuğuna localhost:9001 yazdığımızda yukarıdaki resmin süreçler olmadan ki halini görüyor olmamız lazım

  Şimdi hiçbirşey yapmayan örnek bir kod yazalım supervisor'a ekleyelim ve durumunu inceleyelim:

  # vim /usr/local/bin/long.sh

  Açılan dosyaya şu kodu yazalım:

  #!/bin/bash
  while true
  do
      # Echo current date to stdout
      echo `date`
      # Echo 'error!' to stderr
      echo 'error!' >&2
      sleep 1
  done

  Kaydedip çıkalım ve şimid bu dosyaya çalıştırılabilme izni verelim:

  # chmod +x /usr/local/bin/long.sh

   Şimdi yazdığımız bu küçük programı supervisor 'un yapılandırmasın ekleyelim.

  # vim /etc/supervisor/conf.d/long_script.conf 

  Açılan dosyaya şunalrı yazalım:

   [program:long_script]                       ; programa verecğimiz isim
   command=/usr/local/bin/long.sh       ; eklemek istediğimiz kodun yolu
   autostart=true                                    ; supervisor çalıştığında otomatik başlatılıp başlatılmayacağı
   autorestart=true                                 ; otomatik yeniden başlatılıp başlatılmayacağı
   stderr_logfile=/var/log/long.err.log   ; standart hata çıktısının yazılacağı dosyanın yolu
   stdout_logfile=/var/log/long.out.log  ; standart çıktısının yazılacağı dosyanın yolu

 Bu dosyayı kaydedip çıkalım. Bu yaptığımız değişiklikleri okuyabilmesi için supervisor'u yeniden başlatalım:

  # service supervisor restart

  Şimdi adres çubuğuna yeniden localhost:9001 yazdığımızda bir tane satır görüyor olmamız gerekiyor.

  Programla ilgili şu bilgileri göreceğiz:
  Durumu:
      --running
      --starting
      --backoff
      --stopping
      --stopped
      --exited
      --fatal

  Süreç numarası:

      --pid 1800

  Sürecin çalıştığı süre:

     --uptime 3:24:07

  Adı:

    --long_script

  Ve bu süreç üzerinde yapabileceğimiz olaylar:   Yeniden başlat, başlat, durdur, logları temizle, logları görüntüle gibi

   Bir sonraki yazımda XML-RPC API sinin kullanımından API yi kullanarak süreçlere nasıl müdahale edebildiğimizden  bahsedeceğim.

4 Temmuz 2014

Posted In: Açık kaynak, Gezegen, linux, Özgür yazılım, ozguryazilim, process control, supervisor, supervisord

Twitter Auto Publish Powered By : XYZScripts.com