Raspberry Pi'ye InfluxDB Kurulumu

Bu yazı, PiMyLifeUp - Installing InfluxDB to the Raspberry Pi kaynağından Türkçe'ye çevrilerek hazırlanmıştır.

Bu Raspberry Pi InfluxDB eğitiminde, InfluxDB'yi Raspberry Pi üzerinde nasıl kurup ayarlayacağınızı göstereceğiz.

Raspberry Pi InfluxDB

Ayrıca güvenliğini artırmak için InfluxDB sunucunuzda kimlik doğrulamayı nasıl etkinleştireceğinizi ve veritabanıyla komut satırı üzerinden nasıl etkileşim kuracağınızı da göstereceğiz.

InfluxDB'nin ne olduğunu merak edenler için, bu zaman serisi tabanlı bir veritabanı sistemidir. Bunun anlamı, veritabanındaki her veri noktasının bir zaman damgası içereceğidir.

Zaman serisi tabanlı olması, InfluxDB'yi metrik ve olayları izlemek için en iyi veritabanlarından biri yapar. InfluxDB'yi bir odadaki sıcaklık veya bir sistemin CPU kullanımı gibi bilgileri saklamak için kolayca kullanabilirsiniz.

InfluxDB, popüler görselleştirme aracı Grafana ile birlikte kullanmak için mükemmel bir veritabanı yazılımıdır. Grafana, bir InfluxDB veritabanından veri görüntülemek için yerleşik desteğe sahiptir.

InfluxDB'yi Raspberry Pi'ye Kurma

Sonraki birkaç bölümde, InfluxDB'yi kurup çalıştırmak için Raspberry Pi'nizi ayarlama sürecinde size yol göstereceğiz.

Raspberry Pi'nizi InfluxDB için Hazırlama

1. InfluxDB'yi Raspberry Pi'ye kurmadan önce yapmamız gereken ilk şey, şu anda kurulu olan tüm paketlerin güncel olduğundan emin olmaktır.

Aşağıdaki iki komutu çalıştırarak kurulu tüm paketleri yükseltebiliriz.

sudo apt update
sudo apt upgrade

InfluxDB Deposunu Ekleme

2. Her şey artık güncel olduğuna göre, InfluxDB'yi Raspberry Pi'ye kurmaya devam edebiliriz.

Bir sonraki adımımız, InfluxDB depo anahtarını Raspberry Pi'mize eklemektir.

Anahtarı eklemek, Raspberry Pi OS'deki paket yöneticisinin depoyu aramasına ve kurduğu paketleri doğrulamasına olanak tanır.

InfluxDB anahtarını aşağıdaki komutu çalıştırarak ekleyebiliriz.

curl https://repos.influxdata.com/influxdata-archive.key | gpg --dearmor | sudo tee /usr/share/keyrings/influxdb-archive-keyring.gpg >/dev/null

Bu komut, anahtarı curl kullanarak indirecek ve bir pipe ("|") kullanarak doğrudan "gpg" programına iletecektir. Keyring dearmor edildikten sonra "/usr/share/keyrings/" dizinine kaydedilir.

3. Artık InfluxDB depo anahtarını Raspberry Pi'mize kurduğumuza göre, deposunu kaynak listesine eklememiz gerekecek.

Şimdi InfluxDB deposunu kaynak listesine eklemek için aşağıdaki komutu girin. Bu komut, Ubuntu veya Raspberry Pi OS gibi Debian tabanlı bir işletim sistemi çalıştıran herkes için çalışacaktır.

echo "deb [signed-by=/usr/share/keyrings/influxdb-archive-keyring.gpg] https://repos.influxdata.com/debian stable main" | sudo tee /etc/apt/sources.list.d/influxdb.list

4. Depo eklendiğine göre, artık paket listesini tekrar güncellememiz gerekiyor.

