Làm thế nào bạn có thể gỡ lỗi một tập lệnh Phương thức nhập dữ liệu trong Cacti?


8

(Xem phía dưới để cập nhật ...)

Tôi đã viết một tập lệnh phương thức nhập dữ liệu cho Cacti (trong Ruby, để thu thập số liệu thống kê từ beanstalkd) và nó hoạt động từ dòng lệnh (trả về một số nguyên đơn giản, như được ghi lại ở đây ) khi chạy như tài khoản người dùng cacti nhưng công cụ Cacti bản thân nó không thu thập bất kỳ dữ liệu nào và không có gì trong nhật ký.

Dưới đây là thiết lập Phương thức nhập dữ liệu: Phương thức nhập dữ liệu Cacti http://img.skitch.com/20091009-gh7g1kukn9yradj6y2iqrd5qm1.jpg

Và đây là Biểu đồ kết quả (sau khi được thêm vào mẫu biểu đồ của máy chủ lưu trữ và còn lại để chạy đủ lâu để thu thập dữ liệu): Biểu đồ Cacti http://img.skitch.com/20091009-xq1kn3qxkteb5hb11wtx6tbs8m.jpg

Cập nhật # 1 : Có vẻ như Cacti có thể đang tước môi trường:

sudo su - cacti -c 'env -i / script / beanstat --host 10.11.12.13 - cổng 11300 - đang chờ hiện tại'
/ script / beanstat: 4: in `Yêu cầu ': không có tệp nào để tải - rubygems (LoadError)
    từ / script / beanstat: 4

Nếu đó là trường hợp, làm thế nào tôi có thể làm việc xung quanh nó?

Cập nhật # 2 : Phản hồi này trên stackoverflow.com dường như đã giải quyết được vấn đề môi trường, nhưng vẫn không có dữ liệu trong biểu đồ.

Cập nhật # 3 : Nhờ đề xuất của @ Heath, tôi đã nâng cấp mức ghi nhật ký của pug và bắt được điều này:

CẢNH BÁO: Kết quả từ CMD không hợp lệ. Kết quả một phần: U

Không có may mắn nào hiểu được "Kết quả một phần: U" nghĩa là gì. Kịch bản chỉ in một giá trị số nguyên duy nhất.

Cập nhật # 4 : Cuối cùng tôi đã làm việc này. Vấn đề cốt lõi là thiếu môi trường khi shell script chạy. Tôi đã phải giải quyết điều đó bằng cách thêm tiền tố vào tập lệnh Ruby của tôi bằng các dòng sau:

#! / thùng / sh
PATH = / usr / local / bin: $ PATH
exec ruby ​​-x "/ full / path / to / script / thư mục" $ 0 "$ @"
#! / usr / bin / env ruby

Và vấn đề thứ yếu là cấu hình phù hợp của Phương thức nhập dữ liệu (một cho mỗi số liệu riêng biệt tôi muốn thu thập, mặc dù tất cả chúng đều sử dụng cùng một tập lệnh) cung cấp Nguồn dữ liệu cung cấp Mẫu dữ liệu (hoặc ngược lại, tôi ' m vẫn chưa rõ về điều đó) cung cấp các Mẫu biểu đồ cần được gán cho Thiết bị sau đó được thêm vào Cây đồ thị. Tóm lại, đó là một sự thất bại lớn với tài liệu tào lao và tôi hy vọng sẽ không bao giờ phải làm lại.

Cập nhật # 5 : Tôi đã chia sẻ tập lệnh của mình trên GitHub http://github.com/trak3r/cacti-beanstalkd-script

Câu trả lời:


4

Khi tôi đang cố gắng gỡ lỗi một tập lệnh tùy chỉnh, tôi thấy thật hữu ích khi tập lệnh nối thêm một số thông tin vào tệp tạm thời mỗi khi nó được chạy; bằng cách đó tôi có thể chắc chắn rằng nó được gọi theo cách tôi mong đợi. Những thứ như dòng cmd lập luận, môi trường và giá trị mà nó sẽ trả về. Bạn cũng có thể muốn chuyển hướng stderr đến một tệp nhật ký để bắt đầu ra lỗi từ tập lệnh.

Tôi thấy bạn đã thực hiện Phương thức nhập dữ liệu và Mẫu biểu đồ; bạn cũng đã tạo một mẫu dữ liệu?


Quên đề cập đến; Bạn đã thử tăng mức độ đăng nhập pug?
Heath

Yup tôi cũng đã tạo một Mẫu dữ liệu; IIRC đó là điều kiện tiên quyết để thêm các điểm dữ liệu vào Mẫu biểu đồ.
Teflon Ted

Ý tưởng tốt về mức độ đăng nhập pug; Tôi chỉ cần nâng nó lên một notch. Cảm ơn.
Teflon Ted
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.