Monitoring Mikrotik with MKTXP

 Monitoring Mikrotik with MKTXP



*Vài lưu ý trước khi vào nội dung chính mình cần chia sẽ:
  • Bài viết này mang tính chất dành cho cá nhân để lưu trữ kiến thức cũng như kinh nghiệm bản thân đã trải qua.
  • Bài viết chia sẻ phi lợi nhuận
  • Bài viết có thể làm vài bạn biểu môi: "xời xời, đơn giản thế này ai chẳng biết, post lên làm gì" ==> thì xem lại mục "1" nhé.
  • Bài viết có lấy thể lấy hình ảnh và 1 vài nội dung trên Internet, nên nếu có gì vi phạm bản quyền, cảm phiền các bạn báo lại giúp mình

    Giới thiệu:

    MKTXP là Prometheus Exporter cho thiết bị Mikrotik.
    Nó thu thập và export metrics trên nhiều thiết bị đồng thời, ngoài việc export metrics ra cho Prometheus, MKTXP còn có thể print 1 số metrics trực tiếp trên CLI.

    Yêu cầu:

  • Python 3.6.x trở lên.
  • Supported OS:
    • Linux
    • Mac OSX
  • Mikrotik Router device(s)
  • Không bắt buộc:
    • Prometheus
    • Grafana

    Cài đặt:

  • Tải về từ python (pip or pip3): 
  •     
    • pip install mktxp
    • pip3 install mktxp
  • Hoặc bản mới nhất từ github:
  •     
    • pip install git+https://github.com/akpw/mktxp

    Bắt đầu:

    Sau khi cài đặt MKTXP, chúng ta cần edit file config. Mình thích sử dụng trình soạn thảo "vim" nên mình dùng code sau:

    mktxp edit -ed vim

Trong file cấu hình có sẵn cấu hình mẫu kèm chú thích, nó giúp ta dễ dàng copy/edit các thông số cần thiết:

[Sample-Router]
    enabled = False         # turns metrics collection for this RouterOS device on / off
    
    hostname = localhost    # RouterOS IP address
    port = 8728             # RouterOS IP Port
    
    username = username     # RouterOS user, needs to have 'read' and 'api' permissions
    password = password
    
    use_ssl = False                 # enables connection via API-SSL servis
    no_ssl_certificate = False      # enables API_SSL connect without router SSL certificate
    ssl_certificate_verify = False  # turns SSL certificate verification on / off   

    dhcp = True                     # DHCP general metrics
    dhcp_lease = True               # DHCP lease metrics
    pool = True                     # Pool metrics
    interface = True                # Interfaces traffic metrics
    firewall = True                 # Firewall rules matching traffic metrics
    monitor = True                  # Interface monitor metrics
    route = True                    # Routes metrics
    wireless = True                 # WLAN general metrics
    wireless_clients = True         # WLAN clients metrics
    capsman = True                  # CAPsMAN general metrics
    capsman_clients = True          # CAPsMAN clients metrics

    use_comments_over_names = False  # when available, forces using comments over the interfaces names

    Cấu hình Mikrotik:

    Với mục đích giám sát thiết bị RouterOS, bạn tên tạo 1 account với các phân quyền cần thiết:

/user group add name=mktxp_group policy=api,read
/user add name=mktxp_user group=mktxp_group password=mktxp_user_password

    Kiểm tra:

    Sau khi định cấu hình thiết bị Mikrotik vào file config, ta tiến hành kiểm tra hoạt động của MKTXP trên CLI, và bên dưới là ví dụ tôi xem thông tin capsman:

[root@localhost ~]# mktxp print -en DHT23 -cc
Connecting to router DHT23@************.sn.mynetname.net
2021-06-04 17:07:49 Connection to router DHT23@************.sn.mynetname.net has been established
+-------------------+----------------+------------------+-----------+-----------------+---------------+----------+----------+----------+
|     dhcp_name     |  dhcp_address  |   mac_address    | rx_signal |    interface    |     ssid      | tx_rate  | rx_rate  |  uptime  |
+===================+================+==================+===========+=================+===============+==========+==========+==========+
| ketoan            | 192.168.7.209  | 80:********C |    -54    | 2.4Ghz--hAPac-1 | URANUS_2.4Ghz | 150 Mbps | 150 Mbps | 4 hours  |
|                   |                |        1         |           |                 |               |          |          |          |
| Camera            | 192.168.7.245  | 00:********6 |    -52    | 2.4Ghz--hAPac-1 | URANUS_2.4Ghz | 150 Mbps | 150 Mbps | 12 days  |
|                   |                |        2         |           |                 |               |          |          |          |
| Printer           | 192.168.7.234  | FC:********0 |    -52    | 2.4Ghz--hAPac-1 | URANUS_2.4Ghz | 144 Mbps | 130 Mbps |  7 days  |
|                   |                |        7         |           |                 |               |          |          |          |
| B8:********3D | No DHCP Record | B8:********3 |    -45    | 2.4Ghz--hAPac-1 | URANUS_2.4Ghz | 300 Mbps | 270 Mbps | 12 days  |
|                   |                |        D         |           |                 |               |          |          |          |
|                   |                |                  |           |                 |               |          |          |          |
| JaneMaisiPhone    | 192.168.7.195  | 62:********C |    -47    |  5Ghz--hAPac-1  |  URANUS_5Ghz  | 18 Mbps  | 780 Mbps | a minute |
|                   |                |        A         |           |                 |               |          |          |          |
| DESKTOP-Q7R2DBC   | 192.168.7.191  | 38:********6 |    -45    |  5Ghz--hAPac-1  |  URANUS_5Ghz  | 866 Mbps | 866 Mbps | 9 hours  |
|                   |                |        6         |           |                 |               |          |          |          |
+-------------------+----------------+------------------+-----------+-----------------+---------------+----------+----------+----------+
2.4Ghz--hAPac-1 clients: 4
5Ghz--hAPac-1 clients: 2
Total connected CAPsMAN clients: 6

    Export to Prometheus:

    Để Prometheus lấy thông tin từ MKTXP ta cần liên kết MKTXP với Prometheus. Làm điều đó bằng cách edit file config Prometheus :

                  
vim /usr/local/prometheus/prometheus.yml

Và chỉ cần thêm:

                    
- job_name: 'mktxp'
    static_configs:
      - targets: ['mktxp_machine_IP:49090']

    Granfana Dashboard:

    Bây giờ với các thông số mà Prometheus nhận được từ MKTXP, chúng sẽ được hiển thị sinh động hơn qua giao diện Grafana Dashboard.

    Setting MKTXP chạy như 1 service trên Linux:

Nếu bạn muốn MKTXP chạy như 1 dịch vụ trên Linux, bạn có thể cho nó khởi động cùng với server:

                  
vim /etc/systemd/system/mktxp.service

Bây giờ copy/paste đoạn code bên dưới vào:
                    
[Unit]
Description=MKTXP Exporter

[Service]
User=user # the user under which mktxp was installed
ExecStart=mktxp export # if mktxp is not at your $PATH, you might need to provide a full path

[Install]
WantedBy=default.target

Thế là xong rồi đấy, chúc các bạn thành công!
Đặt quảng cáo của bạn ở đây

Nhận xét