Bunu yapmamız gerekiyor çünkü apt paket yöneticisinin az önce eklediğimiz depoyu paketler için aramasını sağlamalıyız. İşletim sistemi bunu otomatik olarak yapmaz.

Paket listesini güncellemek için Raspberry Pi'nizde aşağıdaki komutu çalıştırın.

sudo apt update

InfluxDB'yi Raspberry Pi'nize Kurma

5. Depoyu ayarladığımıza göre, artık InfluxDB yazılımını kurmaya geçebiliriz. Ancak bunu yapmadan önce, Raspberry Pi'nizde InfluxDB V2 mi yoksa V1 mi çalıştırmak istediğinize karar vermelisiniz.

Bu sürümler arasında bazı önemli farklar vardır, bu yüzden kullanım durumunuz için hangi sürümün gerekli olduğunu kontrol edin. Bazı kullanıcılar Grafana kullanırken V1'de kalmayı tercih eder.

InfluxDB V2'yi Raspberry Pi'ye Kurma

6a. InfluxDB V2'yi kurmak, terminalinizde aşağıdaki komutu kullanmak kadar basittir.

Paket yöneticisi hem veritabanını hem de bir CLI aracını kuracaktır.

sudo apt install influxdb2

InfluxDB V1 Kurma

6b. InfluxDB V1'i Raspberry Pi'nize kurmak için, aşağıdaki komutu kullanmanız gerekecek.

sudo apt install influxdb

InfluxDB Sunucusunu Başlatma

7. InfluxDB artık Raspberry Pi'mize kurulduğuna göre, şimdi onu önyüklemede başlayacak şekilde ayarlayalım.

Bunu, InfluxDB servis dosyamızı etkinleştirmek için systemctl servis yöneticisini kullanarak yapabiliriz.

Raspberry Pi'nizde InfluxDB'nin önyüklemede başlamasını etkinleştirmek için aşağıdaki iki komutu çalıştırın.

sudo systemctl unmask influxdb
sudo systemctl enable influxdb

Kullandığımız ilk komut influxdb servis dosyasının maskesini kaldırır. Servisin maskesini kaldırmak, maskeli bir servisin başlatılamayacağı için servisi etkinleştirebilmemizi ve başlatabilmemizi sağlar.

İkinci komutumuz influxdb servisini etkinleştirir. Bu komut, servis yöneticisine "influxdb.service" dosyasını gözetlemesini ve içeriğine dayalı olarak servisi ayarlamasını söyleyecektir.

8. Artık her şey ayarlandığına göre, InfluxDB'yi Raspberry Pi'mizde başlatmaya geçebiliriz.

InfluxDB sunucusunu başlatmak için, aşağıdaki komutu çalıştırmamız gerekecek. Servis yöneticisi ardından servisi başlatacak ve onu izlemeye başlayacaktır.

sudo systemctl start influxdb

Raspberry Pi'de InfluxDB V2 Nasıl Kullanılır

InfluxDB V1 ve V2'nin farklılaştığı önemli yollardan biri onlara nasıl eriştiğinizdir. V1 çoğu şey için terminal kullanmanızı beklerken, V2 büyük ölçüde bir GUI'ye ve erişim token'larına dayanır.

Bu bölüm, Raspberry Pi'nizde InfluxDB V2'nin ilk kurulum deneyimini kapsayacaktır. Bunun yerine V1 kullanmayı seçtiyseniz, bu bölümü atlayın.

InfluxDB V2 Web Arayüzüne Erişme

1. İlk olarak, Raspberry Pi'nizin yerel IP adresini bilmeniz gerekecek. Bilmiyorsanız, aşağıda gösterildiği gibi her zaman hostname komutunu kullanabilirsiniz.

hostname -I

2. Bir sonraki adımınız, favori web tarayıcınızda aşağıdaki URL'ye gitmektir. Bu sizi InfluxDB V2'nin web arayüzüne götürecektir.

