Mamonsu ile İzleme
Zabbix sistem monitoring aracına postgresql ve üzerinde çalıştığı sistem hakkında veriler aktararak çalışır. Ayrıca genel tuning ve reporting özellikleri vardır.
Kendi başına çalışan bir araç olduğundan extension yazarak, özel sorgular yazarak monitör ettiği alanlar artırılabilir. Varsayılan kurulumda 200e yakın parametreyi kontrol eder ve zabbix sayesinde bunların trendlerini incelememizi ve bağlantılı parametreleri karşılaştırmamıza yardımcı olur.
Centos için bu adrese giderek, scripti sunucuda çalıştırın. Bu script mamonsu repoyu kuracaktır. Bundan sonrasında:
yum install mamonsu
diyerek mamonsuyu kurabilirsiniz.
Repo çalışmazsa github repodaki rpm kurulum yöntemini terchi edilir:
# rpm build araçlarını kuruyoruz.
yum install make rpm-build python2-devel python-setuptools
wget https://github.com/postgrespro/mamonsu/archive/2.3.4.tar.gz
tar xzf 2.3.4.tar.gz && cd mamonsu-2.3.4 && make rpm
# o sunucuya kuracaksak
rpm -i mamonsu*.rpm
Kurduktan sonra:
chkconfig mamonsu on
Yaparak başlangıçta servis olarak çalışmasını sağlıyorsunuz.
Aşağıdaki klasöre gidin ve o 2 adet scripti indirin. Bunlar ek sorgular gönderecektir.
cd /etc/mamonsu/plugins
# transaction zamanlarıyla ilgili temel bilgiler
wget https://raw.githubusercontent.com/edib/mamonsu-plugins/master/postgresql/transactions_time.py
# en büyük tabloları bulmak için
wget https://raw.githubusercontent.com/postgrespro/mamonsu/master/examples/biggest_tables.py
klasör içerisinde bu dosyalar oluşacaktır. Sonrasıdan postgres kullanıcısına geçerek aşağıdaki işlemi gerçekleştiriyoruz. Bu işlem mamonsunun kendi dbsine erişerek monitor datasını tutmasını sağlamaktadır.
createdb mamonsu
createuser mamonsu
#mamonsu db oluşturuyoruz.
mamonsu bootstrap -U postgres -d mamonsu
Aşağıdaki dosyanın içeriğini ve alanlarını bu şekilde değiştirin. adres ve client kısmına uygun dnsname ya da ip yi yazmanız gerekmektedir. vi /etc/mamonsu/agent.conf
[zabbix]
; zabbix server address
address = zabbixip
; configured 'Host name' of client in zabbix (aynı olmak zorunda)
client = clientadi
[postgres]
enabled = True
host = auto
user = mamonsu
database = mamonsu
port = 5432
query_timeout = 10
[system]
enabled = True
[log]
file = /var/log/mamonsu/agent.log
level = INFO
[plugins]
directory = /etc/mamonsu/plugins
Postgres bağlantısı yukarıdaki gibi çalışması için local sockete trust pg_hba.conf içerisinde trust yetkisi verilmelidir. Commentsiz olan satırların en üstüne konur. vi /postgresql/config/path/pg_hba.conf
local all mamonsu trust
zabbix template’inin varolan pluginlere göre oluşturulması gerekir. Bu komut template.xml adında bir dosya üretecektir. Bunu zabbixe template olarak eklemek gerekmektedir.
mamonsu export template template.xml --add-plugins /etc/mamonsu/plugins
# ya da
wget https://raw.githubusercontent.com/postgrespro/mamonsu/master/packaging/conf/template.xml
# ya da
cp /usr/share/mamonsu/template.xml .
Bu template.xml zabbixin kullanabileceği template’tir artık.
# komut satırından
mamonsu zabbix template export /usr/share/mamonsu/template.xml --url=http://zabbix_url/ --user=Admin --password=zabbix
# ya da dosyayı browser üzerinden upload ederiz.
Sonrasında servisi restart ediyoruz.
/etc/init.d/mamonsu start
Zabbixte bu kurulum için host tanımı yapıyoruz. config dosyasında “clientadi” olarak girilmiş değeri hostname olarak bu host tanımında kullanıyoruz. yoksa veri gelmez.
mamonsu bu işlemlerde başka 2 konuda faydalı olacaktır. Parametrelerine de mamonsu --help
ile bakılabilir.
# tune edilebilecek alanları tune eder. Dry-run olmadan kullanırsanız gider dosyada değişiklik yapar.
mamonsu tune --dry-run
# system ve db raporu verir.
mamonsu report