Thứ ba, 03/06/2014 | 00:00 GMT+7

Cách cấu hình Collectd để thu thập số liệu hệ thống cho Graphite trên Ubuntu 14.04

Thu thập và trực quan hóa dữ liệu là một cách quan trọng để đưa ra quyết định sáng suốt về server và dự án của bạn.

Trong hướng dẫn trước , ta đã thảo luận về cách cài đặt và cấu hình Graphite để trực quan hóa dữ liệu trên server của ta . Tuy nhiên, ta không có cách tốt để thu thập hoặc thậm chí chuyển dữ liệu vào Graphite.

Trong hướng dẫn này, ta sẽ thảo luận về việc cài đặt và sử dụng Collectd , một tập hợp thống kê hệ thống có thể thu thập và sắp xếp các số liệu về server và các dịch vụ đang chạy của bạn.

Ta sẽ hướng dẫn bạn cách cài đặt và cấu hình collectd để truyền dữ liệu vào Graphite để kết xuất. Ta sẽ giả định bạn đã cài đặt và chạy Graphite trên server Ubuntu 14.04 như ta đã chỉ cho bạn trong hướng dẫn cuối cùng.

Cài đặt Collectd

Điều đầu tiên ta sẽ làm là cài đặt collectd. Ta có thể lấy cái này từ repository mặc định .

Cập nhật OS local và sau đó cài đặt bằng lệnh :

sudo apt-get update sudo apt-get install collectd collectd-utils 

Thao tác này sẽ cài đặt daemon và giao diện điều khiển trình trợ giúp. Ta vẫn cần cấu hình nó để nó biết chuyển dữ liệu mà nó thu thập được sang Graphite.

Cấu hình Collectd

Bắt đầu bằng cách mở file cấu hình sưu tập trong editor với quyền root:

sudo nano /etc/collectd/collectd.conf 

Điều đầu tiên mà ta nên đặt là tên server của máy mà ta đang sử dụng. Collectd được dùng để gửi thông tin đến server Graphite từ xa, nhưng ta đang sử dụng nó trên cùng một máy cho hướng dẫn này. Bạn có thể chọn bất kỳ tên nào bạn muốn:

<pre>
Tên server “<span class =" highlight "> graph_host </span>“
</pre>

Nếu bạn đã cấu hình domain thực, bạn có thể bỏ qua bước này và chỉ cần để FQDNLookup để server sử dụng hệ thống DNS để lấy domain thích hợp.

Bạn có thể nhận thấy có một tham số cho "Khoảng thời gian", là khoảng thời gian mà collectd đợi trước khi truy vấn dữ liệu trên server . Điều này được đặt theo mặc định là 10 giây. Nếu bạn đã theo dõi trong bài viết Graphite, bạn sẽ nhận thấy rằng đây là khoảng thời gian ngắn nhất thông thường để Graphite theo dõi thống kê. Hai giá trị này phải khớp để dữ liệu được ghi lại một cách tin cậy .

Tiếp theo, ta đi ngay vào các dịch vụ mà Collectd sẽ thu thập thông tin. Collectd thực hiện điều này thông qua việc sử dụng các plugin. Hầu hết các plugin được sử dụng để đọc thông tin từ hệ thống, nhưng các plugin cũng được sử dụng để xác định nơi gửi thông tin. Graphite là một trong những plugin viết này.

Đối với hướng dẫn này, ta sẽ đảm bảo các plugin sau được bật. Bạn có thể comment về bất kỳ plugin nào khác hoặc bạn có thể làm việc để cấu hình chúng một cách chính xác nếu bạn muốn dùng thử chúng trên server của bạn :

LoadPlugin apache LoadPlugin cpu LoadPlugin df LoadPlugin entropy LoadPlugin interface LoadPlugin load LoadPlugin memory LoadPlugin processes LoadPlugin rrdtool LoadPlugin users LoadPlugin write_graphite 

Một số trong số này cần cấu hình và một số trong số chúng sẽ hoạt động tốt ngay khi xuất xưởng.

Tiếp tục xuống file , ta sẽ đến phần cấu hình của từng plugin. Các plugin được cấu hình bằng cách xác định “khối” cho mỗi phần cấu hình. Điều này tương tự như cách Apache phân chia các chỉ thị trong các khối. Ta sẽ chỉ xem xét một vài trong số này, vì hầu hết các plugin của ta sẽ hoạt động tốt theo cách của chúng.

Ta đã bật plugin Apache vì ta đã cài đặt Apache để phục vụ Graphite. Ta có thể cấu hình plugin Apache bằng một phần đơn giản giống như sau:

<pre>
<Plugin apache>
<Phiên bản “Graphite”>
URL “http: // <span class =" nổi bật”>? Tên domain or_IP </ span> / server-status tự động"
Server “apache”
</Instance>
</Plugin>
</pre>