"<IPADRESI>" kısmını IP'nizle değiştirdiğinizden emin olun. Bu sayfayı Pi'nin kendisinde açıyorsanız, "localhost" veya "127.0.0.1" kullanabilirsiniz.

http://<IPADRESI>:8086/

İlk Kurulum

3. InfluxDB 2 arayüzüne ilk eriştiğinizde, bir başlangıç kullanıcısı oluşturmanız gerekecek.

Bu süreci başlatmak için, "GET STARTED" butonuna tıklayın.

Get started GUI'yi aç

4. Artık kullanıcınız için detayları doldurmanız gerekecek (1.). Gelecekte bu web arayüzüne erişmek için bunu kullanacağınızdan, güçlü bir parola ayarladığınızdan emin olun.

Tüm alanları doldurduktan sonra, "CONTINUE" butonuna tıklayın (2.).

Raspberry Pi'de İlk InfluxDB kullanıcısını ayarla

5. Bir sonraki adım son derece önemlidir. InfluxDB2 artık Raspberry Pi'nizde bir API token'ı oluşturmuş olacak. Ekranınızda gösterildiği gibi API token'ını not edin (1.). Bu token size süper kullanıcı ayrıcalıkları verir ve bu sayfadan ayrıldığınızda bir daha gösterilmeyecektir.

Kodu not aldıktan sonra, "QUICK START" butonuna tıklayın (2.).

InfluxDB Erişim Token'ını not al

Başlarken

6. InfluxDB v2, Raspberry Pi'nizde bu veritabanını kullanma konusunda çeşitli rehberler sunar.

Kullanmak istediğiniz programlama dilini temsil eden kutuyu seçin ve adımları takip edin.

Daha fazla bilgi edinmek için başlangıç adımlarını kullanın

Raspberry Pi'nizde InfluxDB V1 Kullanma

Bu bölümde, InfluxDB V1'i Raspberry Pi'de nasıl kullanabileceğinizi keşfedeceğiz. InfluxDB'nin bu sürümüyle etkileşiminizin çoğu komut satırı arayüzünü kullanarak olacaktır.

InfluxDB V1'i Test Etme

1. Artık InfluxDB V1'i kurduğumuza göre, veritabanıyla konuşmaya başlayabiliriz.

Bunu yapmak için, aşağıdaki komutu çalıştırarak Influx'un komut satırı aracını başlatmamız gerekecek.

Bağlanılacak bir adres belirtmek zorunda değilsiniz çünkü araç, InfluxDB'nin yerel kurulumunu otomatik olarak algılayacaktır.

Varsayılan olarak, InfluxDB'de kurulu kullanıcı yoktur. Bir sonraki bölümde, InfluxDB'nize erişimi kilitlemek için bir admin kullanıcısı oluşturmayı keşfedeceğiz. Ancak şimdilik, InfluxDB'yi hızlıca keşfedeceğiz.

influx

2. InfluxDB varsayılan olarak veritabanı içermeden gelir, bu yüzden ilk görevimiz bir tane oluşturmak olacak.

InfluxDB'de bir veritabanı oluşturmak basittir ve "CREATE DATABASE <DBADI>" kullanılarak yapılabilir.

Örneğimiz için, "pimylifeuptemperature" adlı bir veritabanı oluşturacağız.

CREATE DATABASE pimylifeuptemperature

3. Yeni veritabanımızı değiştirmeye başlamadan önce, CLI'ye onu "use" etmesini söylemeliyiz.

Bir veritabanını kullanmak, aşağıdaki komutu çalıştırmak kadar basittir.

USE pimylifeuptemperature

4. Bir sonraki adımımız, yeni oluşturduğumuz InfluxDB veritabanına biraz veri yazmaktır.

Bunu yapmak için, önce InfluxDB'nin veri deposu hakkında temel bir anlayışa sahip olmamız gerekiyor.

