Lấy thông số server sử dụng Telegraf, InfluxDB và Grafana

Làm Performance Testing có khi bạn muốn lấy các thông số của server nhưng có vẻ hơi khó khăn vì ít người chia sẻ. Bạn tìm đến PerfMon thấy có vẻ đúng thứ bạn cần, nhưng có 1 hạn chế là bạn run test bằng non-UI Jmeter, lúc sau bạn muốn xem kết quả thì lại phải bật Jmeter để xem. Bài trước, mình đã hướng dẫn cách dùng grafana để monintor các thông số của Jmeter, bây giờ vẫn sử dụng grafana mà mình cũng có thể view được các thông số của Server.

I. Cách làm việc của các thành phần

  1. Telegraf sẽ lấy thông tin từ Server
  2. Telegraf sẽ lưu thông tin lấy được vào influxDB
  3. Grafana sẽ query vào influxDB rồi hiển thị data theo thời gian

II. Cài đặt Telegraf

1. Vào link https://portal.influxdata.com/downloads/

Tùy vào hệ điều hành server của bạn mà bạn lấy version tương ứng. Ở đây, mình cài Windows server nên mình sẽ dùng bản cho Windows

2. Copy cái link trên rồi open nó ở 1 tab khác của Browser để download file zip

3. Giải nén vào “C:\Program Files\telegraf

4. Mở file telegraf.conf rồi thay thế toàn bộ file bằng file này.

III. Kết nối Telegraf và InfluxDB

1. Tạo database trên InfluxDB

Trên InfluxDB, run 2 file influxd.exe bằng quyền Admin và file influx.exe

Trên file influx.exe:

Tạo database:

CREATE DATABASE telegraf 

Tạo user:

CREATE USER telegraf WITH PASSWORD 'telegraf123' WITH ALL PRIVILEGES
CREATE USER grafana WITH PASSWORD 'grafana123' WITH ALL PRIVILEGES 

2. Update file telegraf.conf

Mở file telegraf.conf, tìm đến dòng [[outputs.influxdb]], sửa lại các thông số như dưới đây:

database = "telegraf"
username = "telegraf"
password = "telegraf123"

3. Mở PowerShell bằng quyền admin rồi run

C:\"Program Files"\Telegraf\telegraf.exe --service install
net start telegraf

Nếu bạn gặp vấn đề thì hãy đọc thêm thông tin ở đây

IV. Kết nối InfluxDB và Grafana

Tương tự như bài trước, bạn cần tạo ra 1 cái Source mới.

  • Do Grafana và InfluxDB ở 2 máy khác nhau nên chỗ này bạn phải điền địa chỉ IP của con máy server vào
  • Phía dưới thì bạn cứ dùng Account nhưng đã setup ban đầu: grafana/grafana123

Sau đó, bạn tạo ra 1 dashboard mới, ở đây mình sử dụng dashboard số 1902

Và cuối cùng đây là kết quả:

V. Tổng kết

Hiện tại, bạn đã vừa có thể xem thông số của Jmeter và Server ở cùng 1 nơi và bất kỳ thời điểm nào bạn muốn, đẹp đẽ chứ ko xấu mù như cái plugin Perfmon. Sử dụng grafana sẽ là 1 lựa chọn hoàn hảo cho bạn nào phải làm performance testing mà công ty không có điều kiện trả tiền cho những service đắt đỏ. Vậy thôi, chúc các bạn vui vẻ khi làm performance test. 😀