Trong môi trường production , bạn có thể cần giữ các số liệu thống kê của server được bảo vệ sau một lớp xác thực. Bạn có thể xem mã comment trong phần này của file để xem mã đó sẽ hoạt động như thế nào. Để đơn giản, ta sẽ chứng minh một cài đặt mở không được xác thực.

Ta sẽ tạo trang server-status cho Apache để cung cấp cho ta thông tin chi tiết mà ta cần sau một chút.

Đối với plugin df , cho ta biết mức độ đầy đĩa của ta , ta có thể thêm một cấu hình đơn giản giống như sau:

<pre>
<Plugin df>
Thiết bị “/ dev / <span class =" highlight "> vda </span>“
MountPoint ”/“
FSType "ext3"
</Plugin>
</pre>

Bạn nên trỏ thiết bị đến tên thiết bị của ổ đĩa trên hệ thống. Bạn có thể tìm thấy điều này bằng lệnh lệnh trong terminal:

<pre>
df
</pre>
<pre>
Hệ thống file 1K-blocks Đã sử dụng Có sẵn Sử dụng% Gắn trên
<span class = “highlight”> / dev / vda </span> 61796348 1766820 56867416 4% /
không có 4 0 4 0% / sys / fs / cgroup
udev 2013364 12 2013352 1% / nhà phát triển
tmpfs 404836 340 404496 1% / lần chạy
không có 5120 0 5120 0% / chạy / khóa
không có 2024168 0 2024168 0% / run / shm
không có 102400 0 102400 0% / run / user
</pre>

Chọn network interface bạn muốn giám sát:

<pre>
<Giao diện plugin>
Giao diện “<span class =" highlight "> eth0 </span>“
Bỏ qua Đã chọn sai
</Plugin>
</pre>

Cuối cùng, ta đến với plugin Graphite.Điều này sẽ cho Collectd biết cách kết nối với version Graphite của ta . Làm cho phần trông giống như sau:

<pre>
<Plugin ghi graphite>
<Node "<span class =" highlight "> vẽ đồ thị </span>“>
Server lưu trữ "localhost"
Cổng “2003”
Giao thức “tcp”
LogSendErrors true
Tiền tố “sưu tầm”.
StoreRates đúng
AlwaysAppendDS false
EscapeCharacter “

</Node>
</Plugin>
</pre>

Điều này cho daemon của ta biết cách kết nối với Carbon để chuyển dữ liệu của nó. Ta chỉ định rằng nó sẽ tìm đến máy tính local trên cổng 2003, cổng mà Carbon sử dụng để lắng nghe các kết nối TCP.

Tiếp theo, ta yêu cầu nó sử dụng giao thức đó để chuyển dữ liệu đến Carbon một cách tin cậy . Ta yêu cầu nó ghi lại các lỗi về bàn tay và sau đó đặt tiền tố cho dữ liệu. Vì ta kết thúc giá trị này bằng dấu chấm, nên tất cả thống kê sưu tập cho server lưu trữ này sẽ được lưu trữ trong folder "sưu tập".

Tỷ giá cửa hàng xác định liệu thống kê có được chuyển đổi thành đồng hồ đo trước khi được thông qua hay không. Dòng nguồn dữ liệu nối sẽ nối tên nút vào chỉ số của ta nếu được bật. Ký tự thoát xác định cách các giá trị nhất định có dấu chấm trong đó được chuyển đổi để tránh Carbon tách chúng thành các folder .

Lưu file khi bạn hoàn tất.

Cấu hình Apache để Báo cáo Thống kê

Trong file cấu hình của ta , ta đã bật theo dõi thống kê Apache. Tuy nhiên, ta vẫn cần cấu hình Apache để cho phép điều này.

Trong file server ảo Apache mà ta đã bật cho Graphite, ta có thể thêm một khối vị trí đơn giản sẽ yêu cầu Apache báo cáo số liệu thống kê.

Mở file trong editor của bạn:

sudo nano /etc/apache2/sites-available/apache2-graphite.conf 

Bên dưới khối vị trí “nội dung”, ta sẽ thêm một khối khác để Apache sẽ phục vụ thống kê tại trang /server-status . Thêm phần sau:

<pre>
Bí danh / content / / usr / share / graphite-web / static /
<Vị trí “/ content /”>
SetHandler Không có
</Location>

<span class="highlight">&lt;Location "/server-status"&gt;</span>     <span class="highlight">SetHandler server-status</span>     <span class="highlight">Require all granted</span> <span class="highlight">&lt;/Location&gt;</span>  ErrorLog ${APACHE_LOG_DIR}/graphite-web_error.log 

</pre>

Lưu file khi bạn hoàn tất.

Bây giờ, ta có thể reload Apache để có quyền truy cập vào các thống kê mới:

sudo service apache2 reload 

Ta có thể kiểm tra đảm bảo mọi thứ hoạt động bình thường bằng cách truy cập trang trong trình duyệt web của ta . Ta chỉ cần truy cập domain của bạn , theo sau là /server-status :

<pre>
http: // <span class = “nổi bật”> Tên domain or_IP </ span> / server-status
</pre>

