DEV Community

Abdulkadir Erbas for Açıklab

Posted on

2 1

Zabbix Üzerinden ODBC Kullanarak PostgreSQL'e Sorgu Atılması ve İzlenmesi

ODBC (Open Database Connectivity), farklı türdeki veritabanlarına erişim sağlayan bir arayüzdür. Temel amacı, bir uygulamanın tek bir standart arayüz üzerinden çeşitli veritabanlarına bağlanabilmesini sağlamaktır. ODBC, veritabanı türünden bağımsız olarak SQL sorguları çalıştırarak veri okuma ve yazma işlemlerini kolaylaştırır. Bu sayede, kullanıcılar aynı kod yapısını kullanarak MySQL, PostgreSQL gibi birçok veritabanıyla etkileşim kurabilirler.

Bu yazıda:

  1. ODBC kurulumu
  2. ODBC yapılandırması
  3. Zabbix üzerinden PostgreSQL’e sorgu atılması

konularını ele alacağız.

1. ODBC Kurulumu

zabbix ile postgresql'e ODBC bağlantısı ile erişebilmek için zabbix'in yer aldığı sunucuya aşağıdaki paketi yüklemelisiniz.

sudo apt install odbc-postgresql
Enter fullscreen mode Exit fullscreen mode

2. ODBC Yapılandırması

ODBS bağlantısı için iki temel yapılandırma dosyasını düzenlememiz gerekiyor:
/etc/odbcinst.ini
/etc/odbc.ini

2.1 /etc/odbcinst.ini Yapılandırması

Bu dosya, ODBC sürücüsünü tanımlar. Aşağıdaki yapılandırmayı dosyaya ekleyin.

sudo nano /etc/odbcinst.ini
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver      = /usr/lib/psqlodbcw.so
Setup       = /usr/lib/libodbcpsqlS.so
Driver64    = /usr/lib/x86_64-linux-gnu/odbc/psqlodbcw.so
Setup64     = /usr/lib64/libodbcpsqlS.so
FileUsage   = 1

Not: Eğer 'psqlodbcw.so' dosyasının konumunu bilmiyorsanız, aşağıdaki komutu kullanarak tam yolunu bulabilirsiniz.

find /usr/lib -name "psqlodbcw.so"

2.2 /etc/odbc.ini Yapılandırması

Bu dosya, PostgreSQL'e bağlanmak için gerekli yapılandırmayı içerir.

[PostgreSQL]
Description=PostgreSQL ODBC driver
Driver=postgresql
user=root
Database=<zabbix>
Servername=<127.0.0.1>
Port=<5432>
Username=<zabbix>
Password=<password>
ReadOnly=No
Protocol=7.4+
ShowOidColumn=No
FakeOidIndex=No
RowVersioning=No
ShowSystemTables=No
Fetch=Yes
BoolsAsChar=Yes
SSLmode=prefer
ConnSettings=

Not:
Driver: Bu kısma /etc/odbcinst.ini yapılandırmasında bulunan köşeli parantez içerisindeki ismi girdiğinizden emin olun.

odbcinst -q -d

bu komutla tanımladığınız ismi görebilirsiniz.

2.3 Bağlantının Test Edilmesi

Aşağıdaki komutla ODBC üzerinden PostgreSQL'e bağlantı kurmayı test edebilirsiniz.

isql -v PostgreSQL

bu komuttan sonra aşağıdaki örneğe benzer bir çıktı almalısınız.

$ isql -v PostgreSQL
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

3. Zabbix Üzerinden PostgreSQL’e Sorgu Atılması

Sorgu item kullanarak atılacağı için önce host oluşturmamız gerekli.
Data collection > Hosts içerisinden create host butonuna tıklanıp host oluşturulur. Ben aşağıdaki görseldeki gibi host ekledim.

Image description

Oluşturulan host'un item kısmına gidilip create item butonuna tıklanır. sonrasında aşağıda yer görseldeki gibi yapı girilir.
Image description
Ben bu örnekte kapsamında zabbix veritabanımda yer alan host sayısı izliyorum.
Type olarak Database monitor seçildikten sonra key eklenir.

Not: Key içerisinde yer alan PostgreSQL kısmına ODBC yapılandırmasına yazılan isim girilmelidir. Ben bu örnekte PostgreSQL yazmıştım.

Tüm bunları yaptıktan sonra gelen data aşağıda yer almaktadır.

Image description

Böylelikle zabbix veri tabanımızda ne kadar host bulunduğu bilgisini ODBC kullanarak zabbix'te monitoring etmiş olduk.

Kaynak:
https://www.youtube.com/watch?v=7vC-GpdUqCg
https://www.zabbix.com/documentation/current/en/manual/config/items/itemtypes/odbc_checks

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Dive into an ocean of knowledge with this thought-provoking post, revered deeply within the supportive DEV Community. Developers of all levels are welcome to join and enhance our collective intelligence.

Saying a simple "thank you" can brighten someone's day. Share your gratitude in the comments below!

On DEV, sharing ideas eases our path and fortifies our community connections. Found this helpful? Sending a quick thanks to the author can be profoundly valued.

Okay