João Ricardo Geitoeira - 28046
João Ricardo Geitoeira - 28046
João Ricardo Geitoeira - 28046
ii
Resumo
Assim, nos dias de hoje, torna-se cada vez mais importante reduzir os desafios operacionais,
os quais, do ponto de vista da gestão e manutenção de uma rede de dados, compreendem a
diminuição do tempo de inatividade desta, pois o contrário resultará em perdas de
produtividade. Nesta circunstância, a gestão de rede proficiente e de alto desempenho,
caracteriza-se num fator diferenciador crítico para todos os utilizadores de rede.
Como princípio basilar deste projeto, enumera-se o estudo realizado à gestão de rede da
Universidade do Porto (U. Porto), especificamente à infraestrutura protocolar e tecnológica que
a apoia e dá suporte às tarefas que descrevem a gestão operacional diária.
iii
Abstract
The scope, the diversity of systems and the complexity of current networks, requires the
planning of a computer management network, considering a set of mechanisms, protocols and
monitoring tools to control communication resources. Having these assumptions, the use of a
pragmatic approach, commonly used and called FCAPS, was considered. This model was used
throughout this report to analyze, describe and organize applications, regard to compliance with
the functionalities recommended by the five functional areas that comprise it.
As a basic principle of this project, the study carried out on the network management of the
University of Porto (U. Porto) is listed, specifically the protocol and technological
infrastructure that supports the tasks that describe the daily operational management.
During the practical approach, in a first interaction, a set of tools was implemented, and
then a comparative study was carried out to evaluate them. In a second phase, with the results
obtained, a centralized monitoring infrastructure was developed and adjusted to the critical
needs of the U. Porto. This solution was structured in highly resilient architectural models
(clusters) and segmented into three computational components, namely composed of storage
systems (Percona-XtraDB-Cluster), routing (ProxySQL) and monitored data query (Zabbix).
Finally, a set of actions are suggested that, in the author's perspective, aim at the
continuation of the improvement process initiated within the scope of this project.
v
Agradecimentos
Em primeiro lugar, quero agradecer ao orientador deste projeto, o professor Mário Serrão,
pelo apoio contínuo ao longo da licenciatura e do mestrado. Nunca irei esquecer as suas aulas
e a atenção que me despertavam. Se hoje tenho o encanto pelas “redes” a si o devo.
Aos meus colegas de curso, particularmente, ao Diogo Pereira e ao Diogo Teixeira, deixo
um enorme obrigado, não só pela paciência que tiveram comigo, como também pelo apoio
prestado academicamente e profissionalmente.
À Soraia, um enorme pedido de desculpas pela ausência que este projeto causou e um
enorme obrigado pelo apoio incondicional e pelas palavras positivas nos piores momentos que
passamos recentemente. Não tenho palavras para te agradecer, estás sempre lá.
Por último, destaco com enorme gratidão a minha família, em especial um agradecimento
dirigido há minha mãe Isabel e ao meu irmão Diogo. Peço imensa desculpa por ter
“desaparecido” durante estes dois anos.
Concluo assim aquela que para mim foi a etapa mais difícil de todo o percurso académico,
não podendo deixar de agradecer a todos os que contribuíram direta ou indiretamente neste
projeto. Um grande obrigado.
vii
Índice
Resumo.................................................................................................................................................................iii
Abstract ................................................................................................................................................................. v
Agradecimentos..................................................................................................................................................vii
Índice .................................................................................................................................................................... ix
Lista de figuras...................................................................................................................................................xiii
Lista de tabelas..................................................................................................................................................xvii
Lista de siglas e abreviaturas ............................................................................................................................xix
Introdução..................................................................................................................................................... 1
1.1 Enquadramento............................................................................................................ 1
1.2 Objetivos e motivações ............................................................................................... 2
1.3 Metodologia ................................................................................................................ 4
1.4 Estrutura do documento .............................................................................................. 4
Gestão de redes ............................................................................................................................................ 7
2.1 Introdução.................................................................................................................... 7
2.2 Arquiteturas OSI e TCP/IP .......................................................................................... 8
2.3 Modelos e paradigmas para gestão de redes ............................................................. 11
2.3.1 Modelo organizacional....................................................................................... 13
2.3.2 Modelo de comunicação .................................................................................... 14
2.3.3 Modelo de informação ....................................................................................... 18
2.3.4 Modelo funcional ............................................................................................... 22
2.4 Metodologias de gestão de rede ................................................................................ 26
2.4.1 Gestão de rede in-band ...................................................................................... 26
2.4.2 Gestão de rede out-of-band ................................................................................ 27
2.5 Plataformas de gestão de rede ................................................................................... 27
2.5.1 Prometheus ......................................................................................................... 28
2.5.2 Cacti ................................................................................................................... 30
2.5.3 Zabbix ................................................................................................................ 31
2.5.4 Nagios ................................................................................................................ 34
2.5.5 Zenoss Core ....................................................................................................... 36
2.5.6 Syslog-NG.......................................................................................................... 38
2.5.7 Graylog .............................................................................................................. 39
2.5.8 RANCID ............................................................................................................ 41
ix
2.5.9 Oxidized ............................................................................................................. 43
Infraestrutura de gestão da rede da Universidade do Porto...................................................................45
3.1 Introdução.................................................................................................................. 45
3.2 Análise da rede de comunicação de dados ................................................................ 47
3.2.1 Arquitetura física ............................................................................................... 47
3.2.2 Arquitetura lógica .............................................................................................. 50
3.3 Rede de gestão ........................................................................................................... 56
3.3.1 Gestão out-of-band e in-band ............................................................................ 57
3.3.2 Mecanismos de segurança.................................................................................. 57
3.3.3 Gestão de equipamentos .................................................................................... 61
3.3.4 Gestão de rede wireless ...................................................................................... 62
3.4 Gestão operacional .................................................................................................... 65
3.4.1 Infraestrutura de gestão FCAPS......................................................................... 66
3.4.2 Monitorização e gestão de redes ........................................................................ 70
Estudo de ferramentas de gestão de redes...............................................................................................77
4.1 Introdução.................................................................................................................. 77
4.2 Ambiente de testes .................................................................................................... 78
4.2.1 Análise dos requisitos computacionais .............................................................. 78
4.2.2 Descrição do cenário .......................................................................................... 80
4.3 Critérios de seleção e implementação das plataformas ............................................. 83
4.4 Análise comparativa e resultados .............................................................................. 90
Implementação do sistema de monitorização centralizado...................................................................95
5.1 Introdução.................................................................................................................. 95
5.2 Componentes integrantes .......................................................................................... 95
5.3 Especificações das aplicações ................................................................................... 96
5.4 Requisitos funcionais .............................................................................................. 100
5.5 Funcionamento genérico ......................................................................................... 101
5.6 Arquitetura de armazenamento de dados ................................................................ 104
5.6.1 Encaminhamento do fluxo de dados de armazenamento ................................. 110
5.6.2 Mecanismos de resiliência ............................................................................... 113
5.7 Arquitetura de monitorização .................................................................................. 118
5.7.1 Encaminhamento do fluxo de dados de monitorização ................................... 119
5.7.2 Modelo de resiliência ....................................................................................... 121
5.7.3 Otimização e performance ............................................................................... 123
5.7.4 Métodos de monitorização adotados ................................................................ 127
x
5.7.5 Descoberta automática de equipamentos e serviços ........................................ 130
5.8 Proposta de melhoria da topologia de monitorização ............................................. 132
5.9 Integração da solução na infraestrutura de rede de dados ....................................... 133
Conclusão.................................................................................................................................................136
6.1 Considerações finais ................................................................................................ 136
6.2 Análise dos resultados ............................................................................................. 137
6.3 Trabalho futuro ........................................................................................................ 140
Referências........................................................................................................................................................143
- Estudo do protocolo SNMP..........................................................................................................151
Estudo do protocolo NETCONF.................................................................................................159
Estudo de modelos de gestão de redes.......................................................................................163
Configuração do protocolo OSPF IPv4 no ASR II ................................................................171
- Configuração do protocolo BGP no ASR II .............................................................................173
Configuração do protocolo MPLS no ASRII ..........................................................................177
Configuração de serviços VPLS no ASR I .............................................................................181
Configuração de Virtual Private Networks em firewalls ASA............................................185
Modelos de gestão de armazenamento PostgreSQL versus MySQL ...................................189
Estudo comparativo entre soluções open-source MySQL.......................................................191
Estudo comparativo de ferramentas de backup do MySQL...................................................195
Instalação e configuração do Percona XtraDB cluster ..........................................................199
Configuração do Percona XtraDB cluster em três nós de computação..............................203
Instalação e configuração da aplicação HAproxy ................................................................207
Instalação e configuração da aplicação proxySQL ................................................................211
Configuração automática do proxySQL................................................................................219
Configuração da ferramenta Keepalived nos servidores de proxy ....................................221
Configuração da ferramenta Pacemaker nos servidores de proxy ...................................223
Instalação e configuração do cluster de servidores Zabbix .................................................227
Configuração da ferramenta Pacemaker nos servidores Zabbix ..........................................231
Configuração de monitorização distribuída com Zabbix-proxy .........................................235
Otimização de desempenho dos servidores Zabbix............................................................241
Configuração de agente Zabbix em sistemas computacionais .........................................243
Configuração de MIBs proprietárias no sistema de monitorização Zabbix ...................247
Descoberta de baixo nível de hosts e serviços.....................................................................249
xi
Lista de figuras
xiii
Figura 31 - Infraestrutura de rede do servidor FCAPS central ................................................ 67
Figura 32 - Infraestrutura de rede dedicada do KVM .............................................................. 68
Figura 33 - Topologia lógica dos sistemas de monitorização via rede de gestão .................... 69
Figura 34 - Esquematização da infraestrutura para integração das ferramentas FCAPS ........ 81
Figura 35 - Componentes da solução de monitorização .......................................................... 96
Figura 36 - Funcionamento genérico da arquitetura de monitorização implementada .......... 102
Figura 37 - Modelo de replicação de dados sugerido ............................................................ 105
Figura 38 - Arquitetura interna de um nó de Galera cluster .................................................. 106
Figura 39 - Diagrama de replicação multi master baseada em certificação [76]................... 107
Figura 40 - Recuperação de falhas com a funcionalidade XtraBackup ................................. 109
Figura 41 - Processo de encaminhamento do fluxo de tráfego MySQL ................................ 111
Figura 42 - Processo de encaminhamento de dados via proxySQL2..................................... 112
Figura 43 - Validação do estado do número de nós do PXC ................................................. 113
Figura 44 - Arrancar um nó pelo bootstrap manualmente ..................................................... 115
Figura 45 - Funcionamento genérico do Keepalived ............................................................. 116
Figura 46 - Funcionamento genérico do Pacemaker.............................................................. 117
Figura 47 - Topologia da base de dados remota versus local ................................................ 119
Figura 48 - Fluxo de dados em modo ativo e passivo no Zabbix-proxy ................................ 121
Figura 49 - Funcionamento do Pacemaker no cluster Zabbix ............................................... 122
Figura 50 - Adição de serviços ao Pacemaker do cluster de proxys ...................................... 122
Figura 51 - Fluxo de dados em modo ativo e passivo nos agentes Zabbix ............................ 127
Figura 52 - Arquitetura de monitorização implementada ...................................................... 132
Figura 53 - Arquitetura de monitorização proposta ............................................................... 133
Figura 54 - Operações SNMPv1 na arquitetura TCP/IP [81] ................................................ 152
Figura 55 - Formato da mensagem SNMP ............................................................................ 152
Figura 56 - Formato PDU SNMPv1 ...................................................................................... 153
Figura 57 - Formato PDU SNMPv2 ...................................................................................... 154
Figura 58 - Formato de mensagem SNMPv3 ........................................................................ 154
Figura 59 - Arquitetura do agente SNMPv3 .......................................................................... 155
Figura 60 - Modelo arquitetónico do protocolo NETCONF ................................................. 160
Figura 61 - Relação entre a rede de gestão TMN e a rede de telecomunicações [85] ........... 163
Figura 62 - Blocos funcionais e pontos de referência da arquitetura TMN ........................... 164
Figura 63 - Hierarquia de classes principais do modelo CIM ............................................... 166
Figura 64 - Comunicação entre gestor e agente baseados em CORBA ................................. 167
xiv
Figura 65 - Integração do CORBA baseado em gestor e agente SNMP [90] ........................ 168
Figura 66 - Modelo COPS ..................................................................................................... 169
Figura 67 - Modelo lógico de arquitetura PBNM .................................................................. 170
Figura 69 - Configuração da interface BVI para o processo OSPF-1 IPv4 ........................... 171
Figura 70 - Configuração do processo OSPF-2 IPv4............................................................. 171
Figura 71 - Configuração do Protocolo BGP ......................................................................... 173
Figura 72 - Configuração de interfaces BVI no ASRII ......................................................... 174
Figura 73 - Configuração das políticas de rotas BGP ............................................................ 174
Figura 74 - Configuração de interface loopback.................................................................... 177
Figura 75 - Configuração do processo OSPF-1 MPLS.......................................................... 177
Figura 76 - Configuração do protocolo MPLS/LDP ............................................................. 178
Figura 77 - Configuração do processo M-BGP 1/2 ............................................................... 178
Figura 78 - Configuração do processo M-BGP 2/2 ............................................................... 179
Figura 78 - Configuração dos attachment-circuit .................................................................. 181
Figura 79 - Configuração dos serviços – VPLS 1/2 .............................................................. 182
Figura 80 - Configuração dos serviços – VPLS 2/2 .............................................................. 183
Figura 82 - Configuração de access-lists e NATs ................................................................. 185
Figura 83 - Configuração do protocolo IKEVv1/ISAKMP ................................................... 186
Figura 84 - Configuração do túnel IPsec site-to-site ............................................................. 187
Figura 85 - Configuração de pool de endereços VPN remote-to-access ............................... 188
Figura 85 - Ajustes de desempenho do mecanismo InnoDB ................................................. 201
Figura 86 - Configuração do ficheiro haproxy.cfg 1/3 .......................................................... 208
Figura 87 - Configuração do ficheiro haproxy.cfg 2/3 .......................................................... 208
Figura 88 - Configuração do ficheiro haproxy.cfg 3/3 .......................................................... 209
Figura 89 - Fluxos de configuração entre camadas do proxySQL......................................... 211
Figura 90 - Configuração automática do proxySQL 1/2 ....................................................... 214
Figura 91 - Configuração automática do proxySQL 2/2 ....................................................... 215
Figura 92 - Comandos de configuração automática do proxySQL2 1/2 ............................... 219
Figura 93 - Comandos de configuração automática do proxySQL2 2/2 ............................... 220
Figura 94 - Configuração Keepalived no servidor proxy 1.................................................... 221
Figura 95 - Configuração Keepalived no servidor proxy 2.................................................... 222
Figura 96 - Incompatibilidade do scritp mysql do sistema Zabbix ....................................... 229
Figura 97 - Configuração do Zabbix-proxy em modo ativo 1/2 ............................................ 237
Figura 98 - Configuração do Zabbix-proxy em modo ativo 2/2 ............................................ 238
xv
Figura 99 - Utilização dos processos internos do Zabbix-proxy............................................ 239
Figura 100 - Memoria cache atual do Zabbix-proxy ............................................................. 239
Figura 101 - Gráfico de desempenho global do Zabbix-prox ................................................ 239
Figura 102 - Configuração do agente Zabbix em modo passivo 1/2 ..................................... 243
Figura 103 - Configuração do agente Zabbix em modo passivo 2/2 ..................................... 244
Figura 104 - Configuração do agente Zabbix em modo ativo 1/2 ......................................... 245
Figura 105 - Configuração do agente Zabbix em modo ativo 2/2 ......................................... 245
Figura 106 - Diagrama de configuração de protocolos para suporte da LLD ....................... 249
Figura 107 - Diagrama para parametrização de ações/operações de monitorização dinâmica
................................................................................................................................................ 250
Figura 108 - Diagrama de configuração para descoberta de serviços SNMP LLD ............... 251
Figura 109 - Exemplo de SNMP index respetivos à MIB::ifDescr ....................................... 252
Figura 110 - Diagrama de configuração para descoberta de serviços via agente Zabbix ...... 252
xvi
Lista de tabelas
xvii
Tabela 31 - Opções para melhoria de comunicação do Zabbix-proxy................................... 126
Tabela 32 - Templates utilizados para monitorizar equipamentos de rede ............................ 129
Tabela 33 - Principais redes utilizadas para autodescoberta de hosts .................................... 130
Tabela 34 - Lista de primitivas para elementos de dados abstratos ....................................... 156
Tabela 35 - Principais diferenças entre arquiteturas PostgreSQL e MySQL [66] ................. 189
Tabela 36 - Análise de desempenho entre arquiteturas PostegreSQL e MySQl [67] ............ 190
Tabela 37 - Funcionalidades entre MySQL, Percona e MariaDB 1/4 [69] ........................... 191
Tabela 38 - Funcionalidades entre MySQL, Percona e MariaDB 2/4 [69] ........................... 192
Tabela 39 - Funcionalidades entre MySQL, Percona e MariaDB 3/4 [69] ........................... 193
Tabela 40 - Funcionalidades entre MySQL, Percona e MariaDB 4/4 [69] ........................... 194
Tabela 41 - Funcionalidade de backups Percona SSTv2 vs MySQL [95] 1/3....................... 195
Tabela 42 - Funcionalidade de backups Percona SSTv2 vs MySQL [14] 2/3....................... 196
Tabela 43 - Funcionalidade de backups Percona SSTv2 vs MySQL [14] 3/3....................... 197
Tabela 44 - Terminologia dos nós para configuração do PXC .............................................. 200
Tabela 45 - Nomenclaturas de configuração para o HAproxy .............................................. 207
Tabela 46 - Principais funcionalidades de configuração de proxySQL ................................. 212
Tabela 47 - Especificações para configuração do proxySQL ................................................ 213
Tabela 48 - Contas padrão da ferramenta proxySQL ............................................................ 213
Tabela 49 - Especificações para configuração dos servidores Zabbix .................................. 227
xviii
Lista de siglas e abreviaturas
xix
CIPES Centro de Investigação de Políticas de Ensino Superior
CLI Command-Line Interface
CMAN Cluster Manager
CMDB Configuration Management Database
CMIP Common Management Information Protocols
CMIS Common Management Information Service
CMOT Common management information protocol
Conf Configuração
COPS Common Open Policy Service
COPS-PR COPS Usage for Provisioning
CORBA Common Object Request Broker Architecture
CPE Costumer Provider Edge
CPU Central Process Unit
CUP Clínica Universitária de Psicologia
CVS Concurrent Versions System
DB Database
DBA Database administrator
DBMS Database Management System
DCF Data Communication Functions
DES Data Encryption Standard
DEV Development servers
DHCP Dynamic Host Configuration Protocol
DMTF Distributed Management Task Force
DNS Domain Name Server
Dom Control Domain
EBGP External Border Gateway Protocol
EGP Escola de Gestão do Porto
EGP Exterior Gateway Protocol
ERP Enterprise Resource Planning
etc Et cetera
FADEUP Faculdade de Desporto da Universidade do Porto
FAUP Faculdade de Arquitetura da Universidade do Porto
FBAUP Faculdade de Belas Artes da Universidade do Porto
xx
FCAPS Fault-management, Configuration, Accounting, Performance and Security
FCCN Fundação para Computação Científica Nacional
FCNAUP Faculdade de Ciências da Nutrição e Alimentação da Universidade do Porto
FCT Fundação para a Ciência e a Tecnologia
FCUP Faculdade de Ciências da Universidade do Porto
FDUP Faculdade de Direito da Universidade do Porto
FEC Forwarding equivalence class
FEP Faculdade de Economia do Porto
FEUP Faculdade de Engenharia da Universidade do Porto
FEX Fabric Extenders
FFUP Faculdade de Farmácia da Universidade do Porto
FIFO First In, First Out
FIMS Fundação Instituto Marques da Silva
FLUP Faculdade de Letras da Universidade do Porto
FMDUP Faculdade de Medicina Dentária da Universidade do Porto
FMUP Faculdade de Medicina da Universidade do Porto
FPCEUP Faculdade de Psicologia e de Ciências da Educação da Universidade do Porto
FTP File Transfer Protocol
FW Firewall
G Gestão
GB Gigabyte
GCSP Group Communication Systems Plugins
GELF Graylog Extended Log Format
GIOP General Inter-ORB Protocol
GPL General Public License
GRP Group Replication Plugins
GTID Global Transaction ID
GUI Graphical User Interface
HA High-Availability
HG Host Group
HMAC Hash-based Message Authentication Code
HTML HyperText Markup Language
HTTP Hypertext Transpot Protocol
xxi
IBGP Internal Border Gateway Protocol
IBM In-Band Management
ICBAS Instituto de Ciências Biomédicas Abel Salazar
ICETA Instituto de Ciências, Tecnologias e Agroambiente
ICMP Internet Control Message Protocol
ID Identification
IDL Interface Definition Language
IETF Internet Engineering Task Force
IGMP Internet Group Management Protocol
IGP Interior Gateway Protocol
IKE Internet Key Exchange
ILO Integrated Lights Out
IMAP Internet Message Access Protocol
INEGI Instituto de Ciência e Inovação em Engenharia Mecânica e Engenharia
Industrial
INESC Instituto de Engenharia de Sistemas e Computadores, Tecnologia e Ciência
IP Internet Protocol
IPMI Intelligent Platform Management Interface
IPSec IP Security
IPVS IP Virtual Server
IPX Internetwork Packet Exchange
IRC Internet Relay Chat
ISAKMP Internet Security Association and Key Management Protocol
ISPUP Instituto de Saúde Pública da Universidade do Porto
ISSO International Organization for Standardization
IT Information Technology
ITU International Telecommunication Union
JMX Java Management Extensions
JSON JavaScript Object Notation
KMS Key Management Service
KVM Kernel Virtual Machine
L2TP Layer 2 Tunneling Protocol
LAG Link Aggregation Group
xxii
LAN Local Area Network
LDAP Lightweight Directory Access Protocol
LDP Label Distribution Protocol
LER Label Edge Router
LFIB Label Forwarding Information Base
LIACC Laboratório de Inteligência Artificial e Ciência de Computadores
LLD Low-level Discovery
LME Layer Management Entities
LPDP Local Policy Decision Point
LSN Log Sequence Number
LSP Label Switched Path
LSR Label Switching Router
Ltd Limited
LVS Linux Virtual Server
LWAPP Lightweight Access Point Protocol
LXC Linux Containers
MAC Media Access Control
MCA MariaDB Contributor Agreement
MD Managed Device
MD5 Message-Digest algorithm 5
MF Mediation Functions
MIB Management Information Base
MOF Managed Object Format
MPLS Multi Protocol Label Switching
NAT Network Address Translation
NE Network Element
NEF Network Element Functions
NET Rede
NETCONF Network Configuration Protocol
NIC Network Interface Card
NMD Network Managed Device
NMS Network Management System
NOC Network Operations Center
xxiii
NRPE Nagios Remote Plugin Executor
OCA Oracle Contributor Agreement
ODBC Open Database Connectivity
OID Object Identifier
OLAP Online Analytical Processing
OLTP Online Transaction Processing
OOBM Out-of-Band Management
ORB Object Request Broker
OS Operative System
OSF Operation System Funcions
OSI Open System Interconnection
OSPF Open Shortest Path First
OUP Orfeão Universitário do Porto
P Percona
PP proxy Percona
P1 Pólo 1
P2 Pólo 2
P3 Pólo 3
PBNM Policy-based network management
PBS Porto Business School
PDP Policy Decision Point
PDU Protocol Data Unit
PEP Policy Enforcement Point
PEs Provider Edges
PGDG PostgreSQL Global Development Group
PHP Hypertext Preprocessor
PIP Policy Information Point
PMC Policy Management Console
PMM Percona Monitoring & Management
POP Post Office Protocol
PXC Percona XtraDB cluster
QAF Adaptor Functions
RADIUS Remote Authentication Dial In User Service
xxiv
RAM Random Access Memory
RANCID Really Awesome New Cisco confIg Differ
RCTS Rede, Ciência, Tecnologia e Sociedade
REST Representational state transfer
RFC Request for Comments
RMON Remote Network Monitoring
RPC Remote Procedure Call
RRA Round Robin Archives
RRD Round-Robin Database
RT Routers
S Servidor
SASUP Serviços de Ação Social da Universidade do Porto
SDN Software Defined Network
SFP Small Form-factor Pluggable
SGBD Sistema de Gestão de Base de Dados
SGMP Simple Gateway Monitoring Protocol
SGR Sistema de Gestão de Redes
SHA Secure Hash Algorithms
SIGARRA Sistema de Informação para Gestão Agregada dos Recursos e dos Registos
Académicos
SMAE Systems Management Application Entities
SMAP Systems Management Application Processes
SMI Structure of Management Information
SMS Short Message Service
SMTP Simple Mail Transfer Protocol
SNMP Simple Network Management Protocol
SOAP Simple Object Access Protocol
SQL Structured Query Language
SRC Serviços de Redes Centrais e Datacenters
SSH Secure Shell
SSHD Solid State Hybrid Disc
SSID Service Set Identifier
SSL Secure Socket Layer
xxv
SST State Snapshot Transfer
STDOUT Standard Output
SVN SubVersionN
SW Switch
TB Terabyte
TCL Tool Command Language
TCP Transmission Control Protocol
TFTP Trivial File Transfer Protocol
TIC Tecnologias de Informação e Comunicação
TLS Transport Layer Security
TMN Telecomunication Management Network
TSDB Time Series Database
UDP User Datagram Protocol
UML Unified Modelling Language
UO Unidades Organizacionais
U. Porto Universidade do Porto
UPdigital Universidade do Porto Digital
UPS Uninterruptible Power Supply
UPTEC Parque de Ciência e Tecnologia da Universidade do Porto
USM User-Based Security Model
VCAM View-Based Access Control Model
VCS Version Control System
VIP Virtual IP Address
VLAN Virtual Local Area Network
VOIP Voice over Internet Protocol
VPLS Virtual Private LAN Service
VPN Virtual Private Networks
VRF Virtual Routing and Forwarding
VRRP Virtual Router Redundancy Protocol
WBEM Web Based Enterprise Management
Wifi Wireless Fidelity
WinRM Windows Remote Management
WLC Wireless LAN Controller
xxvi
WMI Windows Management Instrumentation
WSF Work Station Function
wsrep Write-set replication
XML eXtensible Markup Language
Xtra Extra
ZPA Zabbix proxy Access
ZPCD Zabbix proxy Core and Distribution
ZS Zabbix Servers
xxvii
Capítulo 1
Introdução
1.1 Enquadramento
A rede da Universidade do Porto (U. Porto) é um exemplo de uma instituição, que recorre
a este tipo de ferramentas de monitorização. A grande dependência da monitorização, tanto na
vertente alarmística, quanto na vertente estatística, prende-se pela extensão dos seus
equipamentos da camada de núcleo e os seus múltiplos serviços intrínsecos. Como base, todo
o core da rede de comunicação da Universidade do Porto, assenta em quatro routers
distribuídos por diferentes salas técnicas, instaladas em edifícios localizados na Reitoria, na
Faculdade de Ciências, na Faculdade de Engenharia e na Faculdade de Direito. Estes
equipamentos encontram-se interligados por circuitos de fibra ótica implementados numa
tipólogia em anel permitindo a redundância de caminhos e a interligação de cinquenta e sete
nós de rede (instalados nas diferentes Faculdades, Residências Universitárias e Institutos de
Investigação, que pertencem organicamente à U. Porto).
1
existem também diversos equipamentos ativos, nomeadamente, switches, firewalls, servidores,
controladoras wireless, entre outros.
Assim, o desafio passa por estudar a melhor solução para estes problemas e, ao mesmo
tempo, criar uma arquitetura transversal à rede da Universidade do Porto, ou seja, que funcione
de forma transparente e centralizada, integrando uma monitorização ao nível do serviço e
adequando-se a uma plataforma já existente na componente de monitorização estatística
(Grafana).
Com este projeto pretende-se propôr uma possível solução de monitorização e gestão de
redes de comunicação, sistemas e serviços, destinada à Universidade do Porto. Os principais
objetivos que se pretendem alcançar com a elaboração deste projeto são:
2
É importante salientar que existem requisitos pré-estabelecidos pela Universidade do Porto,
sendo de certa forma, objetivos a atingir, mas que irão influenciar mais na escolha da
ferramenta de monitorização alarmística a adotar. Enumeram-se de seguida esses requisitos:
▪ Criar uma solução que permita otimizar as tarefas, no processo de adicionar um novo
dispositivo de rede, tanto ao nível de hardware como de software. Este conceito é
definido por “autodescoberta”;
▪ Estudar uma solução centralizada que seja escalável com a rede de Core da
Universidade do Porto, adequando-se à gestão técnica e operacional.
A motivação para realizar este trabalho adveio sobretudo de uma intenção pessoal,
paralelamente com necessidades profissionais. Através do desempenho de funções na Unidade
de Serviços de Rede Centrais e Datacenters, e com a prestação de serviços à UPDigital, a
investigação da componente de monitorização alarmística, irá dotar o autor, de um aumento de
conhecimento na área das redes de comunicação de dados, bem como na vertente de
administração de sistemas. Estes fatores são preponderantes, tanto para o desenvolvimento do
conhecimento académico, como também para satisfazer as necessidades e desafios
tecnológicos da própria Universidade do Porto.
3
1.3 Metodologia
Para dar resposta adequada aos objetivos elencados no ponto anterior, este trabalho
assentou numa investigação empírica (revisão bibliográfica), em experimentação (ambiente de
testes) e num estudo comparativo, tendo por base os seguintes pontos:
h. Apresentar a análise geral dos resultados obtidos e tecer comentários sobre este projeto.
Quanto ao ponto de vista da natureza da pesquisa, esta pode ser classificada como pesquisa
aplicada, pois visa gerar conhecimento para apresentar uma solução prática de um problema
específico [1].
O documento está organizado em seis capítulos e vinte e oito anexos, principiando pela
introdução, que se apresenta neste capítulo, com a descrição do enquadramento, dos objetivos
e motivações do presente relatório, a metodologia utilizada e esta estrutura.
4
A revisão bibliográfica, ou estado de arte, é contextualizada no capítulo 2. Esta
contextualização discorrerá sobre a área funcional de gestão de redes de comunicação. Destaca-
se também, neste capítulo, as Arquiteturas OSI (Open System Interconnection) e TCP/IP
(Transmission Control Protocol), com abordagens simples e pragmáticas para o seu normal
funcionamento, tendo em vista compreender a metodologia utilizada nos modelos de gestão,
também aqui descritos, e as plataformas de gestão de rede, que fornecem funcionalidades a
diversos níveis, integrando diferentes ambientes protocolares e permitindo uma melhor gestão
operacional das redes de grande dimensão.
5
Capítulo 2
Gestão de redes
2.1 Introdução
Por todos estes aspetos, torna-se imprescindível a necessidade de integrar, de algum modo,
nos sistemas de comunicação, ferramentas para recolher, transferir, arquivar, analisar e
apresentar a informação de gestão de rede. Estas ferramentas têm por base uma arquitetura
suportada no conceito gestor-agente, que recorre a múltiplos protocolos, baseados em modelos
e paradigmas de gestão de redes, nomeadamente, os modelos organizacionais, de comunicação,
de informação e funcionais.
7
Com o cenário acima apresentado, pretende-se, nas secções seguintes, identificar o modelo
de referência OSI (Open System Interconnection) e o seu modelo sucessor TCP/IP. De seguida,
apresentam-se os modelos e paradigmas de gestão, subjacentes às diversas soluções de gestão
existentes. Por fim, enumeram-se os tipos de gestão, em redes de telecomunicações, baseada
em aplicações web ou sustentada em políticas.
As atividades de gestão de redes podem ser compreendidas aos mais diversos níveis,
abrangendo aspetos que vão desde a monitorização de simples elementos de rede, até à gestão
de redes mais complexas. A gestão dos serviços e aplicações distribuídas em rede necessitam
de modelos arquitetónicos (OSI e TCP/IP) com abordagens simples e pragmáticas para o seu
normal funcionamento. No entanto, é necessário compreender a metodologia utilizada nos
modelos de gestão OSI e TCP/IP, de modo a estabelecer conceitos transversais, e assim
entender as necessidades de uma rede de gestão baseada em camadas protocolares. Todos os
protocolos de gestão de redes assentam então, numa arquitetura indispensável ao seu normal
funcionamento [2].
Aplicação
Apresentação Aplicação
Sessão
Transporte Transporte
Rede Rede
Ligação de dados
Acesso à rede
Físico
8
Posteriormente, como resultado de uma atitude prática em relação ao problema de
comunicação fiável entre os componentes de rede, a arquitetura TCP/IP originou soluções
menos complexas face às necessidades existentes. Esta arquitetura protocolar é composta por
quatro camadas, em vez das sete camadas preconizadas pelo modelo OSI. A Figura 1 representa
a arquitetura protocolar TCP/IP, em comparação à arquitetura OSI, onde é visível a
correspondência entre as camadas constituintes, bem como a aglutinação de camadas. Em
seguida, descrevem-se as diversas camadas constituintes da arquitetura protocolar TCP/IP.
O nível de acesso à rede engloba a camada física (layer 1) e a camada de ligação de dados
(layer 2) do modelo OSI. Esta camada constitui uma interface entre o meio físico de
comunicação (exemplo, corrente elétrica), estabelecendo uma forma de representação lógica
da informação (bits de valor lógico, 0 ou 1). Por sua vez, a camada de acesso à rede também
tem como objetivo a garantia de comunicação, podendo fornecer mecanismos de controlo de
fluxo de informação e controlo de erros. Esta camada trabalha com conjuntos de bits
organizados em tramas.
Algumas das principais funções desta camada são o encapsulamento de pacotes IP nas
tramas a transmitir posteriormente para a rede e a tradução de endereços IP em endereços
Ethernet (Media Access Control, MAC), com recurso ao protocolo ARP (Address Resolution
Protocol) [4].
A camada de rede (layer 3) é, também, designada por nível de internet, o qual, recorre a
uma arquitetura protocolar (IP). Este nível é responsável pelo direcionamento de pacotes na
rede, executando o processo de encaminhamento (routing) com base nos endereços IP de
destino. Neste nível, são efetuadas ações de fragmentação e reassemblagem de pacotes,
ajustando-se o tamanho máximo das unidades de informação suportados pela camada
subjacente. Esta camada utiliza protocolos como o ICMP (Internet Control Message Protocol)
[5] e o IGMP (Internet Group Management Protocol) [6].
9
emissor e o recetor.
Aplicação
Trace
Ping Telnet FTP SMTP DNS SNMP NTP
route
Transporte
TCP UDP
Rede
ICMP IP IGMP
Acesso à rede
Ligação de
ARP RARP
Dados
Meio físico
10
2.3 Modelos e paradigmas para gestão de redes
Existem vários modelos e paradigmas de gestão de redes (Anexo III), sendo que nas redes
de comunicação de dados é utilizado como referência, o modelo gestor-agente, representado
na Figura 3.
Um sistema de gestão de rede abrange uma entidade de gestão, denominada por gestor,
responsável por executar as ações de gestão, propriamente ditas. Por sua vez, os sistemas
geridos ou agentes são elementos de rede que recorrem a um protocolo de gestão, de modo a
executar a comunicação com o gestor e assim acederem à informação de gestão neles
armazenada. Um ou mais sistemas geridos possuem agentes que enviam e recebem notificações
do gestor, tendo estes também a função de armazenar numa base de dados, toda a informação
relativa aos objetos geridos [3].
Sistema gestor
Entidade
de gestão
Rede
Agente Agente
Dispositivo A
Proxy
Dispositivo B
Base de dados Base de dados
11
A gestão de redes pode ser vista de diversos pontos de vista, no entanto existem submodelos
que permitem segmentar as arquiteturas de gestão de redes, e assim definir por módulos, todas
as funções inerentes ao seu bom funcionamento. Os quatro submodelos fundamentais que
decompõem uma arquitetura de gestão são os seguintes [9]:
▪ Modelo de informação - relaciona aspetos descritivos dos objetos geridos (agentes) com
os recursos a gerir (componentes, protocolos ligações virtuais, etc.). Todos os modelos
de informação incluem uma descrição sintática e semântica dos objetos geridos, como
por exemplo, a definição do comportamento dos objetos, operações executáveis sobre
os mesmos, identificação dos objetos existentes, bem como, as suas propriedades e
relações, e o mapeamento entre a informação de gestão guardada nas bases de dados
(Management Information Base, MIB);
12
Modelo organizacional
Domínio 1 Domínio 2
Modelo de Modelo de
Modelo funcional
informação comunicação
A arquitetura de gestão OSI define dois papéis possíveis para as entidades de gestão: o
papel de gestor e o de agente. O gestor e o agente relacionam-se através da utilização de
protocolos de gestão, possibilitando assim, a execução de operações sobre os objetos geridos,
obter os resultados das operações solicitadas, obter mensagens de erro e gerar ou receber
notificações. Mediante certas operações, poderá ser atribuído de forma dinâmica o papel de
gestor e de agente num dado sistema [3].
Sistema gestor
Notificação Processamento
Distribuição de
das
notificações notificações
Agente
CMIS
13
A Figura 5 ilustra as interações entre um sistema gestor e um sistema agente. Este processo
de relacionamento entre os dois sistemas é realizado com recurso à utilização de um serviço de
informação de gestão, comum aos dois sistemas (Common Management Information Service,
CMIS) [10].
A arquitetura de gestão OSI define três áreas referentes ao modelo de comunicação [3]:
14
Operação
SMAP (Gestor) SMAP (Agente)
Notificação
LE Protocolo de camada LE
Este protocolo foi desenvolvido com base no protocolo SGMP (Simple Gateway
Monitoring Protocol), que surgiu em 1987. As limitações do protocolo SGMP (apenas
monitorizava Gateways) [13], originaram o desenvolvimento de um novo, o SNMP, o qual foi
definido na série de standards da IETF (Internet Engineering Task Force), e não só este
protocolo, mas também a linguagem que estrutura as base de dados (Management Information
Base, MIB). A linguagem que define as MIB’s é denominada por Structure of Management
Information (SMI), contemplando duas versões (SMIv1, SMIv2) [14], [15].
15
No modo de funcionamento, o protocolo SNMP, faz uso da camada aplicacional
(application layer) da arquitetura TCP/IP, sobre o protocolo de transporte UDP (User
Datagram Protocol), o qual não garante a entrega dos pacotes IP, mas possibilita que as
operações de gestão sejam tão leves e eficientes quanto o possível [3].
16
Arquitetura genérica do protocolo SNMP
O módulo de software de gestão de rede, presente num dipositivo, que envia e recebe
informação de gestão proveniente do gestor (NMS), é denominado por agente. Este tem como
principal função, traduzir os dados armazenados na base de dados (MIB) para a linguagem
compreendida pelo SNMP (SMI). Todos os detalhes protocolares do SNMP, ao nível de
operações e formatos das mensagens nas diversas versões, são retratados em pormenor no
estudo inerente ao Anexo I.
17
2.3.3 Modelo de informação
O modelo de informação foi definido numa estrutura genérica que permite a identificação
da informação de gestão, recorrendo a uma árvore de registo com elementos numa linguagem
utilizada para descrever a informação de gestão [14].
Internet (1)
MIB-2 (1)
system interface address ip icmp tcp udp egp cmot transmission snmp rmon
(1) (2) translation (4) (5) (5) (6) (7) (8) (10) (11) (16)
(3)
18
Para possibilitar a identificação unívoca de toda a informação de gestão, é utilizada uma
árvore de nomeação, que permite a definição de identificadores de objetos (OID). Um objeto
existente numa árvore de nomeação contém um identificador único, o qual obtém-se
concatenando os números dos nós da árvore, desde a raiz até ao nó em causa [12].
A versão inicial MIB (MIB-I) continha um limite predeterminado de cem objetos [14]. Com
a necessidade de introdução de novas variáveis surgiu a MIB-II. Os objetos definidos na MIB-
II são cerca de cento e setenta e organizam-se em dez grupos distintos [20], mormente:
O repositório de dados Remote Network Monitoring MIB (RMON MIB), permite alocar a
informação sobre o estado da rede, ao contrário da MIB tradicional que recolhe informação dos
sistemas [21]. A RMON MIB pertence à árvore de identificadores de objetos conforme
19
demonstra a Figura 8, e é definida pelo prefixo 1.3.6.1.2.1.16.
Embora os objetos existentes na RMON MIB contenham uma complexidade superior aos
objetos da MIB, o paradigma de gestor-agente deixa de ser utilizado, conforme ilustra a Figura
9. Deste modo os sistemas geridos que utilizam a RMON MIB são dispositivos com uma
funcionalidade de gestão própria, como por exemplo analisadores de protocolos, que
processam a informação de gestão e a armazenam [3].
Gestor
SNMP
Agente Agente
SNMP SNMP
RMON Monitorização
Agente
SNMP
Elementos
de rede
Dispositivo de gestão de rede Rede
20
Tabela 1 - Grupo de objetos RMON MIB
Statistics Disponibiliza estatísticas sobre cada interface monitorizada num dado dispositivo
Grupo RMON2
Função
MIB
Protocol
Apresenta os tipos de protocolos disponíveis para o processo de monitorização
Directory
Protocol
Disponibiliza a informação de tráfego por protocolo
Distribution
Address
Mapeamento de dados entre endereços MAC e endereços IP
mapping
Network layer
Fornece estatísticas de tráfego de uma determinada rede
host
Network layer
Possibilita estatísticas de tráfego de uma dada origem e destino, a nível de endereços IP
matrix
Application Demonstra estatísticas de tráfego ao nível aplicacional, de diferentes protocolos, como por
layer host exemplo HTTP, FTP, SMTP, DNS entre outros
Application
Possibilita estatísticas de tráfego de uma dada origem e destino, ao nível aplicacional
layer matrix
21
2.3.4 Modelo funcional
Todas as áreas funcionais são importantes de igual modo, no entanto, é importante salientar
que os sistemas de monitorização e alarmística focam-se essencialmente nas áreas de gestão de
falhas e gestão de desempenho
22
Tabela 3 - Funcionalidades genéricas suportadas pelo modelo FCAPS [25]
Gestão de Falhas
É uma das áreas funcionais que se destaca pela sua importância no processo de gestão de
redes de comunicação. Uma das atividades fundamentais da gestão de falhas consiste na
deteção de erros, desta forma, após o processo de deteção, deverão ser despoletadas ações de
diagnóstico e recuperação de erros.
Vulgarmente uma falha origina vários alarmes, bem como erros a ela associados. Deste
modo, o diagnóstico de erros é realizado de acordo com os lapsos detetados, determinando a
sua causa comum.
23
Por norma, a deteção ou o diagnóstico de um erro, gera uma notificação do problema, que
ajuda na tomada de decisão por parte do sistema ou do gestor de rede.
Gestão de Configuração
Nos sistemas de gestão mais sofisticados é frequente que, a partir da informação dos agentes
existentes nos equipamentos, seja possível ter a visão topológica da rede, bem como detetar de
forma automática todos os equipamentos existentes nessa mesma infraestrutura [26].
Gestão de Contabilização
A função de contabilização ganha mais relevo em redes comerciais, pois tem como
principal função, definir custos de utilização dos serviços prestados.
Embora não exista uma tarifa associada por utilizador nas redes não comerciais, os
equipamentos e meios de comunicação têm um custo, nomeadamente no que concerne à
aquisição e manutenção dos mesmos. Tendo em conta os fatores referidos, é importante, em
alguns casos, ter uma noção sobre os recursos consumidos por parte dos utilizadores, para que
seja possível quantificar e justificar os custos de atualização e eventual escalabilidade da rede.
24
A gestão de contabilização prevê, ainda, um papel fundamental no suporte de auditorias,
determinando por exemplo, a utilização concreta de recursos de um utilizador, mediante a
análise de comportamentos suspeitos. Portanto, este tipo de gestão assume um requisito
essencial no que diz respeito às questões legais, prevenido assim a criminalidade informática
[3].
Gestão de Desempenho
Como função principal, neste modelo, destaca-se a monitorização do estado dos elementos
de rede, ao nível físico e lógico. São então analisadas informações do desempenho de um
determinado serviço, recolhendo e avaliando a informação em tempo real e despoletando
alertas, quando os valores estão fora dos limites pré-estabelecidos. Congrega ainda funções que
analisam as tendências, de modo a que seja possível prever e antecipar problemas ao nível do
desempenho.
Gestão de Segurança
25
2.4 Metodologias de gestão de rede
A) Gestão In-band
B) Gestão Out-of-band
A) Data plane
Router IBM
B) Control plane
Router OOBM
A gestão de rede IB assegura a gestão dos equipamentos com auxílio da rede de dados,
garantindo um modelo elementar no que concerne ao processo de administrar e gerir uma rede
[29].
Embora este método não seja a solução ideal, é comumente utilizado pela carência de
hardware dedicado por parte das instituições, nomeadamente ao nível dos componentes
passivos e ativos, os quais devem ser totalmente distintos da rede de transporte de dados.
26
Sob compromisso de prejuízo na simplicidade desta metodologia, a dimensão elevada de
dispositivos, bem como o número de serviços críticos de rede, deverá ser considerada na
adoção deste modelo. Tendo em conta uma possível falha da rede de dados, a gestão de rede
in-band deixa de ser adequada, a qual, fica comprometida pela perda de acesso aos dispositivos
que apresentam anomalias, impossibilitando assim a resolução do problema. Para corrigir tal
situação, torna-se extremamente importante uma ligação física alternativa que seja totalmente
independente da rede de dados dos clientes (gestão out-of-band).
Torna-se importante salientar que a rede de gestão fora de banda, possibilita ainda uma
maior segurança na rede pelos seus métodos de segregação de tráfego, sendo de referir que
existem dispositivos de rede que não possuem, ou não devem ter, ligação direta à rede de dados,
como por exemplo, fontes de alimentação ininterruptas (Uninterruptible Power Supply, UPSs),
sensores de temperatura, entre outros [28].
27
▪ Dão suporte a uma variedade de protocolos e tecnologias de gestão;
2.5.1 Prometheus
Por sua vez, o Prometheus engloba-se em diferentes níveis do modelo FCAPS, podendo
assim, ser utilizado como ferramenta de gestão de falhas, desempenho e segurança.
▪ Possui uma linguagem própria (PromQL) para realizar queries em formato time series;
28
▪ Permite uma vasta gama de exportadores de dados (conceito de agente): MongoDB,
PostegreSQL, Elasticsearch, SNMP, Netgear, Nagios, entre outros;
push Email
metrics Discover targets
etc
Pushgateway Prometheus server
Pull push
metrics TSDB HTTP alerts
Retrieval
format server Data Visualization /
Export
Exporter Prometheus
Pormetheus
Servers web UI
PromQL
Windows Server Grafana
TSDB
▪ Módulo Exporter, que permite integrar bibliotecas para os hosts a monitorizar através
de métricas;
29
em formato time series são guardadas numa base de dados (Time Series Database, TSDB).
2.5.2 Cacti
O Cacti é uma ferramenta open source cuja principal funcionalidade recai na análise da
gestão de desempenho através de gráficos. A utilização de plugins permite um leque mais
alargado no concerne às diferentes áreas funcionais da gestão (FCAPS).
Com recurso a uma interface web, o Cacti disponibiliza um frontend para o sistema de log
de dados e elaboração de gráficos do tipo RRDtool (Round-Robin Database) [31]. Esta
ferramenta contempla inúmeras funcionalidades, merecendo destacar a facilidade de criação e
configuração de gráficos RRD com base na sua interface web, bem como o suporte para scripts
e comandos externos, e a recolha de dados com base no protocolo SNMP [32].
30
a metodologia First In, First Out (FIFO). Para agregar os dados são criados vários RRAs
(Round Robin Archives) dentro de um único ficheiro RRD. Os RRAs representam medições,
podendo estas ser diárias, semanais, mensais e anuais, ou definidas livremente pelo utilizador
[33]. No processo de armazenamento das configurações inerentes ao sistema, é utilizada uma
base de dados MySQL.
Router
Switch
Browser Cacti Pooler
Server
Application
RDD
RDD
MySQL
RDD
2.5.3 Zabbix
31
Como principais características do Zabbix, enumera-se as seguintes [35]:
Web Server
Zabbix server
Alerts Browser
Hosts (HTTP)
Graphics
SNMP Item
Database Server
Zabbix Agent Item Triggers
History
MySQL
ICMP Item Trends PostgreSQL
32
Embora a topologia arquitetónica comummente utilizada não recorra à segmentação de
componentes, o funcionamento tradicional do Zabbix poderá ser suficiente para monitorizar
uma rede de dados. Contudo, o Zabbix torna-se uma ferramenta escalável, poderosa e
diferenciada, por poder ser personalizável às características dimensionais de uma rede. Em
casos de redes de tamanho elevado, o Zabbix permite segregar os seus componentes
constituintes em hardware dedicado e distinto (Figura 13), sendo possível ainda, a criação de
clusters de base de dados, a implementação de clusters de proxies e clusters de servidores
Zabbix, com o objetivo de melhorar o seu desempenho garantindo o conceito de cluster de alta
disponibilidade (High-Availability cluster, HA cluster) [36].
Por outro lado, para monitorizar equipamentos como switches, routers, entre outros, são
utilizados SNMP checks, sendo importante destacar que este tipo de dispositivos, por norma,
suporta o protocolo SNMP, e não são passíveis de instalar e configurar o agente Zabbix [37].
33
A produção de relatórios e a visualização de dados são também bastante importantes,
permitindo a análise de valores numéricos ou gráficos de vários tipos. Todos os relatórios,
estatísticas e parâmetros de configuração, são acessíveis através de um front-end gráfico web-
based [38].
2.5.4 Nagios
Como ferramenta que se destaca no processo de gerir falhas, a sua principal funcionalidade
passa por analisar o estado de operabilidade dos hosts e dos serviços discriminados, alertando
o gestor de rede quando determinadas situações anómalas se confirmem. Supondo que um host
fique indisponível por parte da rede, o Nagios despoleta, por exemplo, um e-mail de modo a
notificar o utilizador da falha ocorrida. Embora a sua página web não permita fazer todo o tipo
de configurações, como por exemplo, adicionar hosts e/ou serviços a monitorizar, permite,
ainda assim, apresentar o estado de todos os dispositivos que estão a ser monitorizados [39].
Web contacts.cfg
checks Alerts
Log Files Configuration files
Retention state Register Configuration hosts.cfg
Monitorization hostgroups.cfg
services.cfg
Server
Switch Router NRPE
Agent
Hosts
34
Utilizando quer os plug-ins disponíveis para a distribuição base quer plug-ins adicionais, o
Nagios executa a monitorização dos serviços, de acordo com a informação do ficheiro de
configuração. Os plug- ins oficiais permitem monitorizar os serviços mais comuns, tais como,
ICMP, SNMP, HTTP, já referidos anteriormente, mas também IMAP (Internet Message
Access Protocol), SSH (Secure Shell), POP3 (Post Office Protocol), DHCP (Dynamic Host
Configuration Protocol), entre outros [40]. Adicionalmente importa, destacar o agente NRPE
(Nagios Remote Plugin Executor) habitualmente utilizado para monitorização de servidores.
Ao nível das ações de monitorização despoletadas pelo Nagios, é importante referir, que os
resultados destes testes (checks) são armazenados em ficheiros de log. Por sua vez, o estado
dos equipamentos e serviços é guardado na base de dados de retenção de estados
(retention.dat).
As ações de monitorização iniciadas pelo daemon do Nagios são designadas por active-
checks, já as ações de monitorização iniciadas por processos externos e enviadas ao Nagios são
designadas por passive-checks [39].
Cada check proveniente de um plugin pode retornar diferentes estados, nomeadamente: OK,
WARNING, CRITICAL e UNKNOWN. Por definição são enviados ao host, três checks de
verificação de estado, após a falha no primeiro check. Caso a resposta não seja retribuída, ou
seja diferente do estado OK, é enviado um alerta ao utilizador [39].
35
Na Tabela 4 é descrito o papel desempenhado por cada um dos ficheiros supracitados, os
quais têm um papel preponderante, no que concerne à gestão operacional da ferramenta Nagios
[39] [40].
Ficheiros Função
O Zenoss Core tem como o principal objetivo monitorizar o estado dos nós de rede
oferecendo uma opção fiável para gerir e administrar uma infraestrutura de sistemas
informáticos. Analisando o seu perfil funcional FCAPS, podemos classificar que esta
plataforma cobre primordialmente a gestão de falhas, embora também providencie tarefas de
gestão de desempenho graças à sua integração com o RRDTool.
O modo de funcionamento do Zenoss Core tem por base uma arquitetura bastante peculiar.
Todos os elementos podem ser parametrizados através de linha de comandos no entanto, esta
ferramenta contempla uma interface web que oferece um ambiente gráfico dinâmico,
fornecendo ao utilizador uma navegação interativa, viabilizando a gestão automatizada dos
dispositivos (discovery) ao nível do seu estado (avaliability) e desempenho (performance), bem
como proporciona ainda, a gestão de eventos (events) e relatórios de sistema, entre muitas
outras funcionalidades.
36
User Interface
Web
Discovery
Process Layer Zen
Avaliability Model
Zen
Performance RRD
ICMP SNMP SSH/WinRM
Zen
Events Events
Server
Switch Router Agent
Zenpacks
Hosts
O tratamento dos dados é realizado em três tipos distintos de base de dados: ZenModel;
ZenRRD; ZenEvents. A informação inerente aos serviços dos hosts é monitorizada a partir da
camada de recolha (collection layer). Posteriormente, os dados são encaminhados para a
camada de processamento (process layer) que separa a informação e trata de armazenar a
mesma na respetiva base de dados [41].
Os eventos, como por exemplo logs ou notificações, são arquivadas numa base de dados
MySQL (ZenEvents). Estes eventos, podem gerar ações, como envio de e-mail ou SMS (Short
Message Service), caso se verifique uma situação de falha.
37
Do ponto de vista lógico, podemos considerar o RRD como uma terceira base de dados para
guardar a informação de desempenho dos hosts, como por exemplo, a utilização de CPU, disco,
memória ou tráfego de entrada e saída, entre outros.
As tecnologias suportadas por esta plataforma são um pouco distintas das ferramentas de
monitorização alarmística tradicionais. Destaca-se o protocolo SNMP como sendo o mais
genérico para monitorizar equipamentos centrais de comunicação (switches, routers, etc.) que
não permitem a instalação de agentes.
2.5.6 Syslog-NG
38
Syslog-ng Server Host
Source 1
Application Application Application
1 2 3
Syslog-ng Client
Como pode ser verificado na Figura 16, a arquitetura e funcionamento genérico do Syslog-
NG, retrata a metodologia supramencionada. Concretamente, ao analisarmos um exemplo de
funcionamento do módulo do cliente Syslog-NG, comprovamos a receção das mensagens de
log de diferentes aplicações através de várias origens, sendo estas mensagens encaminhadas
pelos logs paths para um destino, sob pena da análise prévia das regras dos filtros.
Neste caso, as mensagens de log cumprem as regras definidas pelos filtros e são expedidas
para o seu destino (servidor Syslog-NG). Após a receção das mensagens de log pelo servidor
Syslog-NG, este analisa a sua lista de log path, de modo a encaminhar a mensagem para o
devido destino.
2.5.7 Graylog
O Graylog permite ordenar e classificar os logs, disponibilizando assim, uma gestão de logs
totalmente integrada, baseada na indexação e análise de dados (estruturados e não estruturados)
de diversos componentes ativos de rede. Esta aplicação propõe ainda uma metodologia
centralizada num sistema único, facilitando assim, o controlo e/ou identificação de um possível
problema [46].
39
Graylog Server
Web Interface
(Browser)
MongoDB
Graylog
Log messages
Hosts Elasticsearch
Na Figura 17 fica percetível a arquitetura proposta pelo Graylog, sendo esta subdividida
em três componentes principais: a base de dados MongoDB, a qual trata do armazenamento
das configurações da aplicação; a base de dados baseada em Elasticsearch, utilizada para
guardar as mensagens de log recebidas; e o próprio Graylog, o qual é responsável pelo processo
de recolha, filtragem e análise das mensagens de log [47]. De modo a providenciar aos seus
utilizadores uma gestão de tarefas mais eficaz, o Graylog disponibiliza ainda, uma interface
web que proporciona, de forma gráfica, a análise e processamento de logs.
Conceitos Funcionalidades
40
Na Tabela 5, enumeram-se os principais conceitos da arquitetura do funcionamento do
Graylog [47].
Torna-se importante salientar que o Graylog é adaptativo à dimensão de uma rede, a qual,
poderá contemplar um elevado número de nós, necessitando assim, de uma solução que garanta
a resiliência e a alta disponibilidade [48].
Poderá ainda, ser utilizado um balanceador de carga para possibilitar ter dois ou mais nós
de Graylog, por forma a garantir um melhor desempenho, bem como, um aumento significativo
do processamento das mensagens de log. O balanceador de carga propõe um método de
validação dos nós de Graylog disponíveis no cluster, API REST (Representational state
transfer), através da execução do protocolo ICMP via HTTP. Em caso de uma possível falha,
o nó que apresentar problemas de conetividade será removido do cluster[48].
2.5.8 RANCID
O RANCID (Really Awesome New Cisco confIg Differ) é uma ferramenta que monitoriza
as alterações dos ficheiros de configuração dos equipamentos de uma rede [49]. Trata-se de
uma plataforma com um perfil funcional associado ao modelo de gestão de configurações
preconizado pelo FCAPS.
41
RANCID Server
SSH
Firewall
VCS
Switch Telnet
RANCID
SVN
SSH
Router
Para que o RANCID inicie uma ligação com o dispositivo de rede, este recorre a um
protocolo de acesso remoto e à respetiva palavra-chave do equipamento. Esta conexão aos
elementos de rede é efetuada através dos protocolos SSH ou Telnet.
Com base no ficheiro VCS, o utilizador poderá ser notificado pela receção de um e-mail,
mediante uma possível alteração nos ficheiros de configuração atuais, com base na comparação
das últimas versões armazenadas.
42
2.5.9 Oxidized
Oxidized Server
Devices List Check
Firewall
Source
Filles
Telnet
Switch Input Oxidized Output GIT
HTTP
Model
Router
Devices Commands
43
Tabela 6 - Conceitos-chave do funcionamento do Oxidized [65]
Componentes Funcionalidades
Source Especifica uma lista de dispositivos para recolha de ficheiros de configuração, com base em
endereço IP e password, entre outros;
Possibilita a integração com base de dados SQL, ficheiros de texto (router.db) e HTTP.
Model Estabelece a informação a recolher dos dispositivos com base no seu modelo e nos
respetivos comandos da CLI (Command-Line Interface);
Suporta diferentes fabricantes de hardware: Cisco, Juniper, HP Procurve, Nokia, entre
outros.
44
Capítulo 3
3.1 Introdução
Podemos então, considerar o meio universitário, como uma organização bastante complexa,
com diversos agentes, que para além da educação científica, promove uma educação
empresarial, através da incubação, da investigação e promoção da inovação científica.
Um dos principais objetivos da Universidade do Porto passa por gerir estes desafios,
conjugando diferentes necessidades de várias Unidades Orgânicas, sendo esta, uma tarefa
complexa e que envolve múltiplos recursos humanos, materiais e financeiros.
Polo II Polo I
10GE
RCTS
10GE
45
desenvolvimento e a utilização de serviços inovadores, a Universidade do Porto Digital
(UPdigital) é, atualmente, a entidade organizacional que disponibiliza e assegura todos estes
componentes, com base em unidades orgânicas que segmentam a administração da
Universidade do Porto.
46
Como base de interligação entre as diferentes Instituições, Faculdades, Residências e outros
Organismos (Tabela 7), são utilizados quatro comutadores IP localizados geograficamente em
diferentes pontos de presença (Figura 20).
A ligação à Internet é facultada pela RCTS, operada pela FCT-FCCN (Fundação para a
Ciência e a Tecnologia - Fundação para Computação Científica Nacional).
Perante este cenário, podemos constatar a enorme dificuldade que pode ser gerir e
administrar uma rede desta dimensão, a qual, está constantemente a evoluir, tanto na vertente
física (equipamentos), quanto na vertente lógica (configurações).
Nesta secção serão descritos os equipamentos passivos e ativos que decompõe a topologia
de rede física da Universidade do Porto, como também, todas as tecnologias e protocolos que
que fundamentam a topologia lógica.
47
Reitoria ISPUP FBAUP ICBAS-old CDUP FIMS R.J.Sousa R.A.Cunha
R.Bandeirinha R.J.Falcão
Porto
ASR I Digital CIMAR ICAV CIPES UPTEC R.Paranhos INESC INEGI
Vodafone
ASR II
RCTS FFUP/
Porto UPTEC ICBAS FLUP FAUP FCUP PBS/EGP CAUP
Digital
ASR III
ASR IV
48
Em termos geográficos, a rede da U. Porto, estende-se a locais que não possuem
infraestrutura passiva para prestar serviços de conetividade. Contudo, mediante acordos pré-
estabelecidos, existem dois operadores de telecomunicações que prontificam a sua
infraestrutura de rede metropolitana, mais concretamente, a Associação Porto Digital e a
Vodafone.
Subsistema de núcleo e
distribuição
distribuição
ASR I ASR II ASR III ASR IV
Switchs Ser vido res Centrais Switchs Ser vido res Centrais Switchs Ser vido res Centrais
polo-1 polo-2 polo-3
Subsistema de acesso
Unidades Unidades Unidades Unidades
Organizacionais Organizacionais Organizacionais Organizacionais
Ser vido res Lo cai s Ser vido res Lo cai s Ser vido res Lo cai s Ser vido res Lo cai s
49
Em relação aos equipamentos ativos, a rede da U. Porto aglomera inúmeros equipamentos,
no entanto, para o presente projeto, torna-se importante descrever os principais equipamentos
que decompõem a rede de gestão, conforme é representado na Tabela 8.
Equipamentos Modelo/Descrição
Cisco ASR-9010
Routers
Cisco ASR-9006
Cisco 2950
Cisco 2960
Cisco 3560
Cisco 4500
Switches Cisco 3600x ME
Cisco Nexus 5548
Cisco Nexus 2248 FEX
Cisco Nexus 2348 FEX
Cisco Nexus 9000
Firewalls Cisco ASA 55xx
Controladoras wireless Cisco 8510 / 2504
UPS (Uninterruptible Power Supply) APC / Riello
Neste sentido, é essencial avaliar a forma como todo o fluxo de tráfego ocorre na rede
(topologia lógica), mediante os equipamentos ativos que a constituem. Paralelamente, todos
estes equipamentos recorrem a diversos protocolos e tecnologias, onde serão descritas com
maior detalhe no subcapítulo 3.2.2.
A representação dos fluxos de tráfego de uma rede define a sua arquitetura lógica. O
comportamento de uma rede de dados assenta então em diferentes protocolos e tecnologias, os
quais, permitem que os sistemas integrantes consigam alcançar um melhor desempenho,
mediante as necessidades dos utilizadores.
50
Loo pback
Domínio BGP Loo pback
Domínio OSPF Loo pback
193 .13 6.5 6.25 2 193 .13 6.5 6.25 2 193 .13 6.5 6.25 3
IBGP
RCTS
Loo pback
80.10.1.2
Legenda:
Distribuição de rotas OSPF
Distribuição de rotas BGP
Ligação secundária
• Gestão wireless;
• Gestão IP/MPLS.
Por sua vez, para o caso do encaminhamento exterior da U. Porto o protocolo BGP (Border
Gateway Protocol) [53] , que permite a conectividade entre sistemas autónomos (Autonomous
System, AS) (Anexo V). A título de exemplo, demonstra-se o processo genérico de distribuição
de rotas para os protocolos BGP e OSPF, conforme ilustra a Figura 23.
Para garantir a conetividade com a RCTS utiliza-se protocolo BGP, o qual faculta a partilha
dos prefixos de rede IP através de políticas de routing (ver Figura 72). Uma vez que todas as
redes IP estão sumarizadas dentro do processo BGP, as mesmas são associadas a um filtro de
exportação (BGP filter out) para que o remote AS (RCTS) tenha o conhecimento das mesmas,
51
de modo a establecer duas sessões EBGP (External Border Gateway Protocol) (ver Figura 70).
Entre os routers de periferia (ASR-2 e ASR-3), existe uma sessão IBGP (Internal Border
Gateway Protocol) para que estes nós, partilhem as redes aprendidas por EBGP e tenham
conhecimento ativo da topologia da rede. Em caso de falha, a rota default (BGP filter in) será
atualizada na tabela de routing do nó redundante (ASR-3), tendo esta como “novo” next-hop,
o endereço remoto da rede de interligação secundária.
1 2 1 2
Domínio VRF
3 4 3 4
Router 2 Router 1
Núcleo
IP/MPLS
Router 3 Router 4
1 2 1 2
Legenda:
Domínio VRF
1 - VRF Gestão 3 4 3 4
2 - VRF Gestão Wireless
3 - VRF IPv4 Público UP
4 - VRF IPv6 Público UP
Cada VRF existente segrega diferentes domínios broadcast, utilizando assim diferentes
interfaces lógicas de layer 3 (Bridge Virtual Interface, BVI) que possibilitam o acesso por
qualquer interface física do equipamento com recurso ao MPLS (Figura 24).
De um ponto de vista teórico o MPLS tem diferentes características para o seu normal
funcionamento. Como principal vantagem o MPLS diminui as limitações de latência entre nós,
dada a complexidade de operações das tabelas de encaminhamento (routing table).
52
No modelo de funcionamento do MPLS preconiza-se a necessidade de um protocolo de
IGP (Interior Gateway Protocol) e um protocolo de sinalização (Anexo VI). Concretamente,
nesta componente, o protocolo OSPF foi o escolhido para garantir a distribuição dinâmica de
redes e o protocolo LDP (Label Distribution Protocol) sinaliza a distribuição de etiquetas (ver
Figura 75).
O processo do OSPF configurado para descoberta dos routers ASR (ver Figura 74),
diferencia-se e ganha um enorme relevo para todas as VRFs existentes pois, sem este, nenhuma
VRF funcionaria. Isto revela uma enorme dependência hierárquica da rede, visto que toda a
lógica de configuração depende da utilização do MPLS e consequentemente, dos serviços l2vpn
disponibilizados pelo VPLS.
Qualquer recálculo na instância OSPF da rede de gestão dos routers ASR, implica uma
alteração de “caminhos” em todas as VRFs presentes. Por outro lado, as VRFs, não necessitam
de conter endereços de interligação entre os peers para atingir um dado prefixo de rede, pois
cada nó utiliza a interface BVI como router-id, estando estas no mesmo domínio broadcast.
20
IP 1 72.18.0.2
IP 1 72.18.0.2
3 2 3
2 1 2 1
53
Isto deve-se ao facto das interfaces das redes de interligação estarem associados ao processo
OSPF nativo ao MPLS e, intrinsecamente, as interfaces BVI funcionarem como “ponte” entre
a camada 2 e a camada 3 do modelo TCP/IP. Em paralelo a isso, as interfaces BVI são
agregadas a serviços l2vpn (routed interface) de modo a fornecerem a ligação intracamadas.
A arquitetura MPLS define diferentes nomenclaturas aos nós de rede. Os nós LER (Label
Edge Router) localizam-se na periferia da rede e compreendem as tarefas mais complexas,
como a interligação de redes, a classificação de pacotes e a determinação da sua FEC
(Forwarding equivalence class). No interior da rede os nós LSR (Label Switching Router)
encaminham os pacotes, baseando-se apenas no valor da etiqueta e na respetiva tabela de
comutação (Label Forwarding Information Base, LFIB).
Na Figura 25 está representado o conceito fundamental do MPLS. Numa fase inicial, são
distribuídas as etiquetas entre todos os nós (hop by hop), sendo este processo iniciado pelo nó
a jusante, mediante a origem e destino do fluxo de dados (LSR-2, LSR-4).
Tendo em conta que todos os nós da topologia MPLS já redistribuíram todas as FECs
associadas às respetivas etiquetas, os caminhos (Label Switched Path, LSP), são então
estabelecidos unidirecionalmente entre todas as interfaces pertencentes ao domínio MPLS. A
partir deste ponto, o Ingress LER (ILER4) determina a etiqueta a adicionar ao pacote e
encaminha-o para a interface correspondente de saída. O LSR-3, com auxílio do LSP
anteriormente estabelecido, pode agora receber o pacote e comutar apenas com base na
etiqueta. Por fim o Egress LER (ELER-2) tem a responsabilidade de remover a etiqueta MPLS
antes de entregar ao seu destinatário.
54
Os elementos de rede MPLS, anteriormente citados, sobre o ponto de vista do modelo de
referência VPLS, adquirem assim novas nomenclaturas (Figura 26).
VPLS-1 VPLS-1
S1 VPLS-1 VPLS-1 S2
CPE CPE
CPE-2.1 CPE-1
VPL S-2 VPLS-2
VPLS-2
PE-2 PE-1
CPE CPE PE-2 PE-1
Núcleo CPE-2.2
IP/MPLS
CPE CPE
PE-3 PE-4
VPLS-1 VPLS-1
Núcleo
CPE CPE IP/MPLS
(routers P)
VPLS-2 VPLS-2
PE-3 PE-4
Legenda: S3
CPE-3 CPE-4
Attatchment Circuit (AC)
Pseudowires (túneis interiores) VPLS-1 VPLS-2 VPLS-2
LSP (túnel exterior)
Os comutadores Ethernet localizados nos datacenters ou nas instalações das diferentes UOs
são denominados por Costumer Provider Edge (CPE), estando estes interligados a PEs
(Provider Edges) através de um circuito de acesso (Attachment Circuits, AC). Em relação aos
nós de acesso ao domínio MPLS, estes são intitulados de PEs e têm como função principal
determinar a origem e o término de uma ou mais instâncias VPLS (serviços). Associados ao
interior da nuvem IP/MPLS, existem na sua constituição routers P (Provider), os quais são
incumbidos por interligar PEs e transportar os túneis interiores (pseudowires) e exteriores
(LSPs) necessários ao funcionamento do VPLS.
Supondo que duas tramas Ethernet são emitidas por um CPE de periferia (CPE-2.1) até aos
respetivos CPEs de destino (CPE-3, CPE-1), quando o PE-2 recebe as tramas transmitidas
originalmente pelo servidor (S1), determina o serviço VPLS (VPLS-1) em causa através do
circuito de ligação (AC) e da etiqueta 802.1Q da trama (VLAN) onde esta foi recebida.
55
Tendo como princípio orientador de que os PEs já têm os LSPs estabelecidos com base nas
etiquetas exteriores (tunnel-label) provenientes do MPLS, são então adicionadas duas etiquetas
(processo de push) pelo PE-2 às tramas iniciais, as quais identificam o pseudowire respetivo
(PW-label).
▪ Mecanismos de segurança;
56
3.3.1 Gestão out-of-band e in-band
Embora existam ligações físicas comuns entre os equipamentos, as VLANs acabam por
oferecer um isolamento do tráfego de gestão. Ao nível da gestão IB é importante salientar que
a redundância de ligações é efetuada por recurso ao conceito de port-channels, associando
assim, duas ou mais interfaces físicas do equipamento com a respetiva VLAN de gestão.
57
Para controlar os acessos à rede, são utilizadas firewalls, com o objetivo de proteger a rede
privada da organização, de acessos não autorizados oriundos da internet, ou para proteger uma
dada rede de acessos a partir de qualquer outra rede.
As metodologias de acesso externo à rede de gestão são bastante restritas, sendo utilizados
canais de comunicação seguros e virtualmente dedicados, em particular, as redes privadas
virtuais (Virtual Private Networks, VPN) [56].
Destaca-se assim, o IPSec (IP Security) como a tecnologia empregue pela U. Porto (Anexo
VIII) para garantir a comunicação segura entre redes privadas interligadas por circuitos/canais
virtuais suportados noutras redes (públicas). O IPSec funciona ao nível de rede, sendo
completamente invisível do ponto de vista do utilizador. Examinemos então os dois casos de
configuração da arquitetura IPSec presente na infraestrutura da rede de gestão (Figura 27):
58
Internet
Utilizador
Rede Redes
gestão 1 0 0 1 Internas
FW-Gestão RT-III RT-I FW-Polo-1
a) comunicação remote-to-access
Rede Redes
gestão 1 0 0 1 Internas
FW-Gestão RT-III RT-I FW-Polo-1
b) comunicação site-to-site
Legenda:
Túneis IPSec
0 Interface outside
1 Interface inside
59
Deste modo, as VPNs configuradas, não analisam por si só os padrões inerentes ao
polinómio AAA (Authentication, Authorization, Accounting).
Para determinar que utilizadores devem ter acesso à camada de gestão, são empregues
servidores que utilizam protocolos de AAA. Podemos definir que existem três principais
grupos de utilizadores na U. Porto:
• Utilizadores que não fazem parte da U. Porto, mas carecem de acesso à rede, por
motivos de projetos de colaboração externa, entre outros;
Internet
Utilizador
Servidor RADIUS
FW-Gestão
60
Por outro lado, se um utilizador for administrador de rede da U. Porto, as suas credenciais
existem num repositório comum nomenclado por PEP, estando este integrado no servidor
RADIUS para proceder à autenticação, sendo o processo de autorização e gestão de credenciais
validado pelo servidor LDAP (Lightweight Directory Access Protocol) [58]. Determinados
privilégios do utilizador, podem ser contabilizados por um repositório específico para o efeito.
Caso um utilizador não necessite de acesso à rede e apenas careça de serviços de conectividade
através da rede sem fios eduroam, o seu processo de autenticação é realizado com recurso a
um servidor proxy, o qual reencaminha os pedidos inerentes ao modelo AAA, para a instituição
a que este pertence (Figura 28).
Os critérios de acesso interno à rede de gestão por parte dos grupos de utilizadores
previamente citados, funcionam de igual forma, com exceção aos utilizadores que, de algum
modo, fazem a manutenção dos serviços de conectividade da rede, podendo estes ter
credenciais de acesso direto aos equipamentos, não utilizando assim os mecanismos de AAA
para a respetiva autenticação. Utilizadores que administram a rede de comunicações e os
sistemas da U. Porto, estão então diretamente ligados à rede de gestão, com acesso às redes e
portas configuradas nas ACLs das firewalls.
A rede de gestão de equipamentos pode ser vista de forma genérica, como uma rede que
permite gerir a configuração dos mesmos, cumprindo com os requisitos de segurança no que
visa ao controlo e acesso dos dispositivos.
Face à necessidade de gerir alguns equipamentos que pertencem às UOs, são utilizadas
redes de interligação entre estas e as firewalls de gestão da U. Porto. Isto permite não só utilizar
endereçamento IP privado, como poupar endereçamento público, diminuindo assim, a carência
de recorrer a mecanismos de tradução de endereços de rede (Network Address Translation,
NAT).
61
Rede gestão 172 .17 .20 .0/24 172 .17 .10 .0/24 Rede gestão
Polo II .2
RT-II RT-I .1 Polo I
.1 172 .18 .0.0/24
.254
Rede gestão .3
Polo III 172 .17 .30 .0/24 RT-III RT-IV
A grande diferença da rede de gestão wireless, prende-se então ao facto de como esta se
encontra, de forma a facilitar o controlo e a administração de todos os pontos de acesso (Acess-
Point, AP) sem fios.
62
Devido à transversalidade dos serviços de conectividade da rede eduroam, a lógica de
configuração da rede de gestão wireless, depende muito dos equipamentos de núcleo e
distribuição e impõe procedimentos que garantam o acesso às UOs através de serviços VPLS.
Redes gestão
wireless UOs 10.240.250.0/23 250.2
Polo 2
Rede gestão AP
wireless (Reitoria)
Controlado ra
wireless III 251.254
RT-II RT-I 192.168.0.0/24
.12 .1
Ser vido r .254
DHCP FW-GI
Redes ser viços .252 Serviço VPLS Redes ser viços
wireless UOs VRF Gestão wireless .251
wireless UOs
.253
192.168.0.0/24 .3 Controlado ra
FW-GIII wireless I
RT-III RT-IV
Redes gestão Redes gestão
wireless UOs wireless UOs
Polo 3 Polo 4
Tendo como referência a Figura 30, fica percetível os principais equipamentos que
decompõem a rede de gestão wireless da U. Porto. Todos os APs pertencentes às UOs
necessitam de endereçamento IP, sendo este atribuído dinamicamente por um servidor DHCP
[60]. O processo de autenticação para atribuição de endereços IP, por parte do servidor DHCP,
é então efetuado com a validação do endereço MAC de um AP em particular. As controladoras
wireless são responsáveis pela descoberta dos APs, bem como a respetiva configuração dos
mesmos, nomeadamente no concerne à difusão dos diferentes SSIDs (Service Set Identifier)
das redes de serviços wireless.
63
do servidor DHCP é conhecido pelo router RT-I, estando este configurado na própria interface
de rede de onde o pedido DHCP é originado (helper address).
Como o servidor DHCP (192.168.0.12) não está na mesma rede de gestão wireless da
Reitoria, são utilizados mecanismos de DHCP relay na interface de onde o pedido DHCP é
proveniente, permitindo assim todos os pedidos DHCP transitarem entre as duas redes. O
router RT-I (agente relay) encaminha então o pedido DHCP para a interface da rede
(192.168.0.1). Esta interface está associada ao serviço VPLS existente viabilizando que o
domínio broadcast seja estendido até ao router do Pólo 3 (RT-III).
O router RT-III como contém uma interface de layer 3 (192.168.0.3) na mesma rede de
gestão wireless do servidor DHCP, encaminha o pedido DHCP de descoberta até ao servidor
DHCP. Em resposta a este pedido, o servidor DHCP envia uma mensagem de oferta (offer),
com as configurações de rede. Segundo os mecanismos VPLS, anteriormente abordados
(secção 3.2.2), a mensagem de oferta é então recebida pelo AP. Por sua vez, o AP responde ao
servidor DHCP com uma mensagem (request), a solicitar o IP anteriormente disponibilizado.
Por fim o servidor DHCP envia uma mensagem de confirmação (acknowledge) ao AP, com a
reserva do endereço IP a ser utilizado, bem como o tempo pelo qual este é válido.
Para que o AP (modo Lightweight) consiga descobrir as controladoras WLC (Wireless LAN
Controller) e assim carregar a configuração pela primeira vez, envia pedidos (em unicast)
através do algoritmo de descoberta (Lightweight Access Point Protocol, LWAPP), criando uma
lista interna das controladoras detetadas na rede [61]. Esta descoberta é realizada na camada de
acesso à rede com recurso aos endereços MAC das interfaces de gestão das controladoras. Por
norma a controladora wireless (I) é sempre aquela que está especificada como primária nos
ficheiros do servidor DHCP (option 43) [62].
64
parametrizações dos APs são realizadas nas controladoras wireless. As interfaces de serviço
são configuradas diretamente nas controladoras, garantindo assim que os APs difundam os
serviços de conectividade.
65
3.4.1 Infraestrutura de gestão FCAPS
Toda a infraestrutura física que apoia a gestão e monitorização da rede de dados da U. Porto
compreende os diferentes paradigmas e contextos computacionais preconizados pelo FCAPS
(Tabela 9). Não só pelo princípio da resiliência, mas também pelo cumprimento de uma gestão
autónoma dos sistemas virtualizados, os servidores centrais acumulam as principais áreas do
modelo FCAPS.
Sistema Localização
Monitorização Aplicações
computacional física
Sistemas informáticos físicos
66
Rede de serviços
193 .13 6.5 6.19 2/2 6
Servidor FCAPS
Aplicações
RT-II FW-Uos
eth0
Nagios .220 Redes IP
.252 (públicas) FW-Núcleo e distribuição
BV1
RANCID RT-I,III,IV
VRF IPV4
RRDTool / Weathermap FW-Núcleo e
RT-II RT-III FW-Gestão distribuição
eth1
.220 Rede BE2 .10 Redes IP Servidores
Syslog-NG BE1 .10 .254
IP/MPLS (privadas)
.2
BV2
RT-UOs
VRF Gestão
Gestão Gestão RT-I,II,III e IV
SW-polo II
Polo II (datacenter) Equipamentos
172 .17 .20 .0/24 172 .18 .0.0/24 SW-CPEs
• Rancid • Syslog-NG
67
Ainda como sistema computacional físico dedicado, destaca-se o servidor Grafana. Este
sistema informático encontra-se na rede de gestão wireless, com a default-gateway configurada
na firewall de gestão.
Os restantes sistemas que auxiliam o apoio ao modelo FCAPS são virtualizados em duas
infraestruturas próprias:
• Primeiramente destaca-se o KVM (Kernel Virtual Machine) como uma estrutura física
que dá suporte a dois sistemas virtuais, os quais integram as plataformas Cisco Prime e
Portal de gestão de autenticação;
IV
KVM-I ID 300 KVM-III
ID 200
ID 100
BE1 .10 0 ID 50 BE3 .30 0
172 .16 .10 .1 I III 172 .16 .30 .1
Núcleo IP/MPLS
BE BE ID 200 BE BE
Gestão KVM-I 4.100 5.50 6.100 7.50
172 .16 .10 .0/24 4.200 6.200
4.300 6.300
Insi de failover Insi de failover
II
Gi0 /2 Gi0 /7 Gi0 /2 Gi0 /7
BE2 .20 0
Gestão KVM-II .254
172 .16 .20 .0/24 .254
.254
KVM-II Gestão II
Gestão I
(standby)
Gestão KVM-III
172 .16 .30 .0/24
A título ilustrativo, podemos observar a topologia das redes de gestão do KVM alusivas a
cada pólo (Figura 32). Embora geograficamente os servidores sejam distribuídos pelos
respetivos pólos (datacenters), sob o ponto de vista lógico, as suas redes de gestão são
transportadas no núcleo através dos respetivos serviços VPLS (ID) configurados e entregues
nas firewalls de gestão (consultar Anexo VII).
68
Atendendo à Figura 32, podemos analisar ainda, o processo de resiliência adotado. Deste
modo, todos os serviços (inclusive o serviço de failover) estão configurados e associados à
interface dos routers I e III (BE4 e BE5) que providenciam a interligação com as firewalls de
gestão (ativa e de standby).
Outro fator bastante importante é o facto dos sistemas virtualizados (Cisco Prime e Portal
de gestão de autenticação) poderem estar localizados em qualquer sistema físico do KVM, isto
é, a default gateway de rede de cada sistema é sempre instanciada nas firewalls no entanto,
abrange o mesmo princípio de transporte e configuração inerentes à tecnologia VPLS.
Gestão de Gestão
segurança wireless
Núcleo e
Prime
distribuição Gestão
Interligação Gestão
Firewalls Uos
Firewalls
UOs
Gestão
Equipamentos Gestão
Polo I
I
FCAPS
central
Gestão Núcleo
Polo II IP/MPLS
II IV
Legenda: UOs
Firewalls
Gestão
Routers Polo III
III
Servidores
Redes IPv4
69
No que concerne à monitorização de rede sem o recurso das redes de gestão, são realizados
processos de NAT por cada sistema na firewall (com exceção ao servidor FCAPS central),
recorrendo assim ao endereçamento público da rede de comunicação de dados IP (VRF IPV4).
Sistema Protocolos
Aplicações Agentes
gestor (operações de gestão)
70
Tabela 11 – Equipamentos de rede monitorizados pela aplicação Nagios
Cisco ASR-9010 3
Routers
Cisco ASR-9006 1
Cisco 2950 1
Cisco 2960 9
Cisco 3560 2
Switches Cisco 4500 1
Cisco 3600x ME 11
Cisco Nexus 5548 8
Cisco Nexus 9000 4
Firewalls Cisco ASA 55xx 12
Controladoras wireless Cisco 8510 / 2504 3
UPS (Uninterruptible Power Supply) APC / Riello 8
Sistemas infirmáticos de gestão FCAPS Linux 8
Servidores aplicacionais de serviços de
Dispsitivos de rede em geral rede, câmaras, réguas de energia, entre 524
outros
Total 595
A disponibilidade dos serviços nos sistemas informáticos é assegurada pelos agentes NRPE
configurados localmente, criando assim um túnel criptografado no formato SSL/TLS entre o
agente e o gestor (Nagios). O gestor recorre apenas ao script NRPE para recolher os dados dos
serviços que são monitorizados pelo agente (Tabela 12).
71
Atendendo à Tabela 13, tornam-se evidentes os principais serviços de rede que são
consolidados pelo Nagios sem qualquer tipo de intermediário (agente). Os nós de rede, tal como
os dispositivos que os auxiliam, retornam as métricas mediante os scripts definidos no gestor
(/usr/lib64/nagios/plugins). Diante dos inúmeros scripts parametrizados, aos requisitos
considerados mais críticos, são amplamente utilizados aqueles que garantem a disponibilidade
protocolar das áreas OSPF e do domínio BGP.
host-alive Disponibilidade
Routers
if-status Estado das interfaces
host-alive Disponibilidade
Switchs
check-cpu Retorna valores de CPU
host-alive Disponibilidade
check-cpu Estado do processador
Firewalls
failover-status Informação da firewall ativa e secundária
host-alive Disponibilidade
UPS if-status Estado das interfaces
temperature-status Retorna valores de temperatura
Como elemento centralizado no auxílio da gestão de rede sem fios, a plataforma Prime,
congrega os dados alarmísticos e estatísticos, monitorizando assim, as três controladoras e mil
cento e oito pontos de acesso wireless.
72
Tabela 14 – Descrição dos equipamentos wireless da U. Porto
Cisco 8510 2
Controladoras (WLC)
Cisco 2504 1
Cisco 1040 5
Cisco 1130 4
Cisco 1140 62
Cisco 1240 1
Cisco 1250 4
Cisco 1600I 550
Cisco 1700I 14
Pontos de acesso sem fios (APs)
Cisco 1830I 215
Cisco 2600E 2
Cisco 2600I 73
Cisco 2700I 89
Cisco 2800I 24
Cisco 3700I 50
Cisco 3800I 15
Total 1111
Os dados dos principais serviços críticos são retornados ao Prime pelas controladoras
wireless. Caso exista indisponibilidade por parte dos pontos de acesso sem fios (com base no
protocolo ICMP e/ou CAPWAP), são enviados alertas para dos administradores de rede. A
proficiência desta aplicação advém da extração dos diferentes valores estatísticos, estando estes
representados e sustentados na área funcional em maior défice na rede cablada da U. Porto.
Nesse sentido a componente de contabilização do modelo FCAPS enaltece a gestão operacional
que esta ferramenta dispõe, promovendo a granularidade de dados reproduzidos ao nível do
utilizador.
73
protocolos AAA subjacentes aos servidores RADIUS, fornecendo assim o controlo dos
utilizadores relativos à rede wireless.
74
Gestão de contas VPN e contas
Portal de wireless;
gestão de • Estruturação proprietária
Mapas de endereçamento IP;
autenticação
Controlo de registos dos utilizadores.
75
Capítulo 4
4.1 Introdução
77
4.2 Ambiente de testes
▪ Utilização do modelo de gestão FCAPS como base de estudo para mitigar lacunas,
implementando assim, possíveis melhorias na gestão operacional de rede;
78
Mediante a informação adquirida e apresentada na Tabela 17, podemos aferir que os valores
obtidos são genéricos, podendo sofrer alterações significativas mediante a dimensão dos nós
de rede a monitorizar, bem como o respetivo número de serviços.
Por sua vez, o Zenoss Core fornece apenas informação oficial dos requisitos
computacionais baseada na sua arquitetura modular segmentada (secção 2.5.5).
79
Deste modo, para possibilitar a instalação de todos os componentes num só sistema
informático, propõe uma solução com exigências ao nível de hardware um pouco superiores,
necessitando de 200GB para armazenamento de informação de gestão aplicacional (application
data layer) bem como torna-se fulcral a disponibilização de 50GB adicionais para o módulo
de dados de serviços internos de controlo central (Control Center Internal Services Data).
Adicionalmente, esta solução requer 24GB de memória RAM [65] .
A implementação das ferramentas de gestão de redes passou então, por instanciar quatro
máquinas virtuais na plataforma OpenStack, segundo os requisitos genéricos estabelecidos.
Evidencia-se o sistema OpenStack, sendo este utilizado pela U. Porto para promover
serviços na cloud aos seus utilizadores.
Para o processo de integração do ambiente de testes foi utilizada a rede de gestão de logs
da U. Porto. Esta rede possibilita a monitorização dos nós através de três principais camadas
de rede, nomeadamente:
80
▪ Redes de gestão IP/MPLS.
A rede de gestão de logs, tem acessos autorizados nas seis firewalls onde residem as redes
de dispositivos passíveis de monitorizar. Do ponto de vista da firewall de gestão, podemos
confirmar que a rede administrativa local (gestão física) e a rede administrativa externa (gestão
remota), providenciam configurações ao nível da camada de transporte (ACLs) e da camada
de rede (rotas estáticas) do modelo TCP/IP, de modo a alcançar qualquer rede presente na U.
Porto.
Routers instalados
nos POPs
Internet
Administrador
Gestão Remota Redes de Servidores
serviços aplicacionais
IP/MPLS
1
0
1 Redes de
Firewall serviços
Firewalls instaladas
Gestão IP
nos POPs
Redes de gestão
IP/MPLS
Administrador Switch CICA
Gestão Fisica (polo 2) Equipamentos CPE
instalados nas UOs
Servidores FCAPS
(Servidores existentes)
Cloud OpenStack
RANCID Nagios (Servidores virtuais)
81
Após validação das camadas de rede e transporte, foi confirmada a camada de ligação de
dados. Para que o domínio broadcast pertencente à rede de gestão de logs seja transportado até
aos equipamentos agregadores, CPEs, firewalls, entre outros, analisou-se o respetivo serviço
VPLS instanciado e configurado nos routers presentes nos POPs. Cada dispositivo de rede
interligado a um attachment circuit, contém então, a VLANs inerente à rede gestão de
equipamentos.
As restantes redes de gestão e de serviços seguem o mesmo conceito, sendo alcançáves por
qualquer endereço IP da rede de gestão de logs. Deste modo, os servidores do cenário de testes
conseguem ter comunicação com os diferentes elementos de rede (Figura 34). Ainda assim,
para que seja possível monitorizar os dispositivos de rede, foi imprescindível configurar o
acesso aos endereços IP de origem de cada servidor implementado (Prometheus, Zabbix e
Zenoss) nos nós de rede correspondentes, autorizando deste modo, a utilização do protocolo
SNMP e respetiva porta.
▪ Routers;
▪ Switches agregadores;
▪ Switches CPEs;
▪ Utilização de CPU;
82
▪ Utilização de memória RAM;
Por outro lado, na classe dos sistemas computacionais foram destacados alguns critérios
que permitem verificar a utilização do hardware e do software dos servidores aplicacionais.
Entre estes parâmetros enumeram-se os seguintes:
▪ Utilização de CPU;
▪ Utilização de discos/partições;
83
O Cisco Prime garante a monitorização da rede sem fios com recurso à gestão das
controladoras wireless. Neste ponto, o Cisco Prime consegue satisfazer a sua tarefa
eficientemente, possibilitando assim, a gestão de configuração e alarmística dos APs, bem
como demonstra a informação de desempenho através de gráficos superintuitivos.
Revela-se uma ferramenta bastante empírica, de fácil utilização e que não carece de entrar
no modelo comparativo subsequente. No entanto, é de realçar que a base de dados desta
plataforma, não congrega o modelo de alta disponibilidade, sendo incapaz de ser tolerante a
falhas devido à falta de redundância.
Nagios
84
Um dos principais critérios de uma rede da dimensão da U. Porto é a alta disponibilidade
dos serviços, assim sendo, o Nagios cumpre este princípio com a redundância de sistemas,
recorrendo-se a um script manual que é utilizado por parte dos administradores de rede para
sincronizar as configurações, quando estas sofrem alterações. Isto é um recurso demasiado
estático que pode acarretar inconsistências na configuração, sendo uma ação passível de erro
humano.
Analisando o seu perfil alarmístico, constatou-se que por vezes as mensagens de email são
pouco imediatas, apresentando ainda a deficiência de possibilitar a definição de diferentes
níveis de criticidade. Ou seja, não é possível tratar os alertas dos equipamentos tendo em conta
os diferentes impactos que estes representam para a rede.
Prometheus
A base de dados demostrou-se muito resiliente, sem qualquer tipo de erro ou falha aparente,
agregando a informação num formato compacto. No entanto, ao nível da gestão de falhas, exige
a agregação de um módulo de alertas que dispõe de poucas aplicabilidades, apresentando
problemas semelhantes aos enumerados na secção dedicada à análise do Nagios.
Em relação aos comandos utilizados para extrair a informação dos equipamentos, estes
revelaram-se complexos, exigindo um elevado processo de autoaprendizagem. Neste ponto,
salienta-se como uma aplicação inadequável no que respeita à gestão operacional por parte da
equipa de operação, obrigando à existência de sessões de formação exaustivas, para que seja
possível tirar partido das reais capacidades e funcionalidades desta plataforma.
85
Paralelamente a arquitetura modelar do Prometheus impõe um forte conhecimento ao nível
de programação. Ao mesmo tempo, quando devidamente parametrizado poderá fazer mais
sentido para os novos ambientes de rede definidos por software (Software Defined Network,
SDN), por este não depender da camada de rede para realizar a autodescoberta de serviços.
Zenoss Core
Zabbix
A celeridade com que múltiplos elementos de rede são monitorizados é a sua grande
86
vantagem. Isto deve-se ao conceito de template que o Zabbix preconiza, ao contrário da
plataforma Nagios. Além disso, a automatização de processos, com recurso ao mecanismo de
autodescoberta, revelou-se um ponto de destaque, tanto na perceção dos dispositivos de rede,
quanto aos serviços a monitorizar.
RRDTool
TIG Stack
Embora o RRDTool seja baseado em configuração manual, o TIG Stack acaba por também
o ser. A sua composição alia três ferramentas e a gestão operacional acaba por ganhar alguma
complexidade, nomeadamente no processo de adicionar um equipamento e criar gráficos para
87
visualizar a sua informação de desempenho. Quando é necessário remover um equipamento, a
tarefa exige conhecimentos muito específicos de InfluxDB, a fim de se remover as respetivas
entradas na base de dados.
O TIG Stack acaba por ter um funcionamento particular que obriga a operações bastante
estáticas e repetitivas como acontece com o Nagios. Maioritariamente as suas configurações
ocorrem no Telegraf, sendo que estas são passíveis de erro humano, pois as suas
parametrizações só podem ser realizadas por linha de comandos.
No que diz respeito às tarefas de troubleshooting do TIG Stack, foi adicionada mais uma
aplicação, denominada Chronograf, essencial para se executar a manutenção da base de dados
e correlacionar possíveis causas de erro. Isto por um lado auxilia na manutenção aplicacional,
através de ambiente gráfico, promovendo a resolução de possíveis complicações. Ainda assim,
obriga à gestão de mais uma aplicação por parte da equipa de suporte, causando maior entropia
no processo da gestão estatística.
Em relação ao RRDTool, o TIG Stack ganha mais relevo pela quantidade de informação
que é armazenada na base de dados (InfluxDB). No entanto, o Zabbix disponibiliza, de igual
modo, a informação de desempenho, e integra expressões regulares através da sua API, facto
que providencia a automatização e visualização dos dados com o Grafana. A adoção do TIG
Stack foi uma tentativa de tentar colmatar a falta de informação de desempenho par parte do
Nagios e, neste sentido, o Zabbix consegue também solucionar esta questão.
A utilização do Zabbix aliada com o Grafana poderia ser uma perspetiva mais interessante
concentrando as tarefas de gestão operacional da rede em apenas duas plataformas, integrando,
deste modo, a gestão de falhas e a gestão de desempenho.
RANCID e Oxidized
88
determinando cada linha de código alterada mediante a diferença detetada na configuração de
um dado equipamento monitorizado.
Syslog-NG e Graylog
O Graylog foi então inicialmente configurado em ambiente de testes pela unidade SRC, à
qual o autor do presente projeto pertence, permitindo assim a compreensão do funcionamento
desta solução e as mais-valias inerentes a esta plataforma. Destaca-se como fator diferenciador
do Syslog-NG, a simplicidade que o Graylog concerne, não só na recolha de mensagens de log,
mas também na possibilidade de interação com a ferramenta, visto ser possível efetuar todas
as configurações, de forma centralizada e através de interface gráfica.
89
4.4 Análise comparativa e resultados
Na secção 4.3 foi realizada uma apresentação que integrou um conjunto de critérios
baseados no estudo e implementação das ferramentas propostas para a gestão de redes e
sistemas.
Gestão de falhas
Documentação 5 3 3 5
Escalabilidade 4 3 3 4
Autodescoberta de dispositivos 1 3 5 5
Gestão operacional 2 1 4 4
Total 15 16 24 27
90
O Prometheus contém uma arquitetura modelar, no entanto a documentação é apenas
disponibilizada no site oficial, e não é orientado à descoberta de dispositivos, embora possa
fazê-lo.
Gestão de desempenho
Documentação 3 3 5 2 4
Autodescoberta de serviços 5 4 4 1 1
Interface gráfica 2 4 4 1 4
Gestão operacional 2 4 4 2 2
Total 14 19 21 7 14
Como se pode observar na Tabela 19, o Zabbix volta a ter relevo em relação às restantes
aplicações. De facto, o TIG Stack carece dos mesmos problemas ao nível operacional que o
Nagios e do RRDTool, nomeadamente, a edição repetitiva de ficheiros. Em paralelo, a ideia
passa por diminuir o número de plataformas, a fim de otimizar e centralizar as tarefas
sistemáticas.
91
O Zabbix mostra-se novamente superior face às restantes aplicações, permitindo assim,
utilizar a mesma plataforma para a gestão alarmística e a gestão estatística, bem como, esta
conjugação alia a correlação entre os dados obtidos com o objetivo de mitigar possíveis causas
na eventual falha ou mau funcionamento de equipamentos.
Gestão de configuração
Configuração flexível 3 4
Interface gráfica 1 4
Gestão operacional 2 4
Total 8 16
Gestão de segurança
Interface gráfica 1 4
Gestão operacional 2 4
Total 6 17
92
De modo a promover uma gestão de segurança eficiente foram comparadas as ferramentas
Syslog-NG e Graylog, as quais já se encontram implementadas na U. Porto.
93
Capítulo 5
5.1 Introdução
95
Monitorization cluster
Monitorization
Server 1
Proxy 2 Database 1
Database 2
Database 3
Num ponto de vista global, a arquitetura aplicacional sugerida deve compreender os três
elementos que se seguem, pela seguinte ordem de implementação:
1. Base de dados;
2. proxys;
3. Servidores de monitorização.
96
A implementação da arquitetura de base de dados recorreu sempre ao método de
encaminhamento de dados via software HAproxy, de modo a criar um mecanismo de
distribuição de carga altamente resiliente e independente dos nós de armazenamento.
Componentes computacionais
Aplicações Versão
de armazenamento de dados
postgresql12-devel 12.1-2PGDG.rhel8
PostgreSQL
citus_12 9.0.1-1.rhel8
Base de dados
mariadb-server 10.4.10.el7
MySQL
Percona-XtraDB-cluster-57 5.7.27-31.39.1.el7
97
O facto de o MariaDB obrigar ao uso de um proxy para a construção de um cluster de base
de dados, sem recorrer a modelos “pagos” (MaxScale), dificultou todo o troubleshooting
realizado. O HAproxy, não recorre à camada aplicacional do modelo TCP/IP para analisar o
cabeçalho, comutando assim os pacotes IP recebidos com base na inspeção da camada de
transporte e de rede. Como tal, tornou-se ineficaz detetar o problema desta forma.
Componentes
Aplicações instaladas Versões das aplicações
Computacionais
haproxy 2.0.7-1.el7
proxysql2 2.0.7-1.2.el7
proxys
zabbix-proxy-sqlite3 4.4.3-1.el7
pacemaker 1.1.20-5.el7_7.2
zabbix-server-mysql 4.4.3-1.el7
pacemaker 1.1.20-5.el7_7.2
98
A solução passou então por diversas fases de configuração e testes que serão descritas ao
longo deste relatório técnico. Enumeram-se na Tabela 23 as aplicações que efetivamente se
mostraram eficientes no domínio das componentes computacionais, as quais foram testadas em
ambiente de produção na plataforma KVM (Kernel Virtual Machine) da U. Porto.
Com diferentes testes para forçar falhas propositadas, compreendeu-se que o Keepalive não
consegue garantir a redundância com base nos processos da máquina, ou seja, se um dos
processos parar, a sistema continua a responder ao endereço VIP. Outro aspeto muito
importante são as prioridades dos processos aplicacionais, deste modo, o servidor Zabbix
precisa de iniciar ou terminar os seus processos por uma dada ordem, para que a máquina não
fique indisponível. O Pacemaker recorre então às configurações do Corosync para poder fazer
essa gestão dos processos, por sua vez o Keepalive valida os estados de conetividade da rede
com recurso ao protocolo VRRP (Virtual Router Redundancy Protocol). O entendimento do
funcionamento destas duas aplicações foi preponderante para definir uma uniformização no
modelo de resiliência, recorrendo ao Pacemaker para possibilitar mecanismos de redundância
entre os proxys e os servidores de monitorização Zabbix.
99
5.4 Requisitos funcionais
Zabbix cluster
proxy cluster
Relativamente aos nós de armazenamento, foi calculado um espaço total em disco, de modo
a garantir os dados recolhidos até um ano [71]. Este valor perfaz um total de 300GB por cada
nó de computação, lembrando que todos os nós que decompõe o cluster guardam a mesma
informação (modelo multi-mestre) e, portanto, o cluster tem uma capacidade máxima igual ao
espaço de armazenamento de um nó.
100
Os requisitos de hardware, especialmente ao nível da unidade central de processamento
(CPU), e a memória de acesso aleatório (RAM) dos sistemas de armazenamento, foram
determinados e ajustados, tendo em conta os valores mínimos aconselhados pela documentação
oficial do Percona-XtraDB-cluster [72].
Por outra perspetiva, os proxys não requerem grande poder computacional, visto serem
apenas intermediários para o encaminhamento de dados, entre o cluster de Zabbix, o cluster de
base de dados e os dispositivos monitorizados.
101
Tabela 25 - Endereçamento IPv4 dos sistemas e componentes de monitorização
Componentes e sistemas
Endereçamento IPv4 Endereço IPv4 virtual (VIP)
computacionais
cluster de monitorização
Percona DB 1 10.200.100.127
Percona DB 2 10.200.100.128
Percona DB 3 10.200.100.129
proxy cluster
proxy 1 10.200.100.121
10.200.100.123/24
proxy 2 10.200.100.122
haproxy 3
Servidor Zabbix
Zabbix passivo
Pacemaker VIP
7 8 9
Cluster de base de dados
zabbix-proxy-
Percona XtraDB 1
sqlite3
Hosts
monitorizados
proxysql2
6 Percona XtraDB 2
4
haproxy 5
Percona XtraDB 3
Proxy ativo
102
A componente de monitorização recorre ao Pacemaker para responder a um endereço
virtual (VIP), bem como a componente de proxy, que utiliza a mesma metodologia,
respondendo de igual modo a um único endereço virtual.
• Após a receção dos diferentes fluxos de tráfego, no ponto 4 iremos analisar como a
informação respetiva aos nós de armazenamento é comutada no sistema de
encaminhamento. A aplicação HAproxy está à escuta de todo o tráfego que lhe chegue
com o endereço IP de destino 10.200.100.123 na porta 3306. Quando isto acontece,
103
redireciona o tráfego para a aplicação proxysql2 local e esta, por sua vez, encaminha
o tráfego para o nó (10.200.100.129) de armazenamento que estiver eleito como
primário. Neste processo o datagrama IP dá saída para o cluster de armazenamento
com o endereço IP de origem (10.200.100.121) do próprio servidor ativo e não com o
endereço IP virtual;
O estudo das tecnologias inerentes à solução para o armazenamento de dados por parte dos
servidores de monitorização baseados em Zabbix, originou a conceção de um cluster de base
de dados, que garantiu os princípios de alta disponibilidade preconizados pelo software Percona
baseado em MySQL.
O cluster será composto por três sistemas computacionais, de modo a viabilizar que um dos
nós de computação seja o servidor principal (master) para que sejam evitados possíveis
problemas de split-brain.
104
XtraDB cluster seja o mecanismo de gestão de base de dados (Database Management System,
DBMS) escolhido, deve ser salientado que o mesmo recorre (nativamente) à arquitetura do
Galera cluster para sincronizar a informação, de modo a que esta seja consistente entre os nós
de armazenamento que decompõe o cluster.
Proxy Cluster
ProxySQL 1 ProxySQL 2
active passive
Multi-master Replication
Galera (Group Replication Plugins, GRP)
105
Galera database node
Percona
DBMS
Wsrep hooks
O Galera cluster proporciona uma arquitetura de funcionamento bem estruturada que pode
ser integrada com diferentes DBMS, conforme ilustrado na Figura 38. O seu funcionamento é
bastante estruturado e conciso [75]:
▪ Módulo dlopen(): é uma função que auxilia a validação dos estados do nó e da gravação
dos dados pelo módulo Wsrep hooks;
106
Funcionamento da replicação de dados do cluster
UPDATE
Native
processing
COMMIT
replicate write-set
receive with global trx ID
Certification Certification
OK Fail OK Fail
Commit_cb apply_cb
OK Roolbac_cb Commit_cb
DEADLOCK Discard
Por sua vez, o diagrama da Figura 39 descreve os mecanismos de replicação de dados entre
dois nós. O mesmo esquema de funcionamento pode ser aplicado, independentemente do
número de nós que decompõe um dado cluster.
A alteração dos dados (write-set) passa por uma verificação de certificação determinística.
Este processo é feito localmente em cada nó associado ao cluster, incluindo o nó que origina a
réplica de modificação da sua informação. Deste modo a componente de certificação é a
entidade responsável por determinar se um nó de armazenamento pode ou não guardar os
dados.
107
Modos de proteção dos dados
O PXC permite utilizar funcionalidades SST (State Snapshot Transfer) para recuperar a
informação armazenada em caso de falha de um ou mais nós que constituem um cluster (Anexo
XI).
• mysqldump: este método lógico é o mais lento na transferência de dados e não garante
a disponibilidade do nó que transfere os dados (read-lock). No entanto, é o único
mecanismo que pode ser utilizado sem inicializar o nó que perde o sincronismo das
réplicas;
108
• xtrabackup: foi o modelo adotado, porque dos mecanismos apresentados anteriormente,
este é o único que permite a disponibilidade do nó de transferência para possíveis
leituras (read-only). Cabe salientar que este mecanismo ocorre ao nível físico, como o
rsync, e por isso obriga à iniciação do serviço myqld do nó que está com problemas.
A replicação em modo multi-master (GRP) deteta uma inconsistência, sendo que o terceiro
nó (recetor) deixa de fazer parte do cluster. Isto origina que o serviço mysqld pare no nó onde
é detetada a indisponibilidade. Com a inicialização manual do processo mysqld no sistema
recetor, o primeiro nó (emissor) que originou a sincronização do cluster (bootstrap node),
recorre ao mecanismo Xtrabackup (v2.4), para transferir a sua configuração. Concretamente,
este procedimento é composto por duas etapas em simultâneo:
• Na primeira etapa com base na sequência de log (Log Sequence Number, LSN) é
iniciado um processo de cópia e transmissão de arquivos, podendo este levar algum
tempo, visto que os dados podem estar a ser alterados nesse momento, dependendo
também da análise da segunda etapa auxiliar;
109
5.6.1 Encaminhamento do fluxo de dados de armazenamento
Inicialmente, a ferramenta HAproxy (ver Anexo XIV), foi utilizada para o gestor de base
de dados MariaDB. Era uma das possibilidades mais fiável para encaminhar dados para os nós
de armazenamento, em arquiteturas open-source. Contudo, e com as limitações descobertas na
implementação do MariaDB (consultar secção 5.3), elegeu-se o modelo baseado em Percona
XtraDB cluster, o qual, define o procedimento de encaminhamento com auxílio do software
proxySQL (ver Anexo XV).
Embora o proxySQL permita fazer o encaminhamento dos dados recebidos pelo Zabbix de
forma “direta”, manteve-se o HAproxy para reencaminhar esses dados entre o Zabbix e o
proxySQL. Na verdade, a grande vantagem prende-se pela visualização web, onde se verifica
rapidamente os servidores que estão ativos e a informação do número de ligações MySQL,
entre outras métricas.
Ainda assim, por uma questão de simplicidade de configuração, o modelo final desta
implementação, poderá levar a descontinuar a utilização do HAproxy, sendo que seria menos
uma aplicação a gerir, bem como, diminuiria as latências e possíveis pontos críticos de falha.
110
Servidores de monitorização
Proxy ativo
Pacemaker VIP
IP 10.200.100.123
HAProxy
10.200.100.123:3306
ProxySQL
10.200.100.121:6033
10.200.100.127:3306
Interface eth0
IP 10.200.100.121
111
• Quando o tráfego é analisado pelo proxySQL, este faz também uma operação de
redireccionamento semelhante ao HAproxy. Deste modo, todo o tráfego que tiver como
destino o endereço IP 10.200.100.121 na porta 6033 (porta nativa de redireccionamento
de tráfego MySQL do software PorxySQL), será trocado pela segunda vez o endereço
IP de destino/porta, de forma a alcançar o nó de armazenamento atribuído (consultar
Figura 42).
Database cluster
Proxy Cluster Hotsgroup ID:
Ativo PXC DB 1
1, 11, 12
ProxySQL 1
10
wsrep replication
Haproxy PXC DB 2
(API Galera Cluster)
Passivo 11, 12
ProxySQL 2
PXC DB 3
O nó de ativo é considerado aquele que possibilita a replicação dos dados (ID 1). Por sua
vez, apenas um nó poderá realizar o processo de escrita (ID 10). Apenas dois nós sãoi eleitos
para efeitos de consulta dos dados (ID 11). O mecanismo de backup writer (ID 12), garante a
resiliência dos nós de escrita, caso o nó ativo atinja o número máximo de ligações, ou por
indisponibilidade do sistema. Em caso de falha de um ou mais nós de armazenamento, existe
um identificador (ID 13) reservado (consultar Tabela 26).
112
Tabela 26 - Identificadores de consulta e alteração de dados
active 1 PXC DB 2
writer 10 PXC DB 2
PXC DB 1
reader 11 3306
PXC DB 3
PXC DB 1
Backup writer 12
PXC DB 3
offline 13
A solução adotada foi desenhada para cumprir com os mecanismos de alta disponibilidade.
Nativamente, o Percona XtraDB cluster utiliza a tecnologia protocolar do Galera cluster para
proteger a consistência dos dados entre os nós de armazenamento, bem como garantir a
recuperação da informação em caso de falha, com o recurso às metodologias SST (ver secção
5.6.1).
No que concerne ao modo de encaminhamento dos dados, o cluster de proxys foi concebido
de modo a acautelar um servidor redundante, protegendo esta componente em caso de falha.
Para isso, foram estudadas e implementadas duas ferramentas, nomeadamente, o Keepalive e
o Pacemacker.
113
Primeiramente, deve ser analisado dentro da base de dados MySQL, se um dos nós de
armazenamento, consegue identificar os membros associados ao cluster (ver Figura 43).
mysql@perconadb3> CREATE TABLE exemplo (node_id INT PRIMARY KEY, node_name VARCHAR(30));
Query OK, 0 rows affected (0.05 sec
114
[root@perconadb1~]# vi/var/lib/mysql/grastate.dat
Em casos mais extremos em que existe um erro replicado para todos os nós, o recomendado
é parar todos os serviços mysql. Depois desse procedimento, deve-se compreender qual foi o
último nó a ter problemas. Identificado o nó, deve-se então “forçar” manualmente a sua
inicialização através do ficheiro de bootstrap. Com esta metodologia, o nó irá conseguir
proceder à última transação efetiva, sendo que na maior parte das vezes o erro é corrigido.
Inerentemente, o campo safe_to_bootstrap vem com o valor “0” e deve ser alterado para o
valor “1” conforme a configuração representada na Figura 44
Habitualmente, este tipo de erros de replicação é proveniente do servidor (cliente) que gera
dados incompatíveis para armazenamento, sendo estes detetados pelo mecanismo de
retrocompatibilidade (strict-mode enforcing). É recomendado analisar sempre as duas
entidades da arquitetura, concretamente o servidor de monitorização Zabbix e os nós de
armazenamento do PXC.
Cluster de encaminhamento
Os proxys contêm um papel preponderante em todo o funcionamento da solução (ver
topologia na Figura 36). Mediante esse facto, no primeiro cenário de estudo foi implementada
a ferramenta Keepalived (ver Anexo XVII) para conseguir garantir a alta disponibilidade
(High-availability) através de dois sistemas computacionais. Após alguns testes da aplicação
em questão, compreendeu-se que era necessário um controlo ao nível de funcionamento do
serviço (processos em execução), e que não fosse analisada a disponibilidade dos sistemas
baseada apenas na rede (camada 3 do modelo TCP/IP).
Através das limitações anteriormente citadas, no segundo caso de estudo, foi configurada a
aplicação Pacemaker, a qual, colmatou a restrição do Keepalived. Nesta secção serão retratadas
as configurações realizadas nas duas ferramentas implementadas, sendo dado o maior relevo à
aplicação eleita (Pacemacker) visto ter ficado em produção (ver Anexo XVIII).
115
Funcionamento genérico do Keepalived
Dada a necessidade de garantir o princípio da resiliência dos dois sistemas informáticos que
integram a aplicação HAproxy, procedeu-se à inclusão do software Keepalived numa fase
inicial.
Proxy Cluster
Master (priority 101) Backup (priority 100)
VRRP VRRP
id_1 id_1
HApoxy 1 Virtual
VIP IP HAproxy 2
eth0 eth0
Keepalived
eth0: eth0:
IP 10.200.100.121 VIP 10.200.100.123 IP 10.200.100.122
Conforme ilustrado na Figura 45, a negociação do processo de eleição entre dois endereços
associados às interfaces físicas de cada servidor proxy, é efetuada com recurso a um terceiro
endereço IP, nomenclado de endereço VIP (virtual_ipaddress), o qual é definido no
ficheiro de configurações do Keepalived (keepalived.conf).
116
Ainda no ficheiro de configurações do Keepalived é determinado o critério de prioridade
(priority) para eleger a máquina que responde ao endereço VIP. O sistema de proxy que tiver
atribuído o valor numérico mais alto neste parâmetro é considerado ativo (master). Por sua vez
o servidor que tiver configurado o valor numérico mais baixo passa a estado inativo (backup).
eth0: eth0:
IP 10.200.100.121 VIP 10.200.100.123 IP 10.200.100.122
117
A forma como o Pacemaker controla os processos, provém da infraestrutura de baixo nível
da aplicação que pode recorrer a diferentes sistemas de comunicação em grupo [78]:
• Heartbeat.
Conforme foi anteriormente referido, o Zabbix recorre a um modelo de base de dados, onde
são armazenadas as informações respetivas à monitorização dos sistemas informáticos. Para
encaminhamento desta informação, foram previamente configurados dois servidores proxy.
Os proxys Zabbix podem ainda ser distribuídos por diferentes redes em sistemas
informáticos dedicados com baixos recursos computacionais, consoante a dimensão da rede e
do aumento dos seus sistemas integrantes.
118
5.7.1 Encaminhamento do fluxo de dados de monitorização
Dentro desse paradigma, existem dois possíveis cenários, os quais são preconizados pela
comunidade Zabbix SIA. Sob o primeiro ponto de vista, a base de dados do Zabbix-proxy pode
ser remota ou local ao próprio servidor.
writers
Database cluster
writers
zabbix-proxy-db
119
Ambos os cenários apresentados na Figura 47 foram testados durante o desenvolvimento
da solução, concluindo que a utilização de uma base de dados remota para o Zabbix-proxy, não
é efetiva. Foi criada uma base de dados com recurso ao script de zabbix-proxy-mysql,
constatando-se a enorme latência na adição de um host e do serviço SNMP associado, bem
como, os checks aos serviços monitorizados eram extremamente morosos a serem
despoletados, isto porque a performance do Zabbix-proxy era diminuta.
Compreendeu-se que a partilha de uma base de dados comum pode originar inconsistências,
pois um dado Zabbix-proxy deixa de ter conhecimento das alterações realizadas por outro
sistema computacional com a mesma função.
120
Proxy Cluster Zabbix Cluster
Config change
Zabbix-Proxys Request
mode: active
Data sent
O modo ativo permite que o Zabbix-proxy seja totalmente independente do servidor Zabbix,
isto é, a recolha dos dados de monitorização é realizada pela Zabbix-proxy. O grande proveito
deste método é poder distribuir a carga computacional, pois o servidor Zabbix apenas recebe a
alteração das configurações (Data Sent) que é enviada pelo Zabbix-proxy.
Por sua vez, o modo passivo aufere um comportamento que não melhora o desempenho do
servidor Zabbix. Concretamente o servidor Zabbix envia todas as alterações de configurações
ao Zabbix-proxy (Configuration change sent), sendo que neste tipo de encaminhamento o
Zabbix-proxy requer menos especificações ao nível de hardware. A grande desvantagem recai
na escalabilidade, visto que quantos mais itens (items request) forem adicionados a um ou mais
hosts, maior é a latência entre a origem do sistema monitorizado e o servidor Zabbix.
A solução em redes de grande dimensão, como é o caso da rede da U. Porto, passou por
configurar o modo ativo do Zabbix-proxy nos dois sistemas do cluster, de forma a conseguir
monitorizar um host sem recorrer a pedidos de monitorização do servidor Zabbix principal.
O modo ativo permite parametrizar diferentes variáveis que determinam o tempo que a
informação é guardada na base de dados local em caso de falha do cluster de servidores Zabbix,
bem como, a periodicidade com que a alteração dos dados é enviada, entre muitos outros. Estes
e outros critérios associados à performance do Zabbix-proxy são apresentados na secção 5.7.3.
121
Servidores Zabbix
Para formar a componente de cluster Zabbix (Figura 49), foi integrada a ferramenta
Pacemaker, a qual permitiu adicionar os dois serviços aplicacionais instalados em cada servidor
Zabbix (ver Anexo XX).
Servidores Zabbix-proxy
À semelhança das configurações realizadas para a parametrização do Pacemaker na secção
5.6.2, foi apenas agregado o processo zabbix_proxy aos dois sistemas computacionais que
decompõem o cluster de proxys (ver Anexo XXI - secção 2).
eth0: eth0:
IP 10.200.100.121 VIP 10.200.100.123 IP 10.200.100.122
Neste tipo de topologia implementada, fica percetível o entendimento teórico dos modos
de funcionamento escolhidos, tendo como auxílio as ilustrações (Figura 49 e Figura 50).
122
O modo de operação dos Zabbix-proxy, neste caso, só poderia ser definido com ativo. Desta
forma os dois servidores Zabbix-proxy vão validar primeiramente as configurações ao cluster
Zabbix. Na falha de um dos sistemas Zabbix-proxy, a sincronização é sempre bem executada.
Por outro lado, em modo passivo, o servidor Zabbix solicita as configurações ao Zabbix-
proxy, e este pode estar com as configurações diferentes gerando inconsistências na base de
dados.
Para otimizar um sistema computacional existem inúmeras questões que devem ser
analisadas. No entanto, o sistema de monitorização Zabbix tem especificações globais que
podem ser ajustadas à medida que o número de equipamentos e respetivos serviços que
pretendemos monitorizar aumenta.
Depois de efetuados testes aos servidores Zabbix, compreendeu-se que os valores por
omissão definidos no ficheiro de configuração (zabbix_server.conf), não são suficientes
para suportar o normal funcionamento do sistema.
123
À data da elaboração deste relatório, o sistema de monitorização está a suportar vinte e nove
mil trezentos e quarenta e seis items, oitenta e um hosts, cento e cinquenta e um templates e
onze mil trezentos e cinco triggers. Os valores originais foram parametrizados para suportar
pelo menos mil hosts e cem mil itens. Esses ajustes foram realizados tanto nos servidores
Zabbix, como nos servidores Zabbix-proxy, os quais serão apresentados nas secções seguintes.
Servidores Zabbix
Tabela 30 - Parâmetros para melhoria de desempenho do Zabbix
Memoria cache
Define o valor global da memória
CacheSize 128 Kilobytes - 8 Gigabytes cache utilizada pela aplicação
Zabbix
Valor que especifica o intervalo de
CacheUpdateFrequency 1-3600 segundos tempo de atualização da memória
cache
Descreve o tamanho da memória
cache respetiva ao
HistoryCacheSize 128 Kilobytes - 2 Gigabytes
armazenamento do histórico de
dados
Define o valor da memória cache
HistoryIndexCacheSize 128 Kilobytes - 2 Gigabytes respetiva à indexação de dados
do histórico
Valor que define a memória
compartilhada para informação de
TrendCacheSize 128 Kilobytes - 2 Gigabytes
armazenamento baseada em
tendências.
Define o valor total de memória
ValueCacheSize 0.128 Kilobytes - 64 Gigabytes cache relativa a dados do histórico
de um dado item
Processos internos
Referem-se ao número de
processos internos de pesquisa
StartPollers 0 – 1000 processos
dos diferentes tipos e modos de
monitorização do sistema
Número de processos
responsáveis pelos sistemas
StartPollersUnreachable 0 – 1000 processos
monitorizados que se encontram
indisponíveis
Processos para monitorização
StartTrappers 0 – 1000 processos
ativa com base em Trappers
Valor de ajuste para processos de
StartPingers 0 – 1000 processos
descoberta de hosts via ICMP
Número de processos para
StartHTTPPollers 0 – 1000 processos
monitorização Web
Define o número de processos
StartDBSyncer 1 – 100 processos que sincronizam a base de dados
do Zabbix
124
O ajuste de desempenho dos servidores Zabbix foi efetuado com base em dois grupos
genéricos de parâmetros (Tabela 30):
Servidores Zabbix-proxy
O modo de funcionamento adotado para o Zabbix-proxy irá determinar a performance que
o mesmo poderá ter. Sobre este ponto de vista, podemos constatar que o funcionamento em
modo passivo irá sofrer ajustes de desempenho no próprio servidor Zabbix, baseado nos
parâmetros apresentados na Tabela 30.
Por outro lado, o processo de comunicação entre o Zabbix-proxy e o servidor Zabbix pode
ser preponderante no que diz respeito à latência que o modo passivo poderá provocar. Nesse
contexto os parâmetros apresentados na Tabela 31 devem ser ajustados mediante a dimensão e
os requisitos do ambiente de monitorização, destacando-se que as configurações ao nível
passivo, são sempre realizadas no servidor Zabbix.
125
• A otimização do processo de comunicação entre o Zabbix-proxy e o servidor Zabbix;
126
Com recurso aos parâmetros da Tabela 31, respetivos ao modelo de funcionamento ativo,
foi definido que os dados provenientes da monitorização seriam guardados durante duas horas
na presença de uma possível falha de comunicação entre o Zabbix-proxy e o servidor Zabbix.
• SNMP • IPMI
127
servidor Zabbix, sem que este faça qualquer tipo de pedido.
Embora a instalação dos agentes (ver Anexo XXIII) nos servidores que contemplam a
solução atual não esteja em modo ativo, essa funcionalidade poderá de facto melhorar o
desempenho do servidor Zabbix.
Com a utilização dos agentes Zabbix em modo passivo o Zabbix-proxy ganha mais relevo
no que diz respeito às especificações de hardware. Por outro lado, consegue-se otimizar o
desempenho de toda a solução de forma centralizada.
A tradução dos OIDs pode então ser indexada a MIBs específicas que cada fabricante
disponibiliza para instalar nos servidores de monitorização.
128
No caso dos servidores Zabbix, foi necessário parametrizar e fazer o download das MIBs
proprietárias (Anexo XXIV). Isto não só incrementou uma interoperabilidade entre os OIDs
que o servidor passou a conseguir mapear, baseando-se única e exclusivamente na introdução
(em ambiente gráfico) do nome da MIB no campo “SNMP OID”, bem como, garantiu ainda uma
monitorização dinâmica dos serviços, cobrindo assim os cenários de modelos de equipamentos
distintos.
Templates genéricos
Equipamentos Marca/Modelo
(reajustados)
Cisco ASR-9010
Routers Template Net Cisco IOS SNMPv2 ASR9000
Cisco ASR-9006
Cisco 2950
Cisco 2960
Cisco 3560
Cisco 4500
Switches Cisco 3600x ME Template Net Cisco IOS SNMPv2
Cisco Nexus 5548
Cisco Nexus 2248 FEX
Cisco Nexus 2348 FEX
Cisco Nexus 9000
Firewalls Cisco ASA 55xx Template Cisco ASA Discovery
Controladoras wireless Cisco 8510 / 2504 Template Cisco WLC Discovery
Template UPS TRIPH-APC
UPS APC / Riello
Template UPS TRIPH-Riello
Cabe salientar, que a priorização dos checks aos serviços monitorizados foi configurada
com um valor inferior a dois minutos, a fim de diminuir ao máximo o tráfego de gestão da rede,
bem como para não subcarregar os equipamentos de pedidos ICMP (verificação de
disponibilidade), salvaguardando o desempenho geral da solução.
129
5.7.5 Descoberta automática de equipamentos e serviços
O estudo da rede de gestão passou por avaliar a topologia lógica, de modo a compreender
a melhor forma de integrar a solução.
Do ponto de vista teórico, a rede de acesso (Figura 22) pode ser fundamentada pelos
switches ME presentes em cada UO (faculdades, entre outros), bem como os switches de cada
datacenter presentes nos pólos 1, 2 e 3. Por outro lado, ao nível da topologia física (camada 1
do modelo OSI) os sistemas computacionais centrais encontram-se interligados a switches e/ou,
diretamente ligados aos routers ASR.
Protocolo de descoberta
Descrição da rede Locação Endereço IP de rede
(hosts)
Equipamentos de rede
172.17.10.0/24
Pólo 1
Redes de gestão de 172.17.11.0/24
datacenters Pólo 2 172.17.20.0/24
Rede de gestão de
equipamentos de núcleo 172.18.0.0/24
distribuição e acesso
Sistemas computacionais
Pólo 1 172.17.14.0/24
Pólo 3 172.17.34.0/24
Agente zabbix
Pólo 1 172.17. 8.0/24
Pólo 3 172.17.38.0/24
130
Com esta análise compreendeu-se ainda que o número de equipamentos a monitorizar é
elevado, o que revela uma importante mais-valia na adoção do modelo de descoberta de baixo
nível (Low-level Discovery, LLD).
Deste modo os endereços IP das redes de gestão (Tabela 33) foram analisados com recurso
ao sistema LLD do Zabbix, definindo como métodos de descoberta o protocolo SNMP e o
agente Zabbix (ver Anexo XXV).
Em relação aos serviços críticos de rede (items), o número é obviamente superior ao dos
equipamentos, originando de igual modo, a pertinência em automatizar a sua descoberta,
acautelando assim a componente de monitorização, tanto na vertente alarmística como na
vertente estatística.
• Numa fase inicial, é definida a macro chave de descoberta, que irá identificar todos os
items (serviços) descobertos (exemplo: descrição/nome das interfaces de rede).
131
ao que é pretendido monitorizar (exemplo: tráfego de entrada das interfaces de rede).
• Podem ser ainda definidos vários protótipos para além dos itens, como por exemplo,
triggers (notificações e alertas) e/ou gráficos (monitorização estatística) que poderão
ser criados dinamicamente mediante as informações das regras de descoberta
anteriormente definidas.
.254
ZPA-2
.3 .4
P1 P2
Rede gestão .3 PPZP-1 ZS-1
Polo III RT-III RT-IV
172 .16 .30 .0/24
Todos os dispositivos monitorizados fora da rede local ao Zabbix, foram adicionados aos
clusters de proxys (proxy Percona and Zabbix-proxy, PPZP), onde se encontram instalados os
softwares proxySQL, HAproxy e Zabbix-proxy.
Com a proposta para a implementação final (Figura 53), sugere-se que a rede de gestão seja
utilizada para o processo de monitorização alarmística e estatística, contemplando no mínimo
dois clusters de servidores Zabbix-proxy, completamente dissociados dos proxys Percona (PP)
melhorando as necessidades de segregação de tráfego, assim como, a segmentação hierárquica
da rede atual.
132
172 .16 .20 .0/24 172 .16 .10 .0/24
Rede gestão Rede gestão
Polo II .2 .1 Polo I
RT-II RT-I
PP-2 ZS-2 .2
P3 172 .20 .0.0/24 .1
ZPCD-1 ZPA-1
.254
ZPA-2 ZPCD-2
.3 .4
Propôs-se ainda, a criação de uma nova rede de gestão (Gestão LAN Zabbix), que aglomere
o ZPA (Zabbix-proxy Access), de modo a este sistema ser completamente dedicado à
monitorização de dispositivos das unidades organizacionais da U. Porto.
133
Ao nível da camada de acesso à rede, os sistemas informáticos que decompõem a solução,
foram virtualizados na infraestrutura do KVM. Este sistema é distribuído fisicamente pelos
datacenters do Pólo 1 e do Pólo 3, garantindo assim a arquitetura de monitorização proposta,
bem como todos os seus princípios de resiliência (Figura 53).
Ainda na camada de acesso à rede, enumera-se a ligação de dados, como uma das fases que
requer maior atenção no que diz respeito à topologia da rede da U. Porto. A tecnologia MPLS
foi requerida para transportar um novo serviço VPLS, sendo este instanciado através de um
VLAN ID atribuído nos equipamentos de núcleo, distribuição e acesso, entre os quais:
• Criação de uma nova interface de rede na firewall de gestão (nomenclada, gestão LAN
Zabbix e o VLAN ID atribuído) alusiva e totalmente dedicada ao cluster do ZPA;
• Definição de rotas nas firewalls das redes locais (Unidades Organizacionais), para que
estes equipamentos consigam encaminhar o tráfego com destino à nova rede.
• Definição de access-lists com o IP de origem dos dois endereços VIP pertencentes aos
clusters de Zabbix-proxy (ZPCD e ZPA), com o destino aos sistemas que era pretendido
monitorizar;
134
• Na access-list respetiva, deve ser definida a porta 10051 (TCP) para que seja
estabelecida a comunicação entre os servidores Zabbix e os cluster de Zabbix-proxy,
como também, deve ser permitido o tráfego na porta 10050 (TCP), de modo a garantir
a conectividade entre os clusters de Zabbix-proxy e os agentes Zabbix;
• Nos casos em que existiam túneis VPN site-to-site para interligar as firewalls de origem
e destino (por inexistência de interligações físicas dedicadas), foi realizado o uso dos
mesmos, acrescentando access-lists análogas aos túneis, bem como procedendo à
configuração de mecanismos de NAT zero ou NAT estático (versão 8.4 ou superior).
135
Capítulo 6
Conclusão
Para sustentar a base teórica que deu suporte à implementação da solução, foi efetuada uma
revisão da literatura, tendo como princípios orientadores o entendimento de arquiteturas
basilares (OSI e TCP/IP) que apoiam abordagens mais simples e pragmáticas dos modelos e
paradigmas da gestão de redes. Neste contexto, percebeu-se a importância do modelo de
comunicação SNMP, pois este continua a ser a melhor opção para alicerçar o processo de
monitorização dos equipamentos de rede, uma vez que a maioria dos sistemas em vigor não
dão suporte às estruturas de referência mais modernas, designadamente, à gestão de redes
baseada em web ou em políticas.
136
A identificação e caracterização das tarefas de gestão realizadas pela Unidade de Serviços
de Rede Centrais e Datacenters foi avaliada sob as diretivas propostas pelo modelo FCAPS. A
análise comparativa efetuada mitigou e avaliou as lacunas das ferramentas de gestão de redes
num dos ambientes virtualizados existentes (OpenStack), destacando a escolha da aplicação
Zabbix como a plataforma que melhor se adequa às necessidades de gestão de falhas e gestão
de desempenho. Por outro lado, para a plataforma de gestão de configurações recomenda-se a
aplicação Oxidized. Destaca-se ainda, o software Graylog como sendo aquele que cumpre
eficazmente os critérios estabelecidos para a gestão de contabilização e segurança.
Em suma, é possível afirmar que os objetivos deste projeto de mestrado foram alcançados,
na medida em que, foi possível desenvolver uma solução centralizada que cumpre com os
requisitos estipulados pela U. Porto. Em seguida, importa ainda dissecar os resultados obtidos
durante a fase de experimentação, conceção e finalização do sistema de gestão que apoia a
monitorização.
137
As derivantes da linguagem nativa MySQL, levaram à comparação de soluções open-
source. Pressupondo este facto, o sistema de gestão de base de dados MariaDB mostrou-se
menos capaz por não oferecer uma topologia de encaminhamento resiliente sem recorrer a
modelos pagos (MaxScale), adequando-se melhor a aplicação Percona que oferece uma
arquitetura de proxys (ProxySQL) gratuita, que encaminha os dados ao nível da camada
aplicacional.
138
adicionando os respetivos campos primários.
Em relação ao desempenho da solução, foi reajustado o motor de base dados InnoDB, tendo
em conta os valores atuais monitorizados pelo Zabbix, estando este a dar suporte a vinte e nove
mil trezentos e quarenta e seis itens, oitenta e um terminais, cento e cinquenta e um templates
e onze mil trezentos e cinco triggers.
Ainda sobre o conceito de performance, recai outro ponto de vista intrínseco à arquitetura
projetada para o sistema Zabbix. Posto isto, avaliou-se a ação comportamental dos sistemas de
Zabbix-proxys. No primeiro cenário definiu-se uma base de dados de armazenamento
(MySQL) comum aos dois sistemas computacionais. Rapidamente se entendeu a enorme
latência na consulta à informação dados, como também, surgiram múltiplos erros de
inconsistências, pois um dado Zabbix-proxy deixa de ter conhecimento das alterações
realizadas por outro sistema com a mesma função. De seguida, no segundo cenário recorreu-
se ao SQlite, configurando-se este localmente em cada Zabbix-proxy, resolvendo não só a
insistência dos dados armazenados, tal como ainda os atrasos às solicitações da informação de
gestão.
O tipo de operação do Zabbix-proxy escolhido deve atender aos dois modos de atividade
existentes (ativo e passivo), caracterizando-se a superioridade detetada para o modo de
funcionamento ativo, o qual se traduziu na distribuição da carga computacional do servidor
Zabbix.
139
6.3 Trabalho futuro
140
▪ Definir na aplicação Zabbix o conceito profiling em múltiplos ambientes, de forma a
segmentar o acesso pelos utilizadores de cada Unidade da U. Porto;
De igual modo, é também possível identificar um conjunto de tarefas que, a longo prazo,
poderão vir a ser desenvolvidas de modo a acrescentar valor, quer à rede de gestão da U. Porto,
quer à nova solução concretizada durante a elaboração deste projeto. Em detalhe apresentam-
se os seguintes pontos de ação:
141
▪ Explorar e mitigar as necessidades para atualizar a nova infraestrutura de
monitorização, tendo em conta os seguintes conceitos tecnológicos: container, dockers,
kubernetes e micro serviços;
142
Referências
[3] E. Monteiro and F. Boavida, “Engenharia de Redes Informáticas,” 10th ed. 2011.
[6] B. Cain, S. Deering, I. Kouvelas, B. Fenner, and A. Thyagarajan, “RFC 3376 Internet
Group Management Protocol, Version 3,” 2002.
[12] W. Stallings, SNMP, SNMPv2, SNMPv3 and RMON 1 and 2, Addison-We. 1998.
[13] J. . Davin, J. Case, M. Fedor;, and M. Schoffstall, “RFC 1028 ‘A Simple Gateway
Monitoring Protocol,’” 1987.
143
for SMIv2,’” p. 26, 1999.
[16] J. Case, M. Fedor, M. Schoffstall, and J. Davin, “RFC 1157, ‘A Simple Network
Management Protocol (SNMP),’” pp. 1–36, 1990.
[18] J. Case, R. Mundy, D. Partain, and B. Stewart, “RFC 3410 Introduction and
Applicability Statements for Internet Standard Management Framework,” 2002.
[20] K. McCloghrie and M. Rose, “RFC 1213, ‘Management Information Base for Network
Management of TCP/IP-based internets: MIB-II,’” pp. 1–70, 2011.
[26] P. Goyal, R. Mikkilineni, and M. Ganti, “FCAPS in the business services fabric
model,” in Proceedings of the Workshop on Enabling Technologies: Infrastructure for
Collaborative Enterprises, WETICE, 2009.
144
[29] I. Cisco, “Cisco SAFE Reference Guide,” no. 6387, 2009.
[32] The Cacti Group, “Cacti Docs.” [Online]. Available: https://docs.cacti.net/. [Accessed:
10-Sep-2019].
[37] Zabbix SIA, “2 Item types [Zabbix Documentation 4.2].” [Online]. Available:
https://www.zabbix.com/documentation/4.2/manual/config/items/itemtypes.
[Accessed: 11-Sep-2019].
[41] M. Badger, Zenoss Core 3.x Network and System Monitoring. Packt Publishing, 2011.
[44] One Identity LLC, “Syslog-NG Open Source Edition Datasheet,” 2018.
[45] One Identity LLC, The Syslog-NG Open Source Edition 3.8 Administrator Guide.
2018.
145
http://www.graylog.org/. [Accessed: 14-Sep-2019].
[53] Y. Rekhter, T. Li, and S. Hares, “RFC 4271: A Border Gateway Protocol 4 (BGP-4),”
2006.
[54] E. Rosen, A. Viswanathan, and R. Callon, “RFC 3031 Multiprotocol Label Switching
Architecture,” 2001.
[55] L. Andersson and E. Rosen, “RFC 4664 Framework for Layer 2 Virtual Private
Networks (L2VPNs),” 2006.
[56] S. Frankel and S. Krishnan, “RFC 6071 IP Security (IPsec) and Internet Key Exchange
(IKE) Document Roadmap,” 2011.
[57] P. Calhoun, S. Farrell, G. Gross, and D. Spence, “RFC 2904 AAA Authorization
Framework,” RFC 2904, pp. 1–35, 2000.
[58] J. Sermersheim, “RFC 4511 Lightweight Directory Access Protocol (LDAP): The
Protocol,” pp. 1–69, 2006.
[61] Cisco, “Troubleshoot a Lightweight Access Point Not Joining a Wireless LAN
Controller,” 2015. [Online]. Available:
https://www.cisco.com/c/en/us/support/docs/wireless/5500-series-wireless-
146
controllers/119286-lap-notjoin-wlc-tshoot.html. [Accessed: 11-Jul-2019].
[65] Zenoss Own IT, “Zenoos Community Edition (Core).” Release 6.2.0, 2018.
[68] Microsoft Company, “Citus Data | Citus Documentation v9.2,” 2020. [Online].
Available: http://docs.citusdata.com/en/v9.2/. [Accessed: 17-May-2020].
[69] Percona, “Percona | MySQL vs. MariaDB: Reality Check,” 2017. [Online]. Available:
https://www.percona.com/blog/2017/11/02/mysql-vs-mariadb-reality-check/.
[Accessed: 17-May-2020].
[70] Zabbix SIA and V. Sokurenko, “ZABBIX BUGS AND ISSUES (ZBX-16465),” 2019.
[Online]. Available: https://support.zabbix.com/browse/ZBX-16465. [Accessed: 17-
May-2020].
[71] Zabbix SIA, “‘2 Requirements [Database size],’” 2019. [Online]. Available:
https://www.zabbix.com/documentation/4.4/manual/installation/requirements.
[Accessed: 07-Dec-2019].
[72] Kenny Gryp, “Technical Presentations | ‘Choosing Hardware for MySQL [Percona
Live Washington DC’],” Percona, 2012. [Online]. Available:
https://www.percona.com/resources/technical-presentations/choosing-hardware-mysql-
147
percona-live-washington-dc-2012. [Accessed: 10-Nov-2019].
[74] Codership Ltd, “Galera Cluster | Database Replication,” 2014. [Online]. Available:
https://galeracluster.com/library/documentation/tech-desc-introduction.html.
[Accessed: 04-Aug-2019].
[79] Zabbix SIA, “Zabbix Share | Network Devices,” 2020. [Online]. Available:
https://share.zabbix.com/network_devices. [Accessed: 20-Apr-2020].
[80] Douglas R. Mauro and K. J. Schmidt, “Essential SNMP - Help for System and
Network Administrators,” 2nd ed., vol. 136, no. 1. O’Reilly, 2007.
[81] W. Stallings, “‘SNMP and SNMPv2: The Infrastructure for Network Management,’”
IEEE Communications Magazine, 1998.
[82] B. Wijnen, D. Harrington, and R. Presuhn, “RFC 3411 ‘An Architecture for
Describing Simple Network Management Protocol (SNMP) Management
Frameworks,’” pp. 1–64, 2002.
[84] M. Wasserman, “Concepts and Requirements for XML Network Configuration,” 2002.
148
[86] G. Booch, I. Jacobson, and J. Rumbaugh, “The Unified Modeling Language Reference
Manual,” in Summary for Policymakers, 1998.
[88] OMG, “The Common Object Request Broker: Architecture and Specification.”
[Online]. Available: https://www.omg.org. [Accessed: 29-Jan-2019].
[89] T. J. Mowbray and R. Zahavi, The Essential CORBA: Systems Integration Using
Distributed Objects. 1995.
[91] J. Strassner, Policy-Based Network Management: Solutions for the Next Generation
(The Morgan Kaufmann Series in Networking). 2003.
[92] J. Boyle, R. Cohen, S. Herzog, R. Rajan, and A. Sastry, “RFC 2748 The COPS
(Common Open Policy Service) Protocol,” 2000.
[93] A. Westerinen et al., “RFC 3198 Terminology for Policy-Based Management,” 2001.
[94] K. Chan et al., “RFC 3084 COPS Usage for Policy Provisioning (COPS-PR),” 2001.
149
Anexos
Para a versão 1 do protocolo SNMP existem quatro operações que fazem sentido serem
analisadas com maior detalhe [80]:
A operação Get-Request viabiliza que uma aplicação de gestão instalada num sistema NMS
(gestor) leia valores da MIB de um MD (agente). O agente que recebe a mensagem Get-Request
deve responder com uma mensagem Get-Response com o identificador pedido e com os valores
solicitados. No caso de a aplicação falhar, a mensagem Get-Response irá conter um código de
erro, de forma a identificar o tipo de erro ocorrido.
Caso exista a necessidade de ler vários objetos de uma só interação, ou quando não se
conhece a extensibilidade da base de dados (MIB) existente no agente, é necessário utilizar a
operação Get-Next-Request, o qual fornece o valor do objeto seguinte da MIB. Como resposta
a uma mensagem do tipo Get-Next-Request, é recebida uma mensagem Get-Response.
Quando é pretendido que um agente coloque um ou mais objetos na MIB com os valores
fornecidos, utiliza-se a operação Set-Request. Este é o tipo de operação de escrita, ao contrário
das operações do tipo Get, que são apenas de leitura. O agente sinaliza com sucesso ou
insucesso da operação através do envio de uma mensagem Get-Response ao gestor.
Um dispositivo gerido deve ter um agente conforme é ilustrado na Figura 54. Neste sistema
de gestão é utilizado os protocolos SNMP, UDP e IP. A partir do sistema de gestão de rede
(Network Managed System) são disponibilizados três tipos de operações: Get-Request, Get-
Next-Request e Set-Request. As três operações são confirmadas pelo agente (Network Managed
Device, NMD) na forma de uma notificação Get-Response que é devolvida ao sistema de gestão
de rede. A comunicação (pedidos e respostas) entre o sistema de gestão e o agente SNMP
decorre com recurso ao protocolo UDP na porta 161, e para a receção de traps na porta 162
[81].
151
Estação de gestão SNMP Agente SNMP
Recursos geridos
Aplicação de gestão
Objetos Aplicação de gestão
Get-Next-Request
Get-Next-Request
Get-Response
Get-Response
Get-Request
Get-Request
Set-Request
Set-Request
Trap
Trap
Gestor SNMP Mensagens Agente SNMP
SNMP
UDP UDP
IP IP
Rede
Por fim existe um campo de tamanho variável (SNMP PDU), que determina a unidade de
dados da mensagem (Protocol Data Unit, PDU).
152
VariableBindings
PDU
RequestID ErrorStatus Specific-Trap
Type Name 1 Name 2 ... Name N Value N
VariableBindings
PDU Agent- Generic- Specific
Enterprise Timestamp
Type Address Trap -Trap Name 1 Name 2 ... Name N Value N
A mensagem PDU enviada no cabeçalho SNMPv1 utiliza as operações do tipo Get e Set,
identificadas por um valor do tipo de PDU (entre 0 e 4). Por exemplo, o valor zero identifica
que o PDU pertence a um cabeçalho proveniente de uma operação Get-Request [16]. Para
controlar as respostas é utilizado o identificador Request-ID. Quando é realizado uma operação
Get-Response é utilizado o campo Error-Status para indicar à entidade que emitiu o comando,
o resultado, do seu pedido. Para auxiliar esta operação, o campo Error-Index funciona como
um apontador, de forma a identificar o objeto que gerou o erro. O campo Variable-Bindings
permite receber um conjunto de pares do tipo nome/valor, que identificam os objetos na MIB
dentro do PDU.
153
VariableBindings
PDU
RequestID ErrorStatus ErrorIndex
Type Name 1 Name 2 ... Name N Value N
VariableBindings
PDU
RequestID NonRepetears MaxRepetitions
Type Name 1 Name 2 ... Name N Value N
O SNMPv3 utiliza o mesmo formato de cabeçalho PDU, que o SNMPv2. No entanto, cada
mensagem SNMPv3 inclui quatro grupos de dados adicionais: msg-Version, msg-Globa-Data,
msg-Security-Parameters e msg-PDU, conforme é demostrado na Figura 58.
154
Na Figura 59, podemos observar o relacionamento entre os diferentes mecanismos de cada
subsistema, numa arquitetura gestor-agente respetiva ao protocolo SNMPv3.
Network Network
155
Tabela 34 - Lista de primitivas para elementos de dados abstratos
O SNMPv3 define os procedimentos que devem ser seguidos para cada tipo de aplicação,
tanto no processo de criação de PDU’s, bem como no processamento ou transmissão destes.
Os procedimentos são definidos em termos de interação com o Dispatcher de acordo com as
suas primitivas.
Formalmente o protocolo SNMPv3 define cinco tipos de aplicações que utilizam serviços
fornecidos pelos diferentes mecanismos [80]:
156
▪ Gestor de comandos (Command Generator) – estabelece pedidos do tipo Get-Request,
Get-Next-Request, Get-Bulk e Set-Request, e processa as respostas. Esta aplicação é
implementada por um Network Management System (gestor), que pode emitir e
consultar solicitações do tipo Set, para as diferentes entidades, presentes em routers,
switches entre outros;
157
. Estudo do protocolo NETCONF
159
O conceito arquitetónico adotado pelo protocolo NETCONF baseia-se em 4 camadas: a
camada de transporte, que estabelece um meio de comunicação entre o agente e o gestor; a
camada RPC, responsável pelo processamento de pedidos; a camada de operações, a qual
contém um conjunto de procedimentos padrão que permitem obter dados sobre o estado e a
gestão de configurações e, por fim, a camada de dados que compreende a informação de
configuração e estado dos equipamentos.
Camada Exemplos
Dados
de Dados de
Conteúdo
Configuração Notificação
Operações <edit-config>
<rpc>
Mensagens <notification>
<rpc-reply>
A camada RPC com base em elementos XML proporciona a execução de pedidos RPC, por
parte de um agente, de modo a obter resposta do gestor. Esta utiliza a camada de transporte
para realizar pedidos e atribui serviços à camada de operações.
160
Quando é realizada uma sessão NETCONF, é definido um elemento <rpc>, que tem como
função atribuir um processo de execução e um atributo de identificação <message-id>. O
gestor guarda então o pedido RPC, armazenando os valores recebidos, de forma a poder
responder ao agente. No processo de resposta utiliza o elemento <rpc-reply>. Dentro do
elemento <rpc>, se não existir nenhum erro na sessão RPC estabelecida, é utilizado o elemento
<ok>, caso contrário é utilizado o elemento <rpc-error>.
161
. Estudo de modelos de gestão de redes
Nas décadas de 1980 e 1990 a ITU-T (antiga CCITT, Consultative Committee for
International Telephony and Telegraphy) desenvolveu uma arquitetura de gestão de redes de
telecomunicações, bastante enquadrada com a arquitetura OSI, designada por TMN
(Telecomunication Management Network). Esta arquitetura está definida na recomendação
M.3400 [24] e é, ainda hoje, alvo de evolução e normalização, no âmbito das redes de
telecomunicações de nova geração.
163
▪ Arquitetura Física – identifica as interfaces e os componentes físicos da arquitetura de
gestão TMN;
164
Cada bloco está associado a um componente físico e contempla uma função em concreto.
Um aspeto chave sobre a arquitetura física do TMN, é as interfaces associadas. Os pontos de
referência ilustrados na Figura 62 formalizam as interfaces, bem como os protocolos que
constituem a implementação dos serviços do modelo OSI. As interfaces (pontos de referência)
da arquitetura de gestão TMN são as seguintes [85]:
165
CIM - Common Information Model
▪ Modelo central (Core model) – define um conjunto de classes básicas para as diferentes
áreas de gestão;
▪ Modelo comum (Common model) – cria um conjunto de classes comuns, para diferentes
áreas de gestão, como sistemas, aplicações, redes e dispositivos. O conjunto de classes
define as informações de gestão que podem ser estendidas para tecnologias específicas;
O modelo CIM é composto por diversas classes conforme ilustra a Figura 63, no entanto
166
apenas serão descritas as principais. A classe Managed-Element define a raiz no modelo CIM.
Todas as restantes classes derivaram desta classe. Um elemento gestão pode ter vários
relacionamentos com outros elementos geridos. O elemento Managed-Element é uma classe
abstrata com atributos únicos (nome e uma descrição).
Com recurso à Figura 64, podemos verificar um cenário de uma gestão baseada em
CORBA. Tradicionalmente o CORBA utiliza no seu processo de comunicação o mesmo
167
modelo genérico da arquitetura SNMP. O comportamento dos agentes é determinado pelas
interfaces IDL, as quais são invocadas pelo gestor (Sistema de Gestão de Redes, SGR). Como
intermediário deste processo é utilizado o ORB, que recorre a um protocolo geral de
interoperabilidade (General Inter-ORB Protocol, GIOP) e assegura assim a correspondência
entre o GIOP e o protocolo de transporte (TCP ou IPX, Internetwork Packet Exchange, por
exemplo).
Ao nível das operações, são realizadas consultas (GET) e pedidos de modificação (SET) do
estado agente. O modelo de informação utilizado por cada agente é específico e fornece uma
base de apoio às solicitações realizadas pelo gestor. O agente é baseado num sistema CORBA
(servidor) que envia notificações (TRAP), utilizando para o efeito um serviço de notificações.
O protocolo SNMP pode ser integrado com o CORBA, através do modelo de informação,
fazendo a correspondência entre as MIB’s e as interfaces IDL [90]. A interface IDL converte
então os pedidos CORBA para PDU’s SNMP e vice-versa (Figura 65).
• Nível de execução das políticas, onde é feito o mapeamento entre as políticas do nível
superior e as tecnologias específicas do equipamento, redes e sistemas.
168
comunicação entre os dois níveis de abstração (nível superior e nível de execução das politicas),
conforme é ilustrado na Figura 66.
▪ Policy Enforcement Point (PEP) – refere-se a uma entidade que aplica as políticas de
gestão, mapeando-as em regras específicas do equipamento;
▪ Local Policy Decision Point (LPDP) – comporta decisões locais, quando não existe um
PDP, isto acontece no modelo COPS-PR (COPS Usage for Provisioning).
Isto possibilitou que os PDP passassem a fornecer a informação aos PEP, de uma só vez.
Os PEP passaram a tomar decisões com base em políticas previamente carregadas pelos PDP
e armazenadas localmente nos LPDP.
169
Figura 67 - Modelo lógico de arquitetura PBNM
170
. Configuração do protocolo OSPF IPv4 no ASR II
interface BVI1
description ***** netUP IPv4 Routing *****
vrf IPv4_publico
ipv4 address 191.40.3.2 255.255.255.240
!
router ospf 2
nsr
vrf IPv4_publico
log adjacency changes detail
router-id 191.40.3.2
default-information originate metric-type 1
redistribute connected
redistribute static
area 0.0.0.0
interface BVI1
authentication message-digest
message-digest-key 1 md5 encrypted
dead-interval 3
hello-interval 1
!
!
!
!
vrf netupipv4
address-family ipv4 unicast
<prefix x.x.x.x/x> <x.x.x.x next-hop> description <texto>
171
. Configuração do protocolo BGP no ASR II
vrf IPv4_publico
rd 65104:4
bgp router-id 193.136.56.252
address-family ipv4 unicast
network <redes sumarizadas>
redistribute ospf 2 route-policy BGP_Filter_OUT
!
neighbor 80.10.1.1
remote-as 1900
timers 20 60
update-source BVI110
address-family ipv4 unicast
weight 200
route-policy BGP_Filter_IN in
route-policy BGP_Filter_OUT out
next-hop-self
soft-reconfiguration inbound
!
!
neighbor 193.136.56.253
remote-as 65100
timers 20 60
update-source BVI10
address-family ipv4 unicast
weight 150
route-policy Accept-All in
route-policy Accept-All out
next-hop-self
soft-reconfiguration inbound
!
!
!
173
Cada neighbor está inserido num único processo BGP, recorrendo ao endereço lógico. As
interfaces lógicas de layer 3 (BVI) são configuradas com o IP local às redes de interligação,
sendo este definido no update-source.
interface BVI110
description **** Ligacao RCTS IPv4 ****
vrf IPv4_publico
ipv4 address 80.100.1.2 255.255.255.252
!
interface BVI10
description **** Ligacao ASRII-to-ASRIII IPv4 ****
vrf IPv4_publico
ipv4 address 193.136.56.252 255.255.255.248
!
route-policy BGP_Filter_IN
if destination in default-only then
pass
else
drop
endif
end-policy
!
route-policy BGP_Filter_OUT
if destination in BGP_IPv4_uporto_announce then
pass
else
drop
endif
end-policy
!
prefix-set default-only
0.0.0.0/0
end-set
!
route-policy Accept-All
pass
end-policy
174
A tomada de decisões do protocolo BGP é baseada em “políticas” de encaminhamento,
configuradas em route-policys. Deste modo, cada filtro determina aquilo que é recebido (IN)
ou enviado (OUT).
175
. Configuração do protocolo MPLS no ASRII
Toda a configuração de rede da U. Porto tem como base o MPLS. Isto origina a necessidade
de um IGP como referido anteriormente, sendo adotado o protocolo OSPF.
O processo OSPF-1 existente não recorre a nenhuma VRF de modo a viabilizar apenas a
criação de adjacências entre os neighbors, a partilha das redes de interligação e os endereços
loopback de identificação dos ASRs no MPLS.
interface Loopback1
ipv4 address 172.18.0.2 255.255.255.255
ipv6 enable
!
router ospf 1
nsr
log adjacency changes detail
router-id 172.18.0.2
default-information originate metric-type 1
area 0.0.0.0
mpls ldp sync
interface Loopback1
!
interface TenGigE0/0/0/0.1
!
interface TenGigE0/0/0/0.3
!
!
Em parelelo, esta instância OSPF-1 auxilia o LDP (mpls ldp sync), onde a configuração
define a identificação das interfaces locais, bem como a interface loopback do nó em causa.
Estas interfaces irão realizar a troca de etiquetas que se pretendem distribuir dinamicamente e,
ao mesmo tempo, irão partilhar todos os prefixos de rede com os endereços loopback (router
id) associados à área 0.0.0.0.
177
mpls ldp
router-id 172.18.0.2
nsr
graceful-restart
session protection for LDP-PEERS
explicit-null
igp sync delay 10
!
interface TenGigE0/0/0/0.1
!
interface TenGigE0/0/0/0.3
!
!
mpls ip-ttl-propagate disable
!
ipv4 access-list LDP-PEERS
10 permit ipv4 host 172.18.0.1 any
20 permit ipv4 host 172.18.0.2 any
30 permit ipv4 host 172.18.0.3 any
30 permit ipv4 host 172.18.0.4 any
178
neighbor 172.18.0.1
use neighbor-group mbgp-session-PEERs
description Pólo 1 - Reitoria
!
neighbor 172.18.0.3
use neighbor-group mbgp-session-PEERs
description Pólo 3 - FCUP
!
neighbor 172.18.0.4
use neighbor-group mbgp-session-PEERs
description Pólo 4 - FDUP
!
179
. Configuração de serviços VPLS no ASR I
181
l2vpn
ignore-mtu-mismatch-ad
bridge-group netUP_Management
bridge-domain gestão-KVM-pólo-1
interface Bundle-Ether1.100
!
interface Bundle-Ether4.100
!
vfi gestão-KVM-pólo-1
vpn-id 100
autodiscovery bgp
rd 65104:100
route-target 65104:100
signaling-protocol ldp
!
!
!
182
bridge-domain gestão-KVM-pólo-2
interface Bundle-Ether4.200
!
vfi gestão-KVM-pólo-2
vpn-id 200
autodiscovery bgp
rd 65104:200
route-target 65104:200
signaling-protocol ldp
!
!
!
bridge-domain gestão-KVM-pólo-3
interface Bundle-Ether4.300
!
vfi gestão-KVM-pólo-3
vpn-id 300
autodiscovery bgp
rd 65104:300
route-target 65104:300
signaling-protocol ldp
!
!
!
bridge-domain fw-gestao-failover
interface Bundle-Ether5.50
!
vfi fw-gestao-failover
vpn-id 50
autodiscovery bgp
rd 65104:50
route-target 65104:50
signaling-protocol ldp
!
!
!
183
. Configuração de Virtual Private Networks em firewalls ASA
#FW-gestao:
!
#access-list inside:
access-list gestao extended permit ip host object-group NET-gestao object-group NET-pólo1
!
#access-list tunel
access-list ipsec_to_p1_fw1 extended permit ip object-group NET-gestao object-group NET-pólo1
!
#NAT
nat (up_net,outside) source static NET-gestao NET-gestao destination static NET-pólo1 NET-pólo1
!
#----------------------------------------------------------------------------------------------#
#FW-pólo1
!
#access-list tunel
access-list ipsec_to_fw_gestao extended permit ip object-group NET-gestao object-group NET-pólo1
!
#NAT zero
nat (service_pólo1) 0 access-list service_pólo1_nat0_outbound
access-list service_pólo1_nat0_outbound extended permit ip object-group NET-pólo1 object-group
NET-gestao
185
Neste caso em concreto, é pretendido que a rede de origem (object-group NET-gestao) da
firewall de gestão, tenha acesso a todas as portas (permit IP) da rede destino (object-group
NET-pólo1) presente na firewall do pólo 1.
No caso da firewall de gestão, a versão de software é superior à 8.4, o que possibilita que
diferentes interfaces com security levels distintos, consigam comunicar-se sem o recurso a
mecanismos de NAT zero. Por sua vez, o NAT estático substitui o NAT zero, sendo de uso
obrigatório para traduzir endereços IP associados a um túnel VPN.
Devido à firewall do pólo 1 ter uma versão inferior à 8.4, necessita do modelo de NAT
“zero”, sendo que o túnel configurado recorre à interface outside, a qual, tem um security level
diferente da interface inside onde reside a rede de destino a atingir.
#FW-gestao
crypto ikev1 policy 10
authentication pre-share **password**
encryption 3des
hash md5
group 2
lifetime 86400
!
crypto ikev1 enable outside
crypto isakmp identity hostname
!
#----------------------------------------------------------------------------------------------#
#FW-pólo1
crypto isakmp policy 10
authentication pre-share **password**
encryption 3des
hash md5
group 2
lifetime 86400
!
crypto isakmp enable outside
crypto isakmp identity hostname
186
Embora o protocolo ISAKMP seja compatível com o IKE (Internet Key Exchange), a
diferença cinge-se no tipo de configuração que a CISCO propõe. As versões anteriores à 8.4,
não possibilitam a utilização do IKE. Isto é, a política de criptografia utilizada na firewall do
pólo1 recorre ao protocolo ISAKMP, sendo que esta estrutura protocolar dá suporte nativo ao
IKE e, por isso, existe a retrocompatibilidade entre estes dois mecanismos criptográficos.
A função de hash < {sha | md5} > é o algoritmo que mapeia “strings” para números inteiros,
ajudando a manter a integridade dos dados e, consequentemente, fornece uma camada extra no
que concerne aos métodos de segurança.
O diffie hellman < group {1 | 2 | 5 | 7} > assegura a confidencialidade com base no processo
de compartilhamento da chave criptográfica simétrica. Cada ID de um grupo tem de ser
configurado de igual modo nas firewalls que partilham o mesmo túnel IPsec. Quanto maior for
o ID, maior será o número de bits que a cifra disponibiliza, resultando assim, num método mais
seguro de comunicação. É de salientar que quanto maior for o valor do ID group, maior será o
aumento de latência nos equipamentos derivado ao aumento significativo de recursos de CPU.
#FW-gestao
tunnel-group 193.136.25.10 type ipsec-l2l
tunnel-group 193.136.25.10 ipsec-attributes
ikev1 pre-shared-key **secret**
!
#FW-pólo1
tunnel-group 193.136.25.42 type ipsec-l2l
tunnel-group 193.136.25.42 ipsec-attributes
pre-shared-key **secret**
O endereço IP de cada interface outside das firewalls deve ser atribuído a um tunnel-group
para que o canal lógico possa ser construído. Concretamente, os parâmetros < {ipsec-l2l |
remote-access} > do tipo de túnel irão determinar o modo de operação, podendo este ser site-
to-site ou remote-access.
187
2. Túneis IPSec remote-to-access
O tipo de acesso remoto por via do utilizador pode ser efetuado com recurso a um
configurador automático, ou através da configuração “manual” de VPNs num dado sistema
computacional. Concretamente, a configuração que se segue, pretende descrever as
parametrizações necessárias para o estabelecimento de um túnel IPSec entre a firewall de
gestão e o sistema terminal do administrador de rede. É importante referir, que não será descrita
a metodologia para web VPN, a qual propõe configurações auxiliares na firewall, de forma a
possibilitar a utilização de um instalador automático de VPNs.
As configurações deste tipo de túnel são bastante similares às previamente abordadas nos
túneis IPsec site-to-site. Uma das principais diferenças recai na necessidade da configuração
adicional de um range de endereços IP (VPN pool), com o objetivo de um dado utilizador ficar
com um endereço IP atribuído dinamicamente pela firewall.
Para permitir o acesso da rede 192.168.20.0/24 (VPN pool) às redes das interfaces inside
da firewall, deve-se configurar o mecanismo de split-tunnel. Do ponto de vista teórico o modelo
de split-tunnel baseia-se no acesso às redes que estiverem permitidas numa mera access-list
convencional interligada a uma group-policy. Isto pressupõe que todos os prefixos de rede que
não tiverem na tabela de rotas do sistema computacional ligado à VPN, terão como defaut
gateway o endereço IP do dispositivo de rede local (LAN).
188
. Modelos de gestão de armazenamento PostgreSQL versus MySQL
Security Secure from ground up with SSL support SSL support in some versions
NoSQL/JSON
Multiple supported features JSON data support only
Support
Standard master-standby
replication:
Multiple replication technologies available: • Single master to one standby
• Single master to one standby • Single master to multiple
• Single master to multiple standbys standbys
Replication
• Hot Standby/Streaming Replication • Single master to one standby
• Bi-Directional replication to one or more standbys
• Logical log streaming replication • Circular replication (A to B to
C and back to A)
• Master to master
Programming
Supported Not supported
Languages
189
Tabela 36 - Análise de desempenho entre arquiteturas PostegreSQL e MySQl [67]
PostgreSQL MySQL
PostgreSQL is widely used in large systems where MySQL is a widely chosen for web based
read and write speeds are crucial and data needs to projects that need a database simply for
validated. In addition, it supports a variety of straightforward data transactions. It is common,
performance optimizations that are available only in though, for MySQL to underperform when
commercial solutions such as strained by a heavy loads or when attempting to
complete complex queries.
Geospatial data support, concurrency without read MySQL performs well in OLAP/OLTP systems
locks, and so on (e.g. Oracle, SQL Server). when only read speeds are required.
Overall, PostgreSQL performance is utilized best in
systems requiring execution of complex queries. MySQL + InnoDB provides very good read/write
speeds for OLTP scenarios. Overall, MySQL
PostgreSQL performs well in OLTP (Online performs well with high concurrency scenarios.
Transaction Processing)/OLAP (Online Analytical
Processing) systems when read/write speeds are MySQL is reliable and works well with Business
required and extensive data analysis is needed. Intelligence applications, as business
intelligence applications are typically read-
PostgreSQL also works well with Business Intelligence heavy.
applications but is better suited for Data Warehousing
and data analysis applications that require fast
read/write speeds.
190
. Estudo comparativo entre soluções open-source MySQL
Community –
Open Source Open Source Open Source
Source Code
MySQL Workbench
MySQL Workbench for Webyog’s SQLYog for Microsoft
Tool – for Microsoft
Microsoft Windows, Windows (MySQL Workbench notes
Editing Windows, macOS,
macOS, and Linux an incompatible server)
and Linux
191
Tabela 38 - Funcionalidades entre MySQL, Percona e MariaDB 2/4 [69]
MySQL Group
Replication, Percona
Scalability – MariaDB Enterprise cluster
MySQL Group Replication XtraDB cluster (based on
clustering (based on Galera cluster)
a further engineered
Galera cluster)
Tablespace data-at-rest
Tablespace and table data-at-
encryption. Amazon KMS Tablespace data-at-rest
Security – rest encryption. Amazon KMS,
(Key Management encryption with Keyring
Encryption binlog/redo/tmp file with Aria
Service), Oracle Vault Vault plugin
tablespace encryption
Enterprise Edition
Security –
proxySQL data masking proxySQL data masking MariaDB MaxScale data masking
Data Masking
Security –
MySQL Enterprise Firewall proxySQL Firewall MariaDB MaxScale Firewall
Firewall
SQL –
In-development for In-development for
Common
MySQL 8.0 (now a release MySQL 8.0 (now a Present in MariaDB Server 10.2
Table
candidate) release candidate)
Expressions
Temporal –
In development for MariaDB
Log-based No No
Server 10.3
rollback
Temporal –
system In development for MariaDB
No No
versioned Server 10.3
tables
192
Tabela 39 - Funcionalidades entre MySQL, Percona e MariaDB 3/4 [69]
Instrumentation
Monitoring – Thorough instrumentation Thorough instrumentation
from MySQL 5.6,
PERFORMANCE in 5.7, sys schema in 5.7, sys schema
sys schema not
_SCHEMA included included
included
validate_password on by validate_password on by
Security –
default, to choose a strong default, to choose a strong No
Secure out of the box
password at the start password at the start
Optimiser –
Yes Yes No
Optimiser Tracing
Optimiser –
Yes Yes No
Optimiser Hints
DBA –
Yes Yes No
Super readonly mode
Security – Password
Yes Yes No
expiry
Security –
VALIDATE_PASSWORD Yes Yes No
_STRENGTH()
Security – ACCOUNT
Yes Yes No
LOCK/UNLOCK
Usability – Query
Yes Yes No
Rewriting
193
Tabela 40 - Funcionalidades entre MySQL, Percona e MariaDB 4/4 [69]
No (setup SSL
Security –
Yes Yes connections
mysql_ssl_rsa_setup
manually)
Usability – InnoDB
Yes Yes No
memcached interface
194
. Estudo comparativo de ferramentas de backup do MySQL
Backup do MySQL
Recursos Percona XtraBackup
Enterprise
195
Tabela 42 - Funcionalidade de backups Percona SSTv2 vs MySQL [14] 2/3
Backup do MySQL
Recursos Percona XtraBackup
Enterprise
196
Tabela 43 - Funcionalidade de backups Percona SSTv2 vs MySQL [14] 3/3
Backup do MySQL
Recursos Percona XtraBackup
Enterprise
Desfragmentação de índices
sim
secundários do InnoDB
Interfaces gráficas externas do usuário Zmanda Recovery Manager para MySQL Workbench, MySQL
para backup / recuperação MySQL Enterprise Monitor
197
. Instalação e configuração do Percona XtraDB cluster
O cluster adotado é composto por três sistemas informáticos, nos quais o PXC foi instalado
com auxílio dos seguintes passos:
5. Utilizar a senha temporária para efetuar login pela primeira vez em modo root:
mysql> exit
Bye
7. Parar o serviço mysql
199
Configuração dos nós
10.200.100.127 perconadb1
10.200.100.129 Perconadb3
!includedir /etc/my.cnf.d/
!includedir /etc/percona-xtradb-cluster.conf.d/
# Node IP address
wsrep_node_address=<ip_node_local>
# cluster name
wsrep_cluster_name=<cluster_name>
# SST method
wsrep_sst_method=xtrabackup-v2
200
4. Após configurar o passo 3 nos três nós, o primeiro nó a iniciar o mysql terá de ser o
“bootstrap node”. O comando para iniciar o procedimento citado é o seguinte:
[root@perconadb1~]# systemctl start [email protected]
[mysqld]
server-id=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
log-bin
log_slave_updates
expire_logs_days=7
#dns skip
skip_name_resolve=ON
#thread efficiency
thread_handling=pool-of-threads
thread_pool_size=24
max_connections=1500
#innodb
innodb_buffer_pool_size=4294967296
201
. Configuração do Percona XtraDB cluster em três nós de computação
Neste anexo são demonstrados os ficheiros de configuração dos três nós que decompõe o PXC. Por
omissão o ficheiro vem maioritariamente parametrizado, sendo que as alterações realizadas estão
destacadas em tom de preto.
[mysqld]
# Path to Galera library
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
# This changes how InnoDB autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node IP address
wsrep_node_address=10.200.100.127
# cluster name
wsrep_cluster_name=pxc-cluster
# SST method
wsrep_sst_method=xtrabackup-v2
203
2. Configuração do segundo nó do PXC:
[mysqld]
# Path to Galera library
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
# This changes how InnoDB autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node IP address
wsrep_node_address=10.200.100.128
# cluster name
wsrep_cluster_name=pxc-cluster
# SST method
wsrep_sst_method=xtrabackup-v2
204
3. Configuração do terceiro nó do PXC:
[mysqld]
# Path to Galera library
wsrep_provider=/usr/lib64/galera3/libgalera_smm.so
# This changes how InnoDB autoincrement locks are managed and is a requirement for Galera
innodb_autoinc_lock_mode=2
# Node IP address
wsrep_node_address=10.200.100.129
# cluster name
wsrep_cluster_name=pxc-cluster
# SST method
wsrep_sst_method=xtrabackup-v2
205
. Instalação e configuração da aplicação HAproxy
Enumera-se neste subcapítulo a metodologia de configuração da aplicação HAproxy. A
mesma compreende um processo simples de parametrização, fornecendo uma arquitetura de
encaminhamento baseada na camada de rede e transporte.
Instalação do HAproxy
O modelo de cluster proxy escolhido é constituído por dois sistemas informáticos, nos quais
foi instalado a aplicação HAproxy com auxílio dos seguintes passos:
2. Instalação do HAproxy:
Configuração do HAproxy
Encaminhamento HAproxy
Endereço IPv4 Nome do host Aplicações
Porta de frontend Porta de backend
207
1. Localização do ficheiro de configuração do HAproxy em Centos 7:
$ sudo vi /etc/haproxy/haproxy.cfg
defaults
log global
option tcplog
option dontlognull
retries 3
maxconn 4096
option redispatch
timeout connect 50000ms
timeout client 50000ms
timeout server 50000ms
timeout http-request 10s
timeout Figura 86 - Configuração do ficheiro haproxy.cfg 1/3
queue 1m
timeout connect 10s
timeout
#Content client
for inside 60m
haproxy
timeout
# defaults server 60m
timeout
timeout check 10s
http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 60m
timeout server 60m
timeout check 10s
# frontend (input)
frontend Zabbix_Server_Mysql
bind 10.200.100.123:3306
mode tcp
option tcplog
default_backend proxySQL
maxconn 20000
# backend (output)
backend proxySQL
balance leastconn
mode tcp
fullconn 2000
stick store-request src
stick-table type ip size 200k expire 30m
hash-type consistent
server proxySQL1 10.200.100.121:6033 check
server proxySQL2 10.200.100.122:6033 check backup
#HAproxy web ui
frontend stats Figura 87 - Configuração do ficheiro haproxy.cfg 2/3
bind 10.200.100.123:9000
mode http
stats enable
stats show-node
stats uri /haproxy
stats realm HAproxy\ Statistics
stats auth haproxy:haproxy
stats admin if TRUE 208
#HAproxy web ui
frontend stats
bind 10.200.100.123:9000
mode http
stats enable
stats show-node
stats uri /haproxy
stats realm HAproxy\ Statistics
stats auth haproxy:haproxy
stats admin if TRUE
• global: resume-se à definição dos logs, utilizadores e grupos, bem como o número
máximo de conceções que o HAproxy suporta;
209
➢ Por outro lado, o lastconn elege o servidor com menor número de sessões ativas,
sendo este aconselhado para sessões mais longas, tais como SQL, LDAP, TSE, entre
outros;
É importante referir, que a instalação e configuração foi realizada nos dois servidores
proxy1 e proxy2 (Tabela 45). A aplicação HAproxy responde a um único endereço VIP
(10.200.100.123), e foi devidamente associada ao Pacemaker, de modo a garantir a
indisponibilidade de um dos sistemas (Figura 46).
210
. Instalação e configuração da aplicação proxySQL
Arquitetura e funcionamento:
Toda a configuração do proxySQL recai sobre uma arquitetura modelar, dividida em quatro
camadas fundamentais:
• Memória: esta camada não representa a configuração em execução, define apenas uma
base de dados auxiliar e mantida pelo proxySQL para as suas funcionalidades;
Execução
Disco
211
As funcionalidades provenientes de fluxos de configuração, de acordo com a Figura 89, são
demonstradas na Tabela 46
Funcionalidades
Descrição
(comandos)
Instalação do proxySQL2
212
3. Iniciar o serviço proxysql e colocar o processo permanente no arranque do sistema:
Configuração do proxySQL2
O modo de configuração advém dos objetivos da solução proposta. Com auxílio da Tabela
47 fica percetível as portas de encaminhamento que serão utilizadas pela aplicação proxySQL,
bem como os sistemas computacionais que irão se enquadrar nessa tarefa.
Encaminhamento proxySQL
Endereço IPv4 Nome do host Aplicações
Porta Inbound Porta outbound
Palavra-
Contas MySQL locais/remotas Utilizador IP do nó de acesso Porta de acesso
chave
Interface administrativa do
admin admin localhost 6032
proxySQL (local)
Interface administrativa do
admin admin localhost 6033
PXC (remota)
Monitorização do PXC
monitor monit0r
(remota)
Interligação do proxySQL
proxysql_user passw0rd
com o PXC (remota)
213
A metodologia utilizada teve por base o configurador automático (ver Anexo XVI), o qual
recorre ao script proxysql-admin e às configurações pré-definidas no ficheiro admin.cnf.
Com a funcionalidade de configuração automática, surge então a possibilidade de utilizar
comados genéricos, capazes de simplificar o processo de configuração.
• –-enable • –-quick-demo
• –-adduser • –-update-cluster
• –-syncusers • –-status
• –-add-query-rule • –-force
$ sudo vi /etc/proxysql-admin.cnf
1. Criação de utilizadores “proxysql” (inerente aos dois sistemas do proxySQL) num dos
nós do PXC (replicação multi-master):
214
This script will assist with configuring proxySQL for use with
Percona XtraDB cluster (currently only PXC in combination
with proxySQL is supported)
Configuring the Percona XtraDB cluster application user to connect through proxySQL
Percona XtraDB cluster application user name as per command line/config-file is
cluster_one
Percona XtraDB cluster application user 'proxysql_user'@'127.%' has been added with ALL
privileges, this user is created for testing purposes
Adding the Percona XtraDB cluster server nodes to proxySQL
proxySQL has been successfully configured to use with Percona XtraDB cluster
You can use the following login credentials to connect your application through proxySQL
mysql --user=proxysql_user -p --host=127.0.0.1 --port=6033 --protocol=tcp
215
5. Alterar o default hostgroup dos utilizadores MySQL para que estes possam ter
privilégios de escrita:
+---------------+-------+----------------+------+--------+--------+----------+---------+---------+
| hostgroup | hg_id | hostname | port | status | weight | max_conn | use_ssl | gtid_port
+---------------+-------+----------------+------+--------+--------+----------+---------+---------+
| writer | 10 | 10.200.100.128 | 3306 | ONLINE | 1000000| 1000 | 0 | 0 |
| reader | 11 | 10.200.100.127 | 3306 | ONLINE | 1 | 1000 | 0 | 0 |
| reader | 11 | 10.200.100.129 | 3306 | ONLINE | 1 | 1000 | 0 | 0 |
| backup-writer | 12 | 10.200.100.127 | 3306 | ONLINE | 1 | 1000 | 0 | 0 |
| backup-writer | 12 | 10.200.100.129 | 3306 | ONLINE | 1 | 1000 | 0 | 0 |
+---------------+-------+----------------+------+--------+--------+----------+---------+---------+
Os utilizadores MySQL podem ser criados a partir do proxySQL. Neste caso, será dado um
exemplo para um possível caso de uso futuro.
216
$ [root@PXC1 ~]# mysql -uroot -p <root-pxc-password>
217
. Configuração automática do proxySQL
Options:
219
--max-transactions-behind=<NUMBER> Determines the maximum number of writesets a node
can have queued before the node is SHUNNED to avoid
stale reads.
(default: 100)
--use-ssl=[yes|no] If set to 'yes', then connections between proxySQL
and the backend servers will use SSL.
(default: no)
--writers-are-readers=[yes|no|backup]
If set to 'yes', then all writers (backup-writers also)
are added to the reader hostgroup.
If set to 'no', then none of the writers (backup-writers also)
will be added to the reader hostgroup.
If set to 'backup', then only the backup-writers
will be added to the reader hostgroup.
(default: backup)
--remove-all-servers When used with --update-cluster, this will remove all
servers belonging to the current cluster before
updating the list.
--debug Enables additional debug logging.
--help Dispalys this help text.
220
. Configuração da ferramenta Keepalived nos servidores de proxy
Nos dois sistemas integrantes do cluster de proxys foram instalados e parametrizados com
a aplicação Keepalived, de acordo com os seguintes passos:
$ chkconfig keepalived on
$ vi /etc/keepalived/keepalived.conf
vrrp_script chk_haproxy {
script "killall -0 haproxy" # check the haproxy process
interval 2 # every 2 seconds
weight 2 # add 2 points if OK
}
vrrp_instance VI_1 {
interface eth0 # interface to monitor
state MASTER # MASTER on haproxy1, BACKUP on haproxy2
virtual_router_id 51
priority 101 # 101 on haproxy1, 100 on haproxy2
virtual_ipaddress {
10.200.100.123 # virtual ip address
}
track_script {
chk_haproxy
}
}
221
vrrp_script chk_haproxy {
script "killall -0 haproxy" # check the haproxy process
interval 2 # every 2 seconds
weight 2 # add 2 points if OK
}
vrrp_instance VI_1 {
interface eth0 # interface to monitor
state MASTER # MASTER on haproxy1, BACKUP on haproxy2
virtual_router_id 51
priority 100 # 101 on haproxy1, 100 on haproxy2
virtual_ipaddress {
10.200.100.123 # virtual ip address
}
track_script {
chk_haproxy
}
}
$ ip a
$ tail -f /var/log/messages
222
. Configuração da ferramenta Pacemaker nos servidores de proxy
Nos dois sistemas computacionais do cluster de proxys foram instalados e parametrizados
com a aplicação Pacemaker, de acordo com os seguintes passos:
#proxy1 e proxy2
$ sudo passwd hacluster
Changing password for user hacluster.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
#proxy1 e proxy2
$ sudo vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.200.100.121 proxy1
10.200.100.122 proxy2
223
6. Configuração do cluster pcs (configuração realizada em ambos os servidores), para
agregar os processos a serem controlados com base no Corosync:
#autenticação
pcs cluster auth proxy1 proxy2
username: hacluster
Password: <secret pass>
#iniciar cluster
pcs cluster start --all
8. Por predefinição o modo de segurança dos dados vem ativado, assim sendo, na fase
inicial de partilha dos dados entre os sistemas que decompõe o cluster de proxys, deve-
se desabilitar o mecanismo stonith:
#proxy1 e proxy2
$ sudo pcs property set stonith-enabled=false
9. Desativar o mecanismo de quorum, pois num modelo de cluster com dois sistemas
computacionais, não é possível utilizar este modelo (mínimo de 3 servidores):
#proxy1 e proxy2
$ pcs property set no-quorum-policy=ignore
224
11. Comandos para testar o cluster de proxys e os respetivos nós constituintes:
cluster Status:
Stack: corosync
Current DC: proxy1 (version 1.1.20-5.el7_7.2-3c4c782f70) - partition with quorum
Last updated: Sat Jun 20 19:43:30 2020
Last change: Wed May 27 21:09:02 2020 by root via cibadmin on proxy2
2 nodes configured
3 resources configured
Pacemaker Nodes:
Online: proxy1 proxy2
Standby:
Maintenance:
Offline:
Pacemaker Remote Nodes:
Online:
Standby:
Maintenance:
Offline:
#proxy1 e proxy2
$ systemctl disable haproxy
13. Possibilitar a gestão do serviço haproxy através do Pacemaker (configurar apenas num
dos servidores):
225
16. Definir de forma estática, qual dos dois servidores do cluster é o ativo ou o passivo.
Neste caso foi definido o servidor proxy1 como servidor primário:
226
. Instalação e configuração do cluster de servidores Zabbix
Com auxílio da Tabela 49, podemos perceber as especificações gerais dos sistemas
computacionais a serem parametrizados, bem como os pacotes aplicacionais a serem instalados
em cada servidor Zabbix. Ambos os servidores irão conter as mesmas configurações, formando
assim, um cluster de alta disponibilidade através da ferramenta Pacemaker.
zabbix-server-mysql
10.200.100.111 Zabbix1 zabbix-web-mysql
pacemaker
zabbix-server-mysql Zabbix cluster
10.200.100.112 Zabbix2 zabbix-web-mysql
pacemaker
10.200.100.113 VIP zabbix-cluster pacemaker
Foram seguidos os seguintes passos genéricos para instalar o Zabbix em ambos os sistemas
informáticos:
# zabbix1 e zabbix2
$ rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-
1.el7.noarch.rpm
$ yum clean all
# zabbix1 e zabbix2
$ yum install zabbix-server-mysql zabbix-web-mysql zabbix-agent
3. Num dos nós do Percona XtraDB cluster previamente configurados (ver Anexo XIII),
foi realizada a criação dos utilizadores MySQL referentes a cada servidor Zabbix, e à
base de dados.
227
$ [root@PXC1 ~]# mysql -uroot -p <root-pxc-password>
É importante referir que o cluster PXC recebe dados do cluster de proxys, e por isso os
endereços configurados para os utilizadores “zabbix_server” são referentes ao endereço IP de
cada instância de servidores proxy (ver Figura 36). Deste modo a ligação MySQL é sempre
realizada através de dois intermediários de encaminhamento aplicacional (haproxy e proxysql)
quando os servidores Zabbix necessitam de guardar ou alterar dados no cluster de
armazenamento.
# zabbix1 ou zabbix2
$ zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz| mysql zabbixdb uzabbix_server
-h 10.200.100.123
# zabbix1 e zabbix2
$ sudo vi /etc/zabbix/zabbix_server.conf
DBHost=10.200.100.123
DBName=zabbixdb
DBUser=zabbix_server
DBPassword=passw0rd
228
6. Já com a solução em produção, verificou-se o seguinte erro, devendo este ser corrigido
neste passo de configuração inicial dos servidores Zabbix:
# zabbix1 e zabbix2
$ sudo vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Europe/Lisbon
8. Configurar o endereço IP de origem para que o tráfego de saída dos servidores Zabbix
seja identificado de forma única. Concretamente o servidor que tiver o endereço VIP
ativo, será aquele que irá responder aos “pedidos”:
# zabbix1 e zabbix2
$ sudo vi /etc/zabbix/zabbix_server.conf
229
9. Instalar e configurar a aplicação de Pacemaker em ambos os servidores Zabbix, de
modo a associar os dois sistemas computacionais a um cluster de alta disponibilidade
(consultar Anexo XX).
# zabbix1 e zabbix2
$ service pacemaker start
11. Acesso à configuração do Zabbix via ambiente gráfico (GUI, Graphical User
Interface):
$ http://server_ip_or_name/zabbix
230
. Configuração da ferramenta Pacemaker nos servidores Zabbix
#Zabbix1 e Zabbix2
$ sudo passwd hacluster
Changing password for user hacluster.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
# zabbix1 e zabbix2
$ sudo vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.200.100.111 zabbix1
10.200.100.112 zabbix2
231
6. Configuração do cluster pcs (configuração realizada em ambos os servidores), para
agregar os processos a serem controlados com base no Corosync:
#autenticação
pcs cluster auth zabbix1 zabbix2
username: hacluster
Password: <secret pass>
#iniciar cluster
pcs cluster start --all
8. Por predefinição o modo de segurança dos dados vem ativado, assim sendo, na fase
inicial de partilha dos dados entre os sistemas que decompõe o cluster de Zabbix, deve-
se desabilitar o mecanismo stonith:
#zabbix1 e zabbix2
$ sudo pcs property set stonith-enabled=false
9. Desativar o mecanismo de quorum, pois num modelo de cluster com dois sistemas
computacionais, não é possível utilizar este modelo (mínimo de 3 servidores):
#zabbix1 e zabbix2
$ pcs property set no-quorum-policy=ignore
232
11. Comandos para testar o cluster de Zabbix e os respetivos nós constituintes:
cluster Status:
Stack: corosync
Current DC: proxy1 (version 1.1.20-5.el7_7.2-3c4c782f70) - partition with quorum
Last updated: Sat Jun 20 19:43:30 2020
Last change: Wed May 27 21:09:02 2020 by root via cibadmin on zabbix2
2 nodes configured
3 resources configured
Pacemaker Nodes:
Online: zabbix1 zabbix2
Standby:
Maintenance:
Offline:
Pacemaker Remote Nodes:
Online:
Standby:
Maintenance:
Offline:
#proxy1 e proxy2
$ systemctl disable zabbix-server
$ systemctl disable httpd
13. Possibilitar a gestão dos serviços através do Pacemaker (configurar apenas num dos
servidores):
233
15. Ordenar a prioridade de inicialização de um dado serviço:
16. Definir de forma estática, qual dos dois servidores do cluster é o ativo ou o passivo.
Neste caso foi definido o servidor zabbix1 como servidor primário:
18. Testar o servidor Zabbix que está definido como primário e os serviços que estão
associados ao Pacemaker:
2 nodes configured
4 resources configured
234
. Configuração de monitorização distribuída com Zabbix-proxy
# proxy1 e proxy2
$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-proxy-sqlite3-
4.4.3-1.el7.x86_64.rpm
$ yum clean all
# proxy1 e proxy2
$ sudo yum install sqlite3 sqlite-devel -y
# proxy1 e proxy2
$ sudo mkdir /var/lib/sqlite/
$ sudo chown zabbix:zabbix -R /var/lib/sqlite
$ sudo chmod 777 /var/lib/sqlite/ -R
# proxy1 e proxy2
$ sudo zcat /usr/share/doc/zabbix-proxy-sqlite3-4.4.3/schema.sql | sqlite3
/var/lib/sqlite/Zabbix_proxy.db
235
# proxy1 e proxy2
$ sudo nano /etc/zabbix/zabbix_proxy.conf
DBName=/var/lib/sqlite/zabbix.db
#proxy1 e proxy2
$ systemctl disable zabbix-proxy
5. Definir de forma estática, qual dos dois servidores do cluster é o ativo ou o passivo.
Neste caso foi definido o servidor proxy1 como servidor primário:
236
3 Parametrização do funcionamento em modo ativo de monitorização
• Atribuir o endereço IP do servidor Zabbix, sendo que neste caso é o endereço VIP do cluster de
monitorização;
• Determinar uma porta TCP/IP. Por omissão a porta de comunicação entre o Zabbix-proxy e o
Zabbix-Server é a porta TCP/IP 10051;
• Parametrizar o nome do Zabbix-proxy. Deve ser igual ao nome definido do lado do Zabbix-
Server (frontend);
• O endereço de origem, o qual é utilizado na comunicação para monitorização de hosts via Zabbix-
proxy, deve ser substituído para o endereço VIP do cluster de proxys. Deste modo, os hosts que
estão a ser monitorizados não conhecem o endereço do servidor Zabbix.
# proxy1 e proxy2
$ sudo nano /etc/zabbix/zabbix_proxy.conf
############ GENERAL PARAMETERS #################
237
### Option: Hostname
# Unique, case sensitive proxy name. Make sure the proxy name is known to the server!
# Value is acquired from HostnameItem if undefined.
#
# Mandatory: no
# Default:
Hostname=zabbix-proxy-active
Por definição o Zabbix-proxy guarda os dados provenientes dos sistemas que monitoriza durante uma
hora, após se verificar um problema de disponibilidade por parte do servidor Zabbix. Este valor que
controla a periodicidade com que os dados são guardados é definido no parâmetro proxyOfflineBuffer
e quantificado em unidades horárias. Na configuração que se segue é representado o processo de
armazenamento para duas horas.
# proxy1 e proxy2
$ sudo nano /etc/zabbix/zabbix_proxy.conf
proxyOfflineBuffer=2
238
4 Otimização do desempenho do Zabbix-proxy
# proxy1 e proxy2
$ cat /etc/zabbix/zabbix_proxy.conf | grep ^[^#]
239
. Otimização de desempenho dos servidores Zabbix
# zabbix1 e zabbix2
$ cat /etc/zabbix/zabbix_proxy.conf | grep ^[^#]
241
. Configuração de agente Zabbix em sistemas computacionais
Todos os sistemas que não estão no mesmo domínio broadcast dos servidores da solução
de monitorização, são monitorizados com auxílio ao cluster de Zabbix-proxy. Por sua vez, a
monitorização dos componentes de monitorização (cluster de base de dados, proxys e frontend
Zabbix) são monitorizados pelo próprio cluster Zabbix.
# servidores a monitorizar
$ sudo rpm -ivh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-agent-4.4.3-
1.el7.x86_64.rpm
$ yum clean all
# proxy1 e proxy2
$ sudo yum install zabbix-agent -y
243
Salienta-se que o endereço IP de destino do servidor, ao qual este agente se irá ligar para
facultar os dados de monitorização, pode ser respetivo ao Zabbix-proxy ou ao servidor Zabbix,
conforme representa a Figura 103.
É ainda pertinente referir, que os servidores que recorrem a endereços IP virtuais para
fazerem resiliência podem responder a pedidos com dois endereços distintos mediante a eleição
da aplicação que controla o cluster. Nesse sentido, identificou-se que devem ser colocados os
dois endereços IP que o servidor pode ter (associar IPs ao campo Server).
Caso seja pretendido a configuração do agente Zabbix em modo ativo, as alterações são
bastantes simples e passivas de serem aplicadas, tendo em conta dois fatores importantes:
• O nome do servidor deve ser definido no campo Hostname do agente, tendo este de ser
igual ao nome instanciado no ambiente gráfico do servidor Zabbix (campo Host name);
244
##### Active checks related
### Option: Hostname
# Unique, case sensitive hostname.
# Required for active checks and must match hostname as configured on the server.
# Value is acquired from HostnameItem if undefined.
# Mandatory: no
Hostname=Zabbix-server1
245
. Configuração de MIBs proprietárias no sistema de monitorização Zabbix
Descreve-se de seguida os passos realizados para inclusão das MIBs nos sistemas
computacionais referidos, bem como os testes que devem ser realizados para emular a tradução
de “nomes” nos respetivos OIDs e vice-versa.
247
5. Reiniciar os seguintes serviços nos clusters de Zabbix-proxy e nos clusters Zabbix:
248
. Descoberta de baixo nível de hosts e serviços
Name
Discovery by proxy
IP range
Update Interval:120
Checks
Check type
SNMP community
SNMP OID:
Key: system.uname
1.3.6.1.2.1.1.5.0
Device uniqueness
criteria
Host name
Visible name
Enabled: on
Add
249
Estre anexo retrata um exemplo de configuração para a descoberta automática de
equipamentos (LLD), baseando-se no sistema de monitorização Zabbix.
Para que este procedimento seja finalizado, devem ser parametrizadas as ações pretendidas
após a regra de descoberta ser finalizada. No diagrama da Figura 107 é dado o exemplo para
validar os equipamentos de rede e sistemas computacionais mediante as condições que
pretendemos configurar. Depois desse processo, as operações permitem adicionar os hosts a
diferentes grupos, associando também os templates de monitorização de forma dinâmica, bem
como permite ainda adicionar os sistemas ao inventário, entre outras opções.
Discovery check: equal Set host inventory mode: Set host inventory mode:
Discovery check: equals: Redes de gestão de Automatic Automatic
Redes de gestão sistemas computacionais
equipamentos
Discovery status: equals:
Host IP: equals: Up
<IP range>
Service type: equals:
Zabbix agent
Update Update
250
Template: Module Interfaces SNMPv2
Discovery Rules
Units : Bps
Update
Enabled: on Enabled: on
Update Update
Update
Cada macro ({#MACRO1} e {#MACRO2}) determina um nome válido para a LLD, por sua
vez cada OID (oid1 e oid2) gera um valor com significado para a respetiva macro.
251
$ snmpwalk -v2c -c <SNMP_COMMUNITY> <IP host> IF-MIB::ifDescr
IF-MIB::ifDescr.2 = STRING: MgmtEth0/RSP0/CPU0/0
IF-MIB::ifDescr.3 = STRING: MgmtEth0/RSP0/CPU0/1
IF-MIB::ifDescr.4 = STRING: TenGigE0/3/0/0
IF-MIB::ifDescr.5 = STRING: TenGigE0/3/0/1
IF-MIB::ifDescr.6 = STRING: GigabitEthernet0/0/0/0
IF-MIB::ifDescr.7 = STRING: GigabitEthernet0/0/0/1
IF-MIB::ifDescr …
Discovery Rules
Type of information:
Nume ric
Units : bps
Update
Enabled: on Enabled: on
Update Update
Figura 110 - Diagrama de configuração para descoberta de serviços via agente Zabbix
Este parâmetro ganha um enorme relevo, utilizando expressões que invocam scripts
genéricos (ou parametrizáveis) com uma sintaxe sustentada no formato JSON.
252