Tiếp theo Zabbix 4.2 Series, bài viết này mình sẽ hướng dẫn các bạn tạo Template và các thành phần cơ bản của một template như Application, Item, Trigger, Graph.
Ngoài các Template có sẵn, để tạo mới một Template có thể giám sát được Host, ngoài thực hiện các thao tác trên Zabbix Web, chúng ta phải tạo script thu thập giá trị cần giám sát và file config đặt trên Host.
Trong hướng dẫn dưới đây mình sẽ tạo một Template kiểm tra dung lượng file và thời gian cập nhật file.
Zabbix 4.2 Series:
Cài đặt & Triển khai Zabbiz 4.2 trên Centos 7
Cấu hình Zabbix-Agent, Thêm, xóa Host
Script tự động cài đặt, cấu hình Zabbix-Agent
Giám sát thông qua Zabbix Proxy
Tạo mới Templates, Applications, Items, Triggers, Graphs
Tạo script và config file trên Host
File script mình sẽ để ở thư mục: /opt/zabbix/
File config sẽ để ở thư mục: /etc/zabbix/zabbix_agentd.d/
Script kiểm tra dung lượng file và thời gian cập nhật file
Script kiểm tra dung lượng file
Các bạn tạo script checkFileSize.py có nội dung sau:
#!/usr/bin/python import os import sys args = sys.argv try: print(os.path.getsize(args[1])) except Exception as e: print(e)
Script kiểm tra thời gian cập nhật file
Các bạn tạo script checkFileUpdate.py có nội dung sau:
#!/usr/bin/python import os import sys from datetime import datetime args = sys.argv try: update_time = datetime.fromtimestamp(os.stat(args[1]).st_mtime) except Exception as e: print(e) else: delta = datetime.now() - update_time print str(delta.total_seconds()).split(".")[0]
Tạo config file
Các bạn tạo file userparameter_checkFile.conf có nội dung sau:
UserParameter=app.checkfile.size[*],/opt/zabbix/checkFileSize.py $1 UserParameter=app.checkfile.update[*],/opt/zabbix/checkFileUpdate.py $1
Sau khi tạo script và file config các bạn khởi động lại dịch vụ Zabbix-Agent
systemctl restart zabbix-agent
Tạo script cập nhật log file
Mình sẽ tạo một script create_test_log.py để cập nhật file /var/log/test.log phục vụ cho bài hướng dẫn này như sau:
import time import logging import logging, logging.handlers def setup_custom_logger(name): formatter = \ logging.Formatter(fmt='%(asctime)s %(levelname)-2s %(message)s' , datefmt='%Y-%m-%d %H:%M:%S') handler = logging.handlers.RotatingFileHandler("/var/log/test.log", maxBytes=9000000, backupCount=15) handler.setFormatter(formatter) screen_handler = logging.StreamHandler() screen_handler.setFormatter(formatter) logger = logging.getLogger(name) logger.setLevel(logging.DEBUG) logger.addHandler(handler) logger.addHandler(screen_handler) return logger logger = setup_custom_logger('testlog') if __name__ == '__main__': while True: logger.info('Test Log For Zabbix') logger.info("Sleep 2s ") time.sleep(2)
Tạo Templates, Applications, Items, Triggers, Graphs
Sau khi hoàn thành các bước trên Host, chúng ta tiến hành truy cập vào Zabbix Web và thực hiện tạo Template.
Tạo Templates
Configuration -> Templates -> Create template
Sau đó nhập:
- Template name
- Group
Tạo Applications
Tiếp theo chọn tab Applications -> Create Application
Nhập vào mục Name sau đó Update
Tạo Application: Check File Size
Tạo Application: Check File Update
Tạo Items
Tiếp theo chọn tab Items -> Create item
Nhập các mục như:
- Name: Check File Size
- Key: app.checkfile.size[/var/log/test.log] Key này có nghĩa sẽ kiểm tra kích thước của file /var/log/test.log. Item key phải giống với file config đã tạo trên Host nhé các bạn.
- Update interval: 30s
Chọn Application tương ứng với item sau đó chọn Update
Tương tự với item ‘Check File Update‘
Sau khi tạo xong các items chúng ta thử thêm Template vừa tạo vào Host đã cấu hình ở trên để kiểm tra Template.
Kết quả như dưới đây là Template đã được tạo thành công.
Tạo Triggers
Tiếp theo đến bước tạo Triggers để check các điều kiện thỏa mãn sau đó có các hành động tiếp theo như báo lỗi, gửi email, sms,…
Chọn tab Triggers -> Create Trigger
Nhập tên Trigger ở mục Name và chọn mức độ cho cảnh báo này ở mục Severity
Ở mục Expression chọn Add
Sau đó phần Condition hiện ra, tiến hành chọn điều kiện kiểm tra theo nhu cầu:
- Item: item muốn kiểm tra, mình chọn item check file update
- Function: ở đây có rất nhiều function, ở đây mình chọn last (). Tức là kiểm tra giá trị cuối cùng.
- Last of (T): Số lần kiểm tra.
- Result: kết quả muốn kiểm tra, ở đây mình chọn > 300. Tức là thời gian cập nhật file cuối cùng lớn hơn 300s (5′) sẽ có thông báo.
Sau đó chọn Insert và Add để thêm Trigger
Tương tự với Trigger Check file size, mình sẽ chọn điều kiện kiểm tra là abschange() Tức là kiểm tra sự chênh lệch giữa giá trị cuối cùng và trước đó. Nếu bằng 0 -> file không được cập nhật.
Để kiểm tra Trigger có hoạt động hay không, các bạn vào mục Monitoring -> Screens
Kết quả bên dưới chứng tỏ Trigger đã hoạt động thành công.
Tạo Graphs
Graph là biểu đồ trực quan để người quản trị có thể dễ dàng giám sát hệ thống, để tạo Graph cho Items các bạn chọn tab Graphs
Sau đó nhập các mục sau:
- Name: tên graph
- Width,Height: kích thước
- Items: Chọn items muốn tạo graphs
Chọn Add để thêm Graph
Kiểm tra Graph
Sau khi tạo xong Graph, các bạn vào Monitoring -> Graphs. Chọn graph vừa tạo để xem các thông số đã được thu thập.
Như vậy, mình đã hướng dẫn các bạn tạo mới Templates, Applications, Items, Triggers, Graphs trên Zabbix 4.2, chúc các bạn thành công và nhớ đón đọc các bài viết tiếp theo nhé.