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.

Lưu ý trong file config này:

urls = ["http://127.0.0.1:8086"]
  • Nếu influxdb và telegraf ở cùng 1 máy thì ip = 127.0.0.1
  • Nếu influxdb và telegraf ở trên 2 máy khác nhau thì ip = ip_máy_chứa_influxdb

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.

  • URL ở đây là địa chỉ của con máy có chứa influxdb, ví dụ: 10.10.22.12
  • 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. 😀

0 0 votes
Article Rating
Subscribe
Notify of
guest
24 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback

[…] Lấy thông số server sử dụng Telegraf, InfluxDB và Grafana This entry was posted in Performance Testing and tagged Jmeter, Performance Testing by Giang Nguyen. Bookmark the permalink. […]

trackback

[…] Lấy thông số server […]

Starfish
Starfish
2 years ago

hay quá

Trung
Trung
2 years ago

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

Oanh Lê
Oanh Lê
2 years ago

Thanks e nhé, ban đầu c định monitor qua collectD nhưng không thực hiện theo được http://www.vinsguru.com/jmeter-server-performance-monitoring-with-collectd-influxdb-grafana/
nên lại chuyển sang dùng cái của e ^^

Oanh Lê
Oanh Lê
2 years ago
Reply to  Giang Nguyen

Ý 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?

Oanh Lê
Oanh Lê
2 years ago
Reply to  Giang Nguyen

ok e, để c research thêm nhé

Oanh Lê
Oanh Lê
2 years ago
Reply to  Giang Nguyen

Giang ơi, c cài đặt và config được exporter windows_exporter và config trên Prometheus rồi. Giờ c đang tìm dashboard trên Grafana để view thì thấy có dashboard https://grafana.com/grafana/dashboards/10467 nhưng nó lại có tiếng Trung xem ko hiểu lắm với nó rối quá :(. E đang dùng dashboard nào vậy cho c xin ID được không? Hay e có cách nào để tìm được đúng dashboard phù hợp với mục đích của mình sugguest cho c với được ko ^^

Hữu Phước
Hữu Phước
2 years ago

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

Hữu Phước
Hữu Phước
2 years ago
Reply to  Giang Nguyen

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

Hữu Phước
Hữu Phước
2 years ago
Reply to  Giang Nguyen

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ỉ

Hữu Phước
Hữu Phước
2 years ago
Reply to  Giang Nguyen

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

Nguyễn Minh
Nguyễn Minh
1 year ago

Cài này dùng để đọc thông số gì từ máy tính vậy ạ ?

Đức Hòa
Đức Hòa
10 months ago

Nguyen em có dựng con prometheus thu thập metrics của 1 máy centos7 và windowns2k16 và đã hiển thị thông tin của con centos len grafana được rồi nhưng con windown2k16 thì không hiển thị được thông tin. Trong phần targets của prometheus thì đã kết nối on tới windowns2k16 . Mong anh giúp đỡ