InfluxDB'deki veriler "time series" (zaman serileri) tarafından sıralanır. Bu "zaman serileri" ihtiyacınız kadar çok veya az veri noktası içerebilir. Bu veri noktalarının her biri o metriğin tek bir örneğini temsil eder.

Bir veri noktası, bir zaman, "sıcaklık" gibi bir measurement (ölçüm) adı ve en az bir field (alan)dan oluşur. Ayrıca yalnızca bir string olan indekslenmiş veri parçaları olan tag'leri (etiketler) de kullanabilirsiniz. Etiketler, veritabanı sorgularını optimize etmek için önemlidir.

Bir SQL tablosunun genel düzenine aşinaysanız, "zaman"ı birincil indeks, measurement'ı tablo adı ve tag'leri ile field'leri sütun adları olarak düşünebilirsiniz.

Veri noktası için belirli bir zaman ve tarih belirtmek istemediğiniz sürece zaman damgasını belirtmenize gerek yoktur.

Aşağıda bir InfluxDB veri noktasının temel biçimini ekledik.

<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

InfluxDB satır sözdizimi hakkında daha fazla bilgi edinmek isterseniz, InfluxDB resmi belgelerine göz atabilirsiniz.

5. Artık InfluxDB'deki veriler hakkında temel bir anlayışa sahip olduğumuza göre, veritabanımıza ilk veri noktamızı eklemeye geçebiliriz.

Bu örnek veritabanı için, bir evin çeşitli konumlarının "sıcaklık" ölçümlerini saklayacağız.

Bunun için, "sıcaklık" measurement adı ve "konum" tag anahtarı ile "değer" field anahtarına sahip veri noktaları ekleyeceğiz.

İlk örnek noktamız için, konumun "living_room" ve değerin "20" olduğunu söyleyeceğiz.

INSERT temperature,location=living_room value=20

6. InfluxDB'de veri "seçmeyi" göstermek için verileri daha ilginç hale getirmek amacıyla, biraz daha rastgele veri ekleyelim.

Veritabanımıza biraz ek veri girmek için aşağıdaki birkaç komutu girin. Bunlar yukarıdaki "INSERT" komutunun sadece değeri ve konumu ayarlanmış varyasyonlarıdır.

INSERT temperature,location=living_room value=10
INSERT temperature,location=bedroom value=34
INSERT temperature,location=bedroom value=23

7. Artık bazı örnek verilerimiz olduğuna göre, size "SELECT" kullanarak bu verileri nasıl sorgulayacağınızı gösterebiliriz.

Başlangıç olarak, aşağıdaki gibi bir komut kullanarak bir measurement'tan tüm veriyi alabilirsiniz. Bu komut, belirtilen measurement'tan tüm field ve key'leri alacaktır.

SELECT * FROM temperature

Örnek verimizle bu komutu kullandığınızda, aşağıdaki gibi bir sonuç almalısınız.

name: temperature
time                location    value
----                --------    -----
1574055049844513350 living_room 20
1574055196564029842 living_room 10
1574055196576516557 bedroom     34
1574055197188117724 bedroom     23

8. Diyelim ki şimdi yalnızca yatak odasının sıcaklığını almak istiyorsunuz. Bunu, bir "SELECT" ifadesiyle birlikte "WHERE" ifadesini kullanarak yapabilirsiniz.

Ayrıca değerlerini almak istediğimiz tag/field'ların adını da belirtiyoruz.

Tag alanlarını sorgularken, tüm tag'lerin string olarak kabul edildiğini hatırlamanız gerekiyor. Bu, aradığımız değeri tek tırnak içine almamız gerektiği anlamına gelir.

SELECT value FROM temperature WHERE location='bedroom'

Bu komutla, yalnızca yatak odasındaki sıcaklık değerini gösteren aşağıdaki veri setini almalısınız.

Örnek verimiz durumunda, bu 34 ve 23 olmalıdır.

