Bagaimana Anda bisa men-debug skrip Metode Input Data di Cacti?

8

(Lihat bagian bawah untuk pembaruan ...)

Saya telah menulis skrip metode input data untuk Cacti (di Ruby, untuk mengumpulkan statistik dari beanstalkd) dan berfungsi dari baris perintah (mengembalikan bilangan bulat tunggal, seperti yang didokumentasikan di sini ) ketika dijalankan sebagai akun pengguna kaktus tetapi alat Cacti sendiri tidak memanen data apa pun dan tidak ada apa pun di log.

Berikut pengaturan Metode Input Data: Metode Input Data Cacti http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg

Dan inilah Grafik yang dihasilkan (setelah ditambahkan ke templat bagan host dan dibiarkan berjalan cukup lama untuk mengumpulkan data): Cacti Graph http://img.skitch.com/20091009-xq1kn3qxkteb5hb11wtx6tbs8m.jpg

Pembaruan # 1 : Sepertinya Cacti mungkin menelanjangi lingkungan:

sudo su - cacti -c 'env -i / script / beanstat --host 10.11.12.13 --port 11300 --stat menunggu saat ini'
/ script / beanstat: 4: di `butuhkan ': tidak ada file seperti itu untuk memuat - rubygems (LoadError)
    dari / script / beanstat: 4

Jika itu masalahnya, bagaimana saya bisa mengatasinya?

Pembaruan # 2 : Respons ini pada stackoverflow.com tampaknya telah menyelesaikan masalah lingkungan, tetapi masih belum ada data dalam bagan.

Pembaruan # 3 : Berkat saran Heath, saya meningkatkan level pencatat polling dan menangkap ini:

PERINGATAN: Hasil dari CMD tidak valid. Hasil Parsial: U

Belum beruntung Googling apa artinya "Hasil Parsial: U". Script hanya mencetak nilai integer tunggal.

Pembaruan # 4 : Saya akhirnya berhasil. Masalah inti adalah kurangnya lingkungan ketika skrip shell berjalan. Saya harus mengatasinya dengan mengawali skrip Ruby saya dengan baris berikut:

#! / bin / sh
PATH = / usr / local / bin: $ PATH
exec ruby ​​-x "/ full / path / ke / script / direktori" $ 0 "$ @"
#! / usr / bin / env ruby

Dan masalah kedua adalah konfigurasi yang tepat dari Metode Input Data (satu untuk setiap metrik terpisah yang ingin saya kumpulkan, meskipun mereka semua menggunakan skrip yang sama) yang memberi makan Sumber Data yang memberi makan Templat Data (atau sebaliknya, saya ' m masih belum jelas tentang itu) yang mengumpankan Template Grafik yang perlu ditugaskan ke Perangkat kemudian ditambahkan ke Pohon Grafik. Singkatnya, ini adalah bencana besar dengan omong kosong untuk dokumentasi dan saya harap tidak perlu melakukannya lagi.

Pembaruan # 5 : Saya telah membagikan skrip saya di GitHub http://github.com/trak3r/cacti-beanstalkd-script

Teflon Ted
sumber

Jawaban:

4

Ketika saya mencoba men-debug skrip khusus, saya merasa terbantu jika skrip menambahkan beberapa informasi ke file temp setiap kali dijalankan; dengan begitu saya bisa memastikan itu disebut seperti yang saya harapkan. Hal-hal seperti argumen cmd line, lingkungan, dan nilai apa yang akan dikembalikan. Anda juga mungkin ingin mengarahkan ulang stderr ke file log untuk menangkap output kesalahan dari skrip.

Saya melihat Anda membuat Metode Input Data dan Template Grafik; apakah Anda juga membuat Templat Data?

Heath
sumber
Lupa menyebutkan; Sudahkah Anda mencoba meningkatkan level logging poller?
Heath
Yup, saya juga membuat Templat Data; IIRC adalah prasyarat untuk menambahkan poin data ke Template Grafik.
Teflon Ted
Ide bagus di tingkat penebangan poller; Saya hanya menabraknya sedikit. Terima kasih.
Teflon Ted