- Monitoring System
Monitoring adalah proses pengumpulan, penggabungan dan analisis data untuk memonitor performa atau load dari suatu sistem komputer. Salah satu tools yang sering digunakan untuk monitoring sebagai berikut:
- Cacti
- LibreNMS
- CheckMK
- Zabbix
- Prometheus
- Instalasi Zabbix di Red Hat Enterprise Linux 9.
Topologi yang akan kita gunakan seperti gambar dibawah ini.
Sebagai Zabbix Monitoring Server akan di install di node1 (rhel). Untuk node2 (ubuntu) dan node3 (windows) kita akan monitoring melalui zabbix agent yang diinstall di node tersebut. Untuk node4 (mikrotik) kita akan monitoring melalui snmp.
Jalankan command dibawah ini untuk instalasi zabbix (Server, Frontend, Agent) di node1.
node1 |
[sysadmin@node1 ~]$ sudo sed -i ‘/\[epel\]/a excludepkgs=zabbix*’ /etc/yum.repos.d/epel.repo [sysadmin@node1 ~]$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-4.el9.noarch.rpm[sysadmin@node1 ~]$ sudo dnf clean all[sysadmin@node1 ~]$ sudo dnf install -y httpd mariadb-server php-{mysqlnd,fpm} zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent |
Setelah itu buat database untuk zabbix server beserta user dan password database.
node1 |
[sysadmin@node1 ~]$ sudo mysqlMariaDB [(none)]> create database zabbix character set utf8mb4 collate utf8mb4_bin;Query OK, 1 row affected (0.002 sec) MariaDB [(none)]> create user ‘zabbix’@’%’ identified by ‘xibbaz’;Query OK, 0 rows affected (0.004 sec) MariaDB [(none)]> grant all privileges on zabbix.* to ‘zabbix’@’%’;Query OK, 0 rows affected (0.004 sec) MariaDB [(none)]> set global log_bin_trust_function_creators = 1;Query OK, 0 rows affected (0.001 sec) |
Lalu import database schema dan disable log_bin_trust_function_creators.
node1 |
[sysadmin@node1 ~]$ zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | sudo mysql –default-character-set=utf8mb4 -u zabbix -p zabbixEnter password: [sysadmin@node1 ~]$ sudo mysqlMariaDB [(none)]> set global log_bin_trust_function_creators = 0;Query OK, 0 rows affected (0.000 sec) |
Edit file ‘zabbix_server.conf’ di direktori ‘/etc/zabbix’.
node1 |
[sysadmin@node1 ~]$ sudo nano /etc/zabbix/zabbix_server.conf |
/etc/zabbix/zabbix_server.conf |
### Option: DBPassword# Database password.# Comment this line if no password is used.## Mandatory: no# Default:DBPassword=xibbaz |
Lalu enable dan restart beberapa service berikut.
node1 |
[sysadmin@node1 ~]$ sudo systemctl enable –now zabbix-server zabbix-agent httpd php-fpm[sysadmin@node1 ~]$ sudo systemctl restart zabbix-server zabbix-agent httpd php-fpm |
Lalu open port httpd.
node1 |
[sysadmin@node1 ~]$ sudo firewall-cmd –add-port=80/tcp –permanent success[sysadmin@node1 ~]$ sudo firewall-cmd –reload success[sysadmin@node1 ~]$ sudo firewall-cmd –list-ports 80/tcp |
Setelah itu setup zabbix web dengan akses http://hostaddress/zabbix.
Konfigurasi koneksi database (sesuaikan).
Default user (Admin) dan password (zabbix) login.
- Instalasi Zabbix Agent di Ubuntu 22.04.
Jalankan command dibawah ini untuk instalasi zabbix agent di node2.
node2 |
sysadmin@node2:~$ sudo wget https://repo.zabbix.com/zabbix/7.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_7.0-2+ubuntu22.04_all.debsysadmin@node2:~$ sudo dpkg -i zabbix-release_7.0-2+ubuntu22.04_all.deb sysadmin@node2:~$ sudo apt updatesysadmin@node2:~$ sudo apt install -y zabbix-agent |
Lalu izinkan koneksi dari ip zabbix server (192.168.72.11) yang datang dengan mengkonfigurasi file ‘zabbix_agentd.conf’ di direktori ‘/etc/zabbix’.
node2 |
sysadmin@node2:~$ sudo nano /etc/zabbix/zabbix_agentd.conf |
/etc/zabbix/zabbix_agentd.conf |
### Option: Server# List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.# Incoming connections will be accepted only from the hosts listed here.# If IPv6 support is enabled then ‘127.0.0.1’, ‘::127.0.0.1’, ‘::ffff:127.0.0.1’ are treated equally# and ‘::/0’ will allow any IPv4 or IPv6 address.# ‘0.0.0.0/0’ can be used to allow any IPv4 address.# Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com## Mandatory: yes, if StartAgents is not explicitly set to 0# Default:# Server= Server=192.168.72.11 |
Lalu restart service zabbix agent dan zabbix agent sudah siap digunakan.
node2 |
sysadmin@node2:~$ sudo systemctl restart zabbix-agent.service |
- Instalasi Zabbix Agent di Windows 10.
Download file zabbix agent dan unzip. Lalu salin file ‘zabbix_agentd.conf’ di direktori ‘conf’ ke direktori ‘bin’. Lalu izinkan koneksi dari ip zabbix server (192.168.72.11) yang datang dengan edit file ‘zabbix_agentd.conf’ yang baru saja di salin menggunakan notepad.
Lalu buka powershell dengan permission administrator. Dan jalankan command seperti dibawah ini untuk menginstall service dan start service zabbix agent.
Setelah itu izinkan zabbix agent untuk berkomunikasi via windows firewall. Buka Windows Defender Firewall > Allow App Through Windows Defender Firewall > Allow Another App dan browse file ‘zabbix_agentd.exe’.
Untuk zabbix agent sudah bisa digunakan.
- Konfigurasi SNMP di Mikrotik RouterOS v7.
Jalankan command dibawah ini untuk konfigurasi snmp.
node4 |
[admin@node4] > snmp/set enabled=yes contact=+12345678 location=”Surabaya, Jawa Timur” trap-community=public trap-version=2 |
Untuk menambahkan host yang akan dimonitoring silahkan akses dashboard, lalu ke menu Monitoring > Hosts > Create host.
Kita akan menambahkan node2 terlebih dahulu, Isi Hostname, Templates, Host Group, Interfaces Agent dan Tab Inventory Automatic seperti gambar dibawah ini.
Untuk node3 juga kurang lebih sama seperti node2.
Untuk node4 isi Hostname, Templates, Host Group, Interfaces SNMP dan Tab Inventory Automatic seperti gambar dibawah ini.
Tunggu beberapa saat sampai pada bagian table availability berwarna hijau. Setelah hijau silahkan klik table graph untuk menampilkan graph masing masing perangkat.
- Instalasi Prometheus dan Grafana di Red Hat Enterprise Linux 9.
Topologi yang akan kita gunakan seperti gambar dibawah ini.
Prometheus dan Grafana akan di install di node1 (rhel). Untuk node2 (ubuntu) dan node3 (windows) kita akan monitoring melalui node exporter yang diinstall di node tersebut. Untuk node4 (mikrotik) kita akan monitoring melalui snmp exporter.
Jalankan command dibawah ini untuk download prometheus dan mengekstrak di node1.
node1 |
sysadmin@node1 ~]$ sudo -i[root@node1 ~]# cd /opt/[root@node1 opt]# wget https://github.com/prometheus/prometheus/releases/download/v2.53.1/prometheus-2.53.1.linux-amd64.tar.gz[root@node1 opt]# tar xvf prometheus-2.53.1.linux-amd64.tar.gz [root@node1 opt]# ls prometheus-2.53.1.linux-amd64console_libraries consoles data LICENSE NOTICE prometheus prometheus.yml promtool |
Setelah itu install prometheus sebagai service.
node1 |
[root@node1 opt]# sudo nano /etc/systemd/system/prometheus.service |
/etc/systemd/system/prometheus.service |
[Unit]Description=Prometheus Server [Service]User=rootExecStart=/opt/prometheus-2.53.1.linux-amd64/prometheus –config.file=/opt/prometheus-2.53.1.linux-amd64/prometheus.yml [Install]WantedBy=default.target |
Lalu enable dan start servicenya. Buka juga port untuk prometheus 9090/tcp.
node1 |
[root@node1 opt]# systemctl daemon-reload [root@node1 opt]# systemctl enable –now prometheus.service |
Coba akses prometheus via browser http://host:9090.
- Instalasi Node Exporter di Ubuntu 22.04.
Jalankan command dibawah ini untuk download node exporter dan mengekstrak di node2.
node2 |
sysadmin@node2:~$ sudo -iroot@node2:~# cd /opt/root@node2:/opt# wget https://github.com/prometheus/node_exporter/releases/download/v1.8.2/node_exporter-1.8.2.linux-amd64.tar.gzroot@node2:/opt# tar xvf node_exporter-1.8.2.linux-amd64.tar.gz root@node2:/opt# ls node_exporter-1.8.2.linux-amd64LICENSE NOTICE node_exporter |
Setelah itu install node exporter sebagai service.
node2 |
root@node2:/opt# nano /etc/systemd/system/node-exporter.service |
/etc/systemd/system/node-exporter.service |
[Unit]Description=Node Exporter [Service]User=rootExecStart=/opt/node_exporter-1.8.2.linux-amd64/node_exporter [Install]WantedBy=default.target |
Lalu enable dan start servicenya. Node exporter menggunakan port 9100/tcp, coba akses metric node2 melalui browser http://host:9100/metrics.
node2 |
root@node2:/opt# systemctl daemon-reload root@node2:/opt# systemctl enable –now node-exporter.service |
- Instalasi Windows Exporter di Windows 10.
Download file Windows Exporter dan install di Windows. Untuk windows exporter secara default menggunakan port 9182/tcp. Coba akses metric node3 melalui browser http://host:9182/metrics.
- Instalasi SNMP Exporter di Red Hat Enterprise Linux 9.
Untuk mengambil metric dari perangkat yang menggunakan snmp dibutuhkan yang namanya snmp exporter. Kita akan install snmp exporter di node1.
node1 |
sysadmin@node1 ~]$ sudo -i[root@node1 ~]# cd /opt/[root@node1 opt]# wget https://github.com/prometheus/snmp_exporter/releases/download/v0.26.0/snmp_exporter-0.26.0.linux-amd64.tar.gz[root@node1 opt]# tar xvf snmp_exporter-0.26.0.linux-amd64.tar.gz [root@node1 opt]# ls snmp_exporter-0.26.0.linux-amd64LICENSE NOTICE snmp_exporter snmp.yml |
Setelah itu install snmp exporter sebagai service.
node1 |
[root@node1 opt]# nano /etc/systemd/system/snmp-exporter.service |
/etc/systemd/system/snmp-exporter.service |
[Unit]Description=SNMP Exporter [Service]User=rootExecStart=/opt/snmp_exporter-0.26.0.linux-amd64/snmp_exporter –config.file=/opt/snmp_exporter-0.26.0.linux-amd64/snmp.yml [Install]WantedBy=default.target |
Lalu enable dan start servicenya. SNMP exporter menggunakan port 9116/tcp, coba akses snmp exporter node1 melalui browser http://host:9116/.
node1 |
[root@node1 opt]# systemctl daemon-reload [root@node1 opt]# systemctl enable –now snmp-exporter.service |
Untuk mengambil metric dari ubuntu, windows dan mikrotik edit file ‘prometheus.yml’.
node1 |
[root@node1 ~]# nano /opt/prometheus-2.53.1.linux-amd64/prometheus.yml |
/opt/prometheus-2.53.1.linux-amd64/prometheus.yml |
global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: – static_configs: – targets: # – alertmanager:9093 rule_files: # – “first_rules.yml” # – “second_rules.yml” scrape_configs: – job_name: “prometheus” static_configs: – targets: [“localhost:9090”] – job_name: “ubuntu servers” static_configs: – targets: [“192.168.72.12:9100”] – job_name: “windows workstations” static_configs: – targets: [“192.168.72.13:9182”] – job_name: ‘mikrotik routers’ static_configs: – targets: – 192.168.72.14 # SNMP device. metrics_path: /snmp params: auth: [public_v2] module: [mikrotik] relabel_configs: – source_labels: [__address__] target_label: __param_target – source_labels: [__param_target] target_label: instance – target_label: __address__ replacement: 127.0.0.1:9116 |
Lalu restart service prometheus.
node1 |
[root@node1 ~]# systemctl restart prometheus.service |
Coba akses melalui browser dashboard prometheus http://host:9090/targets.
Selanjutnya install grafana untuk membuat visualisasi dashboard masing” perangkat. Jalankan command dibawah ini.
node1 |
[root@node1 ~]# yum install -y https://dl.grafana.com/oss/release/grafana-11.1.0-1.x86_64.rpm[root@node1 ~]# systemctl enable –now grafana-server.service |
Lalu open port 3000/tcp yang digunakan oleh grafana.
node1 |
[root@node1 ~]# firewall-cmd –add-port=3000/tcp –permanent [root@node1 ~]# firewall-cmd –reload |
Akses grafana melalui browser http://host:3000 dengan username dan password ‘admin’.
Selanjutnya kita tambahkan data source.
Lalu yang perlu di isi ada pada bagian name dan connection (pastikan benar). Setelah itu klik Save & test.
Selanjutnya untuk membuat dashboard kita akan menyalin template dari link berikut.
Ubuntu (ID 1860) – https://grafana.com/grafana/dashboards/1860-node-exporter-full/
Windows (ID 6593) – https://grafana.com/grafana/dashboards/6593-windows-node/
Mikrotik (ID 14857) – https://grafana.com/grafana/dashboards/14857-mikrotik/
Kita tambahkan untuk device ubuntu terlebih dahulu.
Setelah itu klik load, dan sesuaikan nama dan data source yang baru saja ditambahkan sesuai gambar dibawah, kalau sudah klik import.
Ulangi langkah langkah diatas saat menambahkan template dashboard untuk windows dan mikrotik.
Jika sudah masuk ke menu dashboard maka akan muncul beberapa dashboard seperti pada gambar berikut.
Untuk melihat detail dashboard tinggal klik nama masing” dashboard.
Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti. Klik disini untuk info lengkapnya.
Penulis : Achmad Alif Nasrulloh