Dalam panduan ini, kita akan mempelajari cara menginstal dan mengkonfigurasi SNMP di Ubuntu 18.04 dan CentOS 7. SNMP adalah singkatan dari Simple Network Management Protocol. Ini menyediakan metode tanpa agen untuk mengelola dan memantau perangkat jaringan dan server untuk informasi kesehatan, metrik sistem seperti beban CPU, useran Memori Fisik, jumlah proses yang berjalan, status service, dll. yang mendukung polling melalui SNMPprotokol. Dengan metode ini, Anda tidak perlu menginstal agen Nagios NRPE biasa di host Anda.
Menginstal SNMP
Prasyarat
Sebelum Anda dapat memantau host Linux dengan Nagios menggunakan SNMP, Anda harus menginstal paket yang diperlukan terlebih dahulu. Paket SNMP tersedia di repositori default.
Instal SNMP di Ubuntu 18.04 dan CentOS 7
Jalankan perintah di bawah ini untuk menginstal paket SNMP; Pada CentOS 7
yum update yum install net-snmp net-snmp-utils
Di Ubuntu 18.04
apt update apt install snmpd snmp libsnmp-dev
Konfigurasikan SNMP di Ubuntu 18.04 dan CentOS 7
Setelah instalasi selesai, lanjutkan untuk mengkonfigurasi SNMP sebagai berikut. File konfigurasi default untuk SNMP adalah /etc/snmp/snmpd.conf. File ini sangat dikomentari dan dengan demikian, kami hanya akan membuat beberapa perubahan. Akibatnya, buat copyan file asli sebelum Anda dapat melanjutkan.
cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
Mengonfigurasi Otentikasi
SNMP mendukung tiga versi protokol SNMP; version 1, 2c and 3. Kedua versi 1 dan 2c menyediakan otentikasi menggunakan community string, rahasia bersama antara agen dan client yang diteruskan dalam teks yang jelas melalui jaringan sementara versi 3 mendukung otentikasi user dan enkripsi pesan menggunakan berbagai protokol dan dengan demikian sedikit lebih aman.
Mengkonfigurasi Komunitas SNMP Versi 2c
Seperti yang dinyatakan di atas, SNMP v2 menyediakan akses menggunakan izin direktif, string komunitas, dan Alamat sumber. Alamat sumber dapat berupa IP Server Nagios (server SNMP). Arahan ini harus diatur dalam format;
directive community [source [OID]]
di mana arahan dapat rocommunity(menyediakan akses hanya-baca) atau rwcommunity(menyediakan akses baca-tulis), OID adalah pohon SNMP opsional untuk menyediakan akses. Untuk mengkonfigurasi SNMP v2c;
Di Ubuntu 18.04 lanjutkan sebagai berikut;
Edit snmpdfile konfigurasi dan konfigurasikan untuk mendengarkan pada localhost dan IP interface. Secara default, agen SNMP aktif diatur untuk mengizinkan koneksi yang berasal dari localhost saja. agentAddress udp:127.0.0.1:161,udp:192.168.43.154:161.
Juga, konfigurasikan untuk mengizinkan server pemantauan (server Nagios dalam kasus saya, dengan IP, 192.168.43.101) hanya untuk terhubung menggunakan string komunitas ( [email protected]).
vim /etc/snmp/snmpd.conf
... # AGENT BEHAVIOUR # # Listen for connections from the local system only agentAddress udp:127.0.0.1:161,udp:192.168.43.154:161 # Listen for connections on all interfaces (both IPv4 *and* IPv6) #agentAddress udp:161,udp6:[::1]:161... ############################################################################### # # ACCESS CONTROL #... rocommunity [email protected] 192.168.43.101 ############################################################################### # # SYSTEM INFORMATION
Perhatikan bahwa agar perubahan apa pun pada file konfigurasi diterapkan, paksa snmpdservice untuk membaca ulang konfigurasi dengan menjalankan perintah berikut:
systemctl reload snmpd
Jika Anda dapat memeriksa, SNMP sekarang mendengarkan di dua interface;
netstat -nlpu|grep snmp udp 16128 0 192.168.43.154:161 0.0.0.0:* 10057/snmpd udp 3072 0 127.0.0.1:161 0.0.0.0:* 10057/snmpd
Jika firewall sedang berjalan, izinkan koneksi dari server Nagios.
ufw allow from 192.168.43.101 to any port 161 proto udp ufw reload
Selanjutnya, jalankan perintah di bawah ini dari Server Nagios untuk memverifikasi akses ke host;
snmpwalk -v2c -c [email protected] 192.168.43.154
iso.3.6.1.2.1.1.1.0 = STRING: "Linux u18svr 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10 iso.3.6.1.2.1.1.3.0 = Timeticks: (1082) 0:00:10.82 iso.3.6.1.2.1.1.4.0 = STRING: "Me <[email protected]>" iso.3.6.1.2.1.1.5.0 = STRING: "ubuntu18svr" iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay" iso.3.6.1.2.1.1.7.0 = INTEGER: 72 iso.3.6.1.2.1.1.8.0 = Timeticks: (2) 0:00:00.02 iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.11.3.1.1 iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.15.2.1.1
Pada CentOS 7, lanjutkan sebagai berikut;
Atur string komunitas dan izinkan akses dari server Nagios.
echo -e "# SNMP version 2c communitynrocommunity [email protected] 192.168.43.101" >> /etc/snmp/snmpd.conf
Konfigurasikan snmpduntuk mendengarkan permintaan SNMP yang masuk pada port UDP 161 pada loopback dan interface lainnya. Ini melibatkan modifikasi skrip start up snmpd. Jalankan perintah di bawah ini untuk melakukan perubahan ini. Anda harus terlebih dahulu membuat cadangan konfigurasi service asli.
cp /lib/systemd/system/snmpd.service /lib/systemd/system/snmpd.service.bak
Edit file konfigurasi service snmpd dan ganti baris ExecStart=/usr/sbin/snmpd $OPTIONS -fdengan; ExecStart=/usr/sbin/snmpd $OPTIONS -f udp:127.0.0.1:161 udp:192.168.43.23.161sedemikian rupa sehingga konfigurasi Anda terlihat seperti;
[Unit] Description=Simple Network Management Protocol (SNMP) Daemon. After=syslog.target network.target [Service] Type=notify Environment=OPTIONS="-LS0-6d" EnvironmentFile=-/etc/sysconfig/snmpd ExecStart=/usr/sbin/snmpd $OPTIONS -f udp:127.0.0.1:161 udp:192.168.43.23:161 ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
Reload unit sistem dan mulai ulang service snmpd;
systemctl daemon-reload systemctl restart snmpd
Verifikasi bahwa kedua interface mendengarkan;
ss -nlpu|grep snmp UNCONN 0 0 192.168.43.23:161 *:* users:(("snmpd",pid=4931,fd=7)) UNCONN 0 0 127.0.0.1:161 *:* users:(("snmpd",pid=4931,fd=6))
Jika firewalld berjalan, buat zona baru dan izinkan akses ke agen snmp hanya dari server Nagios;
firewall-cmd --new-zone=snmp --permanent firewall-cmd --zone=snmp --add-interface=eth1 --permanent firewall-cmd --zone=snmp --add-source=192.168.43.101 --permanent firewall-cmd --zone=snmp --add-port=161/udp --permanent firewall-cmd --reload
Verifikasi zona aktif;
firewall-cmd --get-active-zones snmp sources: 192.168.43.101 public interfaces: eth0 eth1
Namun, Anda cukup menjalankan perintah di bawah ini buka port snmpd
firewall-cmd --add-port=161/udp --permanent firewall-cmd --reload
Uji konektivitas dari server Nagios;
snmpwalk -v2c -c [email protected] 192.168.43.23
iso.3.6.1.2.1.1.1.0 = STRING: "Linux Cent7.example.com 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10 iso.3.6.1.2.1.1.3.0 = Timeticks: (191101) 0:31:51.01 iso.3.6.1.2.1.1.4.0 = STRING: "Root <[email protected]> (configure /etc/snmp/snmp.local.conf)" iso.3.6.1.2.1.1.5.0 = STRING: "Cent7.example.com" iso.3.6.1.2.1.1.6.0 = STRING: "Unknown (edit /etc/snmp/snmpd.conf)" iso.3.6.1.2.1.1.8.0 = Timeticks: (3) 0:00:00.03 iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.11.3.1.1 iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1. 6.3.15.2.1.1 iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.10.3.1.1
Konfigurasi SNMP Versi 3
SNMP v3 menggunakan nama user, izin, tingkat keamanan, otentikasi, dan frasa sandi privasi untuk mengizinkan akses. Akibatnya, Anda perlu membuat user untuk otentikasi. Saat dibuat, user ditambahkan ke file konfigurasi berikut; /etc/snmp/snmpd.confdan /var/lib/net-snmp/snmpd.conf. Sebelum Anda dapat melanjutkan, buat copyan file konfigurasi asli seperti yang kami lakukan di atas.
cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
Hentikan daemon SNMP
systemctl stop snmpd
Buat user otentikasi baca-saja menggunakan net-snmp-create-v3-userperintah. Sintaks perintahnya adalah;
net-snmp-create-v3-user [-ro] [-A authpass] [-a MD5|SHA] [-X privpass][-x DES|AES] [username]
net-snmp-create-v3-user -ro -A [email protected] -a SHA -X [email protected] -x AES snmpadmin adding the following line to /var/lib/snmp/snmpd.conf: createUser snmpadmin SHA "[email protected]" AES [email protected] adding the following line to /usr/share/snmp/snmpd.conf: rouser snmpadmin
Mulai daemon SNMP dan konfigurasikan aturan Firewall masuk ke port UDP 161 seperti yang kita lakukan di atas.
systemctl start snmpd
Aktifkan daemon SNMP untuk dijalankan pada sistem reboot.
systemctl enable snmpd
Uji untuk memverifikasi bahwa semuanya berfungsi seperti yang diharapkan.
snmpwalk -v3 -a SHA -A [email protected] -x AES -X [email protected] -l authPriv -u snmpadmin localhost | head
CentOS 7:
SNMPv2-MIB::sysDescr.0 = STRING: Linux Cent7.example.com 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (2095) 0:00:20.95 SNMPv2-MIB::sysContact.0 = STRING: Root <[email protected]> (configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: Cent7.example.com SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (6) 0:00:00.06 SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
Ubuntu 18.04:
iso.3.6.1.2.1.1.1.0 = STRING: "Linux u18svr 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10 iso.3.6.1.2.1.1.3.0 = Timeticks: (59297) 0:09:52.97 iso.3.6.1.2.1.1.4.0 = STRING: "Me <[email protected]>" iso.3.6.1.2.1.1.5.0 = STRING: "u18svr" iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay" iso.3.6.1.2.1.1.7.0 = INTEGER: 72 iso.3.6.1.2.1.1.8.0 = Timeticks: (1) 0:00:00.01 iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.11.3.1.1 iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.15.2.1.1
Dari host jarak jauh;
snmpwalk -v3 -a SHA -A [email protected] -x AES -X [email protected] -l authPriv -u snmpadmin 192.168.43.23 | head
iso.3.6.1.2.1.1.1.0 = STRING: "Linux Cent7.example.com 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64" iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.8072.3.2.10 iso.3.6.1.2.1.1.3.0 = Timeticks: (15002) 0:02:30.02 iso.3.6.1.2.1.1.4.0 = STRING: "Root <[email protected]> (configure /etc/snmp/snmp.local.conf)" iso.3.6.1.2.1.1.5.0 = STRING: "Cent7.example.com" iso.3.6.1.2.1.1.6.0 = STRING: "Unknown (edit /etc/snmp/snmpd.conf)" iso.3.6.1.2.1.1.8.0 = Timeticks: (6) 0:00:00.06 iso.3.6.1.2.1.1.9.1.2.1 = OID: iso.3.6.1.6.3.11.3.1.1 iso.3.6.1.2.1.1.9.1.2.2 = OID: iso.3.6.1.6.3.15.2.1.1 iso.3.6.1.2.1.1.9.1.2.3 = OID: iso.3.6.1.6.3.10.3.1.1
snmpwalk -v3 -a SHA -A [email protected] -x AES -X [email protected] -l authPriv -u snmpadmin 192.168.43.154 | head
SNMPv2-MIB::sysDescr.0 = STRING: Linux u18svr 4.15.0-46-generic #49-Ubuntu SMP Wed Feb 6 09:33:07 UTC 2019 x86_64 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (114664) 0:19:06.64 SNMPv2-MIB::sysContact.0 = STRING: Me <[email protected]> SNMPv2-MIB::sysName.0 = STRING: u18svr SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay SNMPv2-MIB::sysServices.0 = INTEGER: 72 SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01 SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
Besar!! Anda telah berhasil menginstal dan mengkonfigurasi SNMP di Ubuntu 18.04 dan CentOS 7. Server Anda sekarang siap untuk pemantauan SNMP Nagios dari server Nagios Anda atau alat pemantauan lainnya. Anda juga dapat memeriksa artikel kami di Nagios SNMP Monitoring of Linux Hosts di AlienVault USM/OSSIM.
Tutorial Terkait:
Pantau Metrik Sistem Linux dengan Pengekspor Node Prometheus
Pantau log Squid dengan Grafana dan Graylog
Pantau Log Akses Squid dengan Server Graylog
Cara Menginstal Plugin Nagios dan agen NRPE di CentOS 7/RHEL 7/Fedora 29
Pantau Host Linux menggunakan Plugin Nagios check_by_ssh
Cara Menginstal Plugin Nagios Dari Sumber RHEL/CentOS/Oracle Linux
Instal dan Atur TIG Stack di Fedora 30