name: temperature
time                location    value
----                --------    -----
1574055049844513350 living_room 20
1574055196564029842 living_room 10
1574055196576516557 bedroom     34
1574055197188117724 bedroom     23

9. Bu noktada, artık InfluxDB ve verilerinin nasıl çalıştığı hakkında temel bir anlayışa sahip olmanız gerekiyor.

InfluxDB V1'e Kimlik Doğrulama Ekleme

1. Bir sonraki adım, Raspberry Pi'deki InfluxDB kurulumumuza ekstra kimlik doğrulama eklemektir. Kimlik doğrulama olmadan, herkes veritabanınızla etkileşim kurabilir.

Başlamak için, önce admin'imiz olarak görev yapacak bir kullanıcı oluşturmamız gerekiyor.

Bu kullanıcıyı oluşturmak için, önce aşağıdaki komutu çalıştırarak InfluxDB CLI aracını başlatmamız gerekiyor.

influx

2. Bu arayüz içinde, veritabanına tam erişime sahip olacak bir kullanıcı oluşturabiliriz. Bu kullanıcı admin hesabımız olarak görev yapacaktır.

Bu admin kullanıcısını oluşturmak için, InfluxDB'nin CLI aracı içinde aşağıdaki komutu çalıştırın.

kısmını seçtiğiniz güvenli bir parola ile değiştirdiğinizden emin olun.

CREATE USER admin WITH PASSWORD '<parola>' WITH ALL PRIVILEGES

Bu komut, seçtiğiniz parolayla "admin" adlı yeni bir kullanıcı oluşturacak ve ona tüm ayrıcalıkları verecektir.

3. Bu yapıldıktan sonra, "exit" yazıp ENTER tuşuna basarak InfluxDB'den çıkabilirsiniz.

4. Bir sonraki işimiz, kimlik doğrulamayı etkinleştirmek için InfluxDB yapılandırma dosyasını değiştirmektir.

Aşağıdaki komutu kullanarak dosyayı düzenlemeye başlayabiliriz.

sudo nano /etc/influxdb/influxdb.conf

5. Bu dosyanın içinde, [HTTP] bölümünü bulmak için CTRL + W kullanın ve o bölümün altına aşağıdaki seçenekleri ekleyin.

Bulun

[HTTP]

Altına Ekleyin

auth-enabled = true
pprof-enabled = true
pprof-auth-enabled = true
ping-auth-enabled = true

6. Eklendikten sonra, CTRL + X, ardından Y, sonra ENTER tuşuna basarak dosyayı kaydedin.

7. Şimdi, InfluxDB'nin yapılandırmasında değişiklik yaptığımız için, aşağıdaki komutu kullanarak servisi yeniden başlatmamız gerekecek.

Servisi yeniden başlatmak, yapılandırma değişikliklerimizin okunmasını sağlayacaktır.

sudo systemctl restart influxdb

8. Artık InfluxDB'nin kimlik doğrulamasını açtığımıza göre, InfluxDB CLI aracını kullanmadan önce kullanıcı adımızı ve parolamızı girmemiz gerekecek.

Araç içinde "auth" komutunu kullanabilir veya aşağıda gösterdiğimiz gibi kullanıcı adı ve parolayı komut satırından iletebilirsiniz.

influx -username admin -password <parola>

Sonuç

Umarız bu noktada, InfluxDB'yi Raspberry Pi'nizde başarıyla kurmuşsunuzdur. Artık InfluxDB hakkında temel bir anlayışa sahip olmalı ve kimlik doğrulama modunu etkinleştirmiş olmalısınız.

Bu veritabanı modelini kullanmanın, sensörlerden ve diğer kaynaklardan veri saklamayı ne kadar kullanışlı hale getireceğini kolayca görebilirsiniz.

Raspberry Pi'de InfluxDB'yi çalışır hale getirmekle ilgili herhangi bir sorunla karşılaştıysanız, aşağıya yorum bırakmaktan çekinmeyin.