20 thoughts on “Lấy thông số server sử dụng Telegraf, InfluxDB và Grafana

  1. Pingback: Monitor các thông số của Jmeter bằng influxDB và Grafana | GiangTester Blog

  2. Pingback: Cách thực hiện load test | GiangTester Blog

  3. Chao ban , ban có thể nói rõ mô hình cài đặt, các phần mềm cài trên máy nào , vì mình ko rõ cài trên web app máy cần test hay máy khác

    • Mình có khoanh vùng rồi đó, trên hình ấy.
      – InfluxDB + Telegraf bạn phải cài trên con máy mà bạn host web server.
      – Grafana thì bạn cài máy nào cũng được, miễn là ko phải máy Server

    • Sẽ tiện hơn nếu chị dùng Prometheus, dùng telegraf ko lấy đc 2 kiểu dữ liệu khác nhau trên cùng 1 máy.

      • Ý là ở thời điểm hiện tại chỉ để học thì dùng cái telegraf sẽ có bất tiện là phải cài telegraf và influxDB trên server, còn Promotheus thì mình có thể dùng trên cùng 1 máy đúng không e?
        C xem bài về Promotheus thì chỉ thấy theo dõi thông số của mySQL mà ko thấy có thông số của Server như CPU, RAM,.. không biết là để theo dõi các thông số này từ Promotheus thì thế nào? Cái dashboard 1902 là chỉ dùng cho telegraf thôi, nếu dùng cho Promotheus thì sẽ phải dùng dasboard khác?

  4. Chào anh,em mới tìm hiểu về kiểm thử hiệu năng nên kiến thức còn kém,các bài viết của a rất hay và dễ hiêu hi e có 2 câu hỏi muốn hỏi a
    1 là e hiện tại đang dùng máy client để test hiệu năng cho 1 web đào tạo của trường đại học nhưng e không can thiệp được vào sever mà chỉ có thể test trên máy cá nhân của mình thì e không thể cài cái plugin như a hướng dẫn để xem thông số của sever đúng không anh,e chỉ xem được throught respontiem,…thôi phải không ạ
    Và 2 là e chạy chế độ GUI trên Jmeter để xem report và phân tích được không ạ
    e cảm ơn a nhiều

    • 1. Làm test perf mà không được xem những thông số kia thì làm cũng vô nghĩa em ạ. 😀
      2. chạy GUI được nhưng mà chính Jmeter khuyên dùng non-GUI, lý do thì nhiều. Mặc dù thế thì em cứ làm như em nghĩ, rồi có vấn đề thì tính tiếp.

      • vâng anh,anh cho e hỏi máy tính cá nhân của e k thể cài được 2 plugin InfluxDB + Telegraf nên k phân tích được thông số cpu vs ram
        Nhưng sẽ cài được Grafana như a hướng dẫn ở trên
        Cộng thêm việc xem file HTML dashboard để phân tích và báo cáo nữa thì vẫn ổn chứ a nhỉ
        Em cảm ơn anh

      • Vâng anh,e mới làm kiểm thử hiệu năng
        Em kiểm thử cho web cổng thông tin đào tạo của 1 trường đại học nên e nghĩ hiệu năng của nó cũng phải khá tốt
        nhưng sau khi làm theo bài hướng dẫn load test của a thì e thấy với 30 user và ramup duration set up tương tự như a làm thì đã có lỗi xảy a với 0.02% lỗi ( có phải cứ có lỗi xảy ra thì điểm load test là ở đó phải k a nhỉ )
        tương tự e cho lên 30,50,100 user thì lỗi lên tới 0.05-0.08 %
        throught và respon cũng đạt tới ngưỡng như bài a hướng dẫn
        Như vậy thì e sẽ kết luận là với test case này thì load test của nó là 80-100 user,nhưng sao e thấy như v có vẻ rất ít so với 1 web cổng đào tạo đăng kí môn học xem điểm của 1 trường đại hoc a à
        Không biết e có làm gì sai không a nhỉ

        • “Em kiểm thử cho web cổng thông tin đào tạo của 1 trường đại học nên e nghĩ hiệu năng của nó cũng phải khá tốt”
          –> Lỗi do đâu, phải tìm hiểu đã, có log server ko, CPU và RAM server thế nào? Em bất ngờ về perf của hệ thống yếu hơn em nghĩ thì cũng là điều hết sức bình thường, không phải chỉ có em mới bất ngờ đâu.
          “Không biết e có làm gì sai không a nhỉ” –> anh chịu thôi, anh có biết em làm thế nào đâu. 😀

      • em cảm ơn anh
        Em có thể liên lạc với a bằng cách nào k ạ
        e có một vài câu hỏi muốn dc a giúp đỡ hi

        • Lục kỹ lại blog thì em sẽ thấy cách liên lạc với anh. Nhưng hiện tại anh không có nhiều thời gian để trả lời nữa, do vài yếu tố:
          – công việc nhiều
          – giờ anh chỉ làm automation, không làm performance
          – công ty chặn hết kênh liên lạc qua internet, anh chỉ onl bằng điện thoại.

Leave a Reply

Your email address will not be published. Required fields are marked *