업무상 필요해서 어떤 게 필요하고 어떤 식으로 써야 하는지 확인차 사용해봤다.
설치라고 하기에는 공식 홈에서 가상 머신용 이미지 파일을 제공해주기 때문에 설치를 할 필요가 없었다.
https://www.librenms.org/#downloads
LibreNMS
LibreNMS is an autodiscovering PHP/MySQL-based network monitoring system.
www.librenms.org
나만 그런 건지 세 번 시도해서 겨우 받았다. ISP는 KT...
'파일 > 가상 시스템 가져오기'로 해당 파일을 가져오고 실행 시켰다.
관련 접근 정보는 https://docs.librenms.org/Installation/Images/ 공식 문서에서 확인할 수 있다.
http://localhost:8080이고 계정 정보는 공식 문서 참고 후 로그인
Devices > Add Device로 추가를 하면 되는 거 같은데, SNMP를 사용해야 된다고 한다.
SNMP는 간이 망 관리 프로토콜(Simple Network Management Protocol)이라고 해서 네트워크에 있는 장비들을 관리하기 위한 프로토콜이라고 한다.
https://docs.oracle.com/cd/E24292_01/ko/E50686/html/snmpconfig.htm#i1179446
SNMP 구성
SNMP(Simple Network Management Protocol)는 UDP/IP(사용자 데이터그램 프로토콜/인터넷 프로토콜)를 사용하여 이더넷 연결을 통해 네트워크 관리 작업을 수행하는 응용 계층 프로토콜입니다. Simple Network Mana
docs.oracle.com
블로그에도 잘 정리된 것들이 있는데, 페이지 하나로 쭉 보기엔 오라클에 있는 문서가 가장 나았다.
여튼 장비를 추가 해야 되는데, 운영 되고 있는 서버에 해보기에는 방화벽 열고 이러는 게 귀찮아서 로컬 개발 서버를 쓰기로 했다. (* LibreNMS는 127.0.0.1이고 로컬 개발 서버는 192.168.0.31을 쓰게 해놨다.)
위에 오라클 문서를 보면, 관리쪽은 UDP/162를 쓰고 에이전트쪽은 UDP/161을 쓴다는데, 여튼 이를 위해서 SNMP 관련 패키지를 설치해주어야 한다.
로컬 개발 서버는 록키리눅스라서 CentOS와 동일하게 설치하면 된다.
net-snmp와 net-snmp-utils 두 개가 관련 패키지인데, LibreNMS에 장치를 추가해보는 게 목적이라 net-snmp만 설치를 했다.
yum install net-snmp
설정 파일은
/etc/snmp/snmpd.conf
장치 연결이 목적이므로 설정 파일은 건드리지 않고 바로 실행해본다.
[root@localhost ~]# systemctl start snmpd
[root@localhost ~]# netstat -nlp | grep 161
tcp6 0 0 :::8000 :::* LISTEN 1613/httpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 6806/snmpd
unix 2 [ ACC ] STREAM LISTENING 28844 1625/httpd /etc/httpd/run/cgisock.1613
unix 2 [ ACC ] STREAM LISTENING 28874 1614/php-fpm: maste /run/php-fpm/www.sock
UDP/161을 SNMPD가 사용하고 있다.
IP와 포트 번호 적고 Add Device를 눌러서 추가
'Devices > All Devices'로 들어가보면 장치가 잘 추가 되어 있다.
하나만 추가해서 이거저거 보기에는 로컬 개발 서버에는 뭐가 없는 편이라 그냥 개인 서버도 추가 했다.
추가 후에 대시보드를 꾸며보려고 하는데
위젯이 안 나온다.
혹시 몰라서 서비스에도 추가를 해본다.
'Services > Add Service'에서 Name에 이름 넣고 Device에서 장치 고르고 Add Service
두 개 추가해줬다. 그래도 안 나와서 구글링을 해봄.
https://community.librenms.org/t/dashboard-widgets-missing/11476
Dashboard Widgets missing
==================================== Component Version LibreNMS 1.62-24-gf0d68a1ad DB Schema 2020_03_25_165300_add_column_to_ports (161) PHP 7.2.24-0ubuntu0.18.04.3 MySQL 10.1.44-MariaDB-0ubuntu0.18.04.1 RRDTool 1.7.0 SNMP NET-SNMP 5.7.3 ==================
community.librenms.org
php artisan db:seed
이걸 실행해보라고 함.
librenms@librenms:~$ php artisan db:seed
**************************************
* Application In Production! *
**************************************
Do you really wish to run this command? (yes/no) [no]:
> yes
Seeding: Database\Seeders\DefaultAlertTemplateSeeder
Seeded: Database\Seeders\DefaultAlertTemplateSeeder (1.54ms)
Seeding: Database\Seeders\DefaultWidgetSeeder
Seeded: Database\Seeders\DefaultWidgetSeeder (1.74ms)
Seeding: Database\Seeders\DefaultLegacySchemaSeeder
Seeded: Database\Seeders\DefaultLegacySchemaSeeder (1.07ms)
Database seeding completed successfully.
잘 나온다.
문제가 있다면, 장치가 전부 가상이라 그런 건지 추가를 한지 얼마 안 돼서 그런 건지 제대로 나오는 게 없다.
실제 데이터를 받을 수 있는 환경에서 사용을 해봐야 활용을 어찌할지 알 수 있을 거 같다.
+--------------------------------+
| Tables_in_librenms |
+--------------------------------+
| access_points |
| alert_device_map |
| alert_group_map |
| alert_location_map |
| alert_log |
| alert_rules |
| alert_schedulables |
| alert_schedule |
| alert_template_map |
| alert_templates |
| alert_transport_groups |
| alert_transport_map |
| alert_transports |
| alerts |
| api_tokens |
| application_metrics |
| applications |
| authlog |
| availability |
| bgpPeers |
| bgpPeers_cbgp |
| bill_data |
| bill_history |
| bill_perms |
| bill_port_counters |
| bill_ports |
| bills |
| cache |
| cache_locks |
| callback |
| cef_switching |
| ciscoASA |
| component |
| component_prefs |
| component_statuslog |
| config |
| customers |
| customoids |
| dashboards |
| dbSchema |
| device_graphs |
| device_group_device |
| device_groups |
| device_outages |
| device_perf |
| device_relationships |
| devices |
| devices_attribs |
| devices_group_perms |
| devices_perms |
| entPhysical |
| entPhysical_state |
| entityState |
| eventlog |
| graph_types |
| hrDevice |
| ipsec_tunnels |
| ipv4_addresses |
| ipv4_mac |
| ipv4_networks |
| ipv6_addresses |
| ipv6_networks |
| juniAtmVp |
| links |
| loadbalancer_rservers |
| loadbalancer_vservers |
| locations |
| mac_accounting |
| mefinfo |
| mempools |
| migrations |
| mpls_lsp_paths |
| mpls_lsps |
| mpls_saps |
| mpls_sdp_binds |
| mpls_sdps |
| mpls_services |
| mpls_tunnel_ar_hops |
| mpls_tunnel_c_hops |
| munin_plugins |
| munin_plugins_ds |
| netscaler_vservers |
| notifications |
| notifications_attribs |
| ospf_areas |
| ospf_instances |
| ospf_nbrs |
| ospf_ports |
| packages |
| pdb_ix |
| pdb_ix_peers |
| plugins |
| poller_cluster |
| poller_cluster_stats |
| poller_groups |
| pollers |
| ports |
| ports_adsl |
| ports_fdb |
| ports_nac |
| ports_perms |
| ports_stack |
| ports_statistics |
| ports_stp |
| ports_vlans |
| processes |
| processors |
| proxmox |
| proxmox_ports |
| pseudowires |
| route |
| sensors |
| sensors_to_state_indexes |
| service_templates |
| service_templates_device |
| service_templates_device_group |
| services |
| session |
| slas |
| state_indexes |
| state_translations |
| storage |
| stp |
| syslog |
| tnmsneinfo |
| toner |
| transport_group_transport |
| ucd_diskio |
| users |
| users_prefs |
| users_widgets |
| vlans |
| vminfo |
| vrf_lite_cisco |
| vrfs |
| widgets |
| wireless_sensors |
+--------------------------------+
137 rows in set (0.001 sec)