Bạn sẽ thấy một trang trông giống như sau:

thống kê  server

Đặt Lược đồ lưu trữ và Tổng hợp

Bây giờ ta đã cấu hình collectd để thu thập số liệu thống kê về các dịch vụ của bạn, ta cần điều chỉnh Graphite để xử lý dữ liệu nhận được một cách chính xác.

Hãy bắt đầu bằng cách tạo một định nghĩa giản đồ lưu trữ. Mở file cấu hình giản đồ lưu trữ:

sudo nano /etc/carbon/storage-schemas.conf 

Bên trong, ta cần thêm một định nghĩa sẽ cho biết thông tin được lưu giữ trong bao lâu và mức độ chi tiết của dữ liệu ở các cấp độ khác nhau.

Ta sẽ yêu cầu Graphite lưu trữ thông tin thu thập trong repository ảng thời gian mười giây trong một ngày, một phút trong bảy ngày và khoảng thời gian mười phút trong một năm.

Điều này sẽ cung cấp cho ta sự cân bằng tốt giữa thông tin chi tiết cho hoạt động gần đây và xu hướng chung trong dài hạn. Collectd vượt qua các chỉ số của nó bắt đầu bằng chuỗi collectd , vì vậy ta sẽ đối sánh với mẫu đó.

Chính sách mà ta đã mô tả có thể được thêm vào bằng cách thêm các dòng này. Lưu ý , hãy thêm những điều này bên trên policy mặc định, nếu không, chúng sẽ không bao giờ được áp dụng:

[collectd] pattern = ^collectd.* retentions = 10s:1d,1m:7d,10m:1y 

Lưu file khi bạn hoàn tất.

Reload Dịch vụ

Bây giờ collectd đã được cấu hình và Graphite biết cách xử lý dữ liệu của nó, ta có thể reload các dịch vụ.

Đầu tiên, khởi động lại dịch vụ Carbon. Bạn nên sử dụng lệnh "dừng" và sau đó "bắt đầu" với một vài giây ở giữa thay vì lệnh "khởi động lại". Điều này đảm bảo dữ liệu được xóa hoàn toàn trước khi khởi động lại:

sudo service carbon-cache stop          ## wait a few seconds here sudo service carbon-cache start 

Sau khi dịch vụ Carbon hoạt động trở lại, ta có thể làm điều tương tự với collectd. Dịch vụ có thể chưa chạy, nhưng điều này sẽ đảm bảo nó xử lý dữ liệu một cách chính xác:

sudo service collectd stop sudo service collectd start 

Sau đó, bạn có thể truy cập lại domain của bạn và bạn sẽ thấy một cây mới với thông tin sưu tập của bạn :

cây sưu tầm

Kết luận

Cấu hình sưu tập của ta đã hoàn tất và số liệu thống kê của ta đã được ghi lại! Bây giờ, ta có một daemon được cấu hình để theo dõi server và các dịch vụ của ta .

Ta có thể cấu hình hoặc viết các plugin bổ sung cho Collectd khi có nhu cầu. Các server bổ sung với collectd cũng có thể gửi dữ liệu đến server Graphite của ta . Collectd chủ yếu được sử dụng để thu thập số liệu thống kê về các dịch vụ thông thường và máy của bạn nói chung.

Trong phần tiếp theo , ta sẽ cài đặt StatsD, một dịch vụ có thể lưu dữ liệu vào bộ nhớ cache trước khi chuyển nó sang Graphite. Điều này sẽ cho phép ta giải quyết vấn đề mất dữ liệu khi gửi số liệu thống kê quá nhanh mà ta đã mô tả trong bài viết trước. Nó cũng sẽ cung cấp cho ta một giao diện để theo dõi số liệu thống kê trong các chương trình và dự án của riêng ta .

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách cấu hình StatsD để thu thập số liệu thống kê tùy ý cho Graphite trên Ubuntu 14.04
2014-06-03
Cách cài đặt OctoberCMS trên VPS chạy Ubuntu 14.04
2014-05-28
Cách cài đặt và sử dụng Graphite trên server Ubuntu 14.04
2014-05-27
Cách cài đặt và sử dụng Ack, một sự thay thế Grep cho các nhà phát triển, trên Ubuntu 14.04
2014-05-27
Cách sử dụng BitTorrent Sync để đồng bộ hóa các thư mục trong Ubuntu 14.04
2014-05-19
Cách sử dụng HAProxy làm bộ cân bằng tải lớp 4 cho server ứng dụng WordPress trên Ubuntu 14.04
2014-05-16
Cách sử dụng kpcli để quản lý tệp mật khẩu KeePass2 trên server Ubuntu 14.04
2014-05-16
Cách khởi chạy trang web của bạn trên server Ubuntu 14.04 mới với LAMP, SFTP và DNS
2014-05-13
Cách cài đặt Node.js trên server Ubuntu 14.04
2014-05-12
Cách bảo vệ SSH bằng Fail2Ban trên Ubuntu 14.04
2014-05-07