Yeti Switch - SOFTSWITCH PARA HUMANOS!!
Versão 1.12
O sistema operacional suportado é Debian GNU/Linux 11, a única arquitetura suportada é amd64.
Configuração de repositórios
A maioria dos servidores pode usar o mesmo conjunto de repositórios:
deb http://ftp.debian.org/debian/ bullseye main contrib non-free deb http://ftp.debian.org/debian/ bullseye-updates main deb http://security.debian.org/debian-security bullseye-security main deb http://pkg.yeti-switch.org/debian/bullseye 1.12 main deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main
Os repositórios do sistema podem ser alterados editando o arquivo: /etc/apt/sources.list. Como usamos nosso próprio repositório de pacotes, você deve adicionar nossa chave a um arquivo confiável.
# apt install -y vim wget gnupg net-tools
# wget http://pkg.yeti-switch.org/key.gpg -O - | apt-key add -
A chave do repositório PGDG também deve ser adicionada à lista confiável:
# wget https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | apt-key add -
Roteando a instalação do banco de dados
NOTA: Recomendamos colocar o banco de dados de roteamento no mesmo host com interface WEB de gerenciamento para melhor desempenho e capacidade de resposta da interface web.
Versões suportadas
A única versão do PostgreSQL suportada é a 13.
Instalação de pacotes
# apt update
# apt install postgresql-13 postgresql-contrib-13 postgresql-13-prefix postgresql-13-pgq3
# apt install postgresql-13-pgq-ext postgresql-13-yeti postgresql-13-pllua pgqd
Criação dos bancos de dados
Criar banco de dados de roteamento
# su - postgres $ psql
postgres=# create user yeti encrypted password 'algumasenha' superuser; CREATE ROLE postgres=# create database yeti owner yeti; CREATE DATABASE postgres=# \q
postgres@yeti:~$ exit
NOTA: Recomenda-se escolher nomes de bancos de dados, nomes de usuários e senhas diferentes dos especificados neste manual por motivos de segurança.
Para grandes instalações, é recomendável colocar o banco de dados CDR em um servidor dedicado.
Verificações
Verifique se os bancos de dados foram criados com sucesso e estão acessíveis:
root@yeti:/# psql -h 127.0.0.1 -U yeti -d yeti Password for user yeti: psql (9.4.5) SSL connection (cipher: DHE-RSA-AES256-GCM-SHA384, bits: 256) Type "help" for help. yeti=# \q root@yeti:/#
Não se esqueça de fazer alterações em /etc/postgresql/13/main/pg_hba.conf e aplicá-las se você planeja acessar esses bancos de dados de outros hosts e/ou configurar a replicação do banco de dados.
Instalação de bancos de dados CDR
O sistema requer dois bancos de dados: um para roteamento e outro para CDRs. A configuração de diferentes instâncias do PostgreSQL é altamente recomendada para possibilitar a replicação.
Instalação de pacotes
Bancos de dados CDRs requerem um conjunto de pacotes semelhante ao banco de dados de roteamento.
# apt update
# apt install postgresql-13 postgresql-contrib-13 postgresql-13-prefix postgresql-13-pgq3
# apt install postgresql-13-pgq-ext postgresql-13-yeti postgresql-13-pllua pgqd
NOTA: É importante instalar o Postgresql do repositório PGDG. Consulte a configuração dos repositórios para obter detalhes.
Criação dos bancos de dados
Criar banco de dados cdr (Call Detail Record).
# su - postgres $ psql
postgres=# create user cdr encrypted password 'algumasenha' superuser; CREATE ROLE postgres=# create database cdr owner cdr; CREATE DATABASE postgres=# \q
postgres@yeti:~$ exit
NOTA: Recomenda-se escolher nomes de bancos de dados, nomes de usuários e senhas diferentes dos especificados neste manual por motivos de segurança.
Para grandes instalações, é recomendável colocar o banco de dados CDR em um servidor dedicado.
Código PGQd
Após a inicialização do banco de dados CDR, você deve executar pgq ticker daemon (pgqd) no servidor com banco de dados CDR.
Edite o arquivo de configuração /etc/pgqd.ini e realize as modificações a seguir:
[pgqd] base_connstr = host=127.0.0.1 port=5432 dbname=cdr user=cdr password=algumasenha initial_database = cdr database_list = cdr pidfile = /var/run/postgresql/pgqd.pid
Então você deve iniciar o ticker:
# service pgqd start
# servide pgqd status
● pgqd.service - PgQ maintenance daemon
Loaded: loaded (/lib/systemd/system/pgqd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-07-24 14:07:52 -03; 47min ago
Main PID: 6949 (pgqd)
Tasks: 1 (limit: 2323)
Memory: 1.1M
CPU: 46ms
CGroup: /system.slice/pgqd.service
└─6949 /usr/bin/pgqd /etc/pgqd.ini
Verificações
Verifique se os bancos de dados foram criados com sucesso e estão acessíveis:
root@yeti-cdr:/# psql -h 127.0.0.1 -U cdr -d cdr Password for user cdr: psql (9.4.5) SSL connection (cipher: DHE-RSA-AES256-GCM-SHA384, bits: 256) Type "help" for help. cdr=# \q root@yeti-cdr:/#
Não se esqueça de fazer alterações em /etc/postgresql/13/main/pg_hba.conf e aplicá-las se você planeja acessar esses bancos de dados de outros hosts e/ou configurar a replicação do banco de dados.
instalação da interface WEB
Requisitos do servidor:
- Arquitetura amd64;
- Distribuição Debian 11 Bullseye;
- Pelo menos 4 GB de RAM.
Instalação de pacotes
# apt update && apt install yeti-web nginx
Configuração de conexão de bancos de dados
Para configurar os parâmetros de conexão de bancos de dados, crie o arquivo /opt/yeti-web/config/database.yml com o seguinte conteúdo:
production: primary: adapter: postgresql encoding: unicode database: yeti username: yeti password: algumasenha host: 127.0.0.1 port: 5432 schema_search_path: 'gui, public, switch, billing, class4, runtime_stats, sys, logs, data_import' min_messages: notice pool: 5 cdr: adapter: postgresql encoding: unicode database: cdr username: yeti password: algumasenha host: 127.0.0.1 port: 5432 schema_search_path: 'cdr, reports, billing' min_messages: notice pool: 5 migrations_paths: db/cdr_migrate
Você deve especificar endereços e credenciais corretos que foram usados na seção anterior.
Configuração Yeti-web
Copie o exemplo do arquivo de configuração /opt/yeti-web/config/yeti_web.yml.distr para /opt/yeti-web/config/yeti_web.yml
# cp -av /opt/yeti-web/config/yeti_web.yml.distr /opt/yeti-web/config/yeti_web.yml
Inicialização da comunicação com os bancos de dados
Para inicializar bancos de dados vazios durante a instalação inicial:
# cd /opt/yeti-web # su -s /bin/bash yeti-web $ RAILS_ENV=production ./bin/bundle.sh exec rake db:schema:load db:migrate $ RAILS_ENV=production ./bin/bundle.sh exec rake db:seed
yeti-web@yeti:~$ exit
root@yeti:/opt/yeti-web# cd /
Para atualizar os bancos de dados para a versão mais recente:
# cd /opt/yeti-web # su -s /bin/bash yeti-web $ RAILS_ENV=production ./bin/bundle.sh exec rake db:migrate
yeti-web@yeti:~$ exit
root@yeti:/opt/yeti-web# cd /
Configuração do Nginx
Para configuração básica, remova a configuração padrão e copie yeti-web.dist.nginx:
# rm /etc/nginx/sites-enabled/default # cp /opt/yeti-web/config/yeti-web.dist.nginx /etc/nginx/sites-enabled/yeti # nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # service nginx restart
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-07-24 15:22:34 -03; 4s ago
Docs: man:nginx(8)
Process: 16821 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 16822 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 16823 (nginx)
Tasks: 2 (limit: 2323)
Memory: 2.6M
CPU: 15ms
CGroup: /system.slice/nginx.service
├─16823 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─16824 nginx: worker process
Lançar
Após a configuração bem-sucedida dos bancos de dados, você finalmente pode executar o software usando os seguintes comandos:
# service yeti-web start # service yeti-cdr-billing@cdr_billing start # service yeti-cdr-billing@cdr_stats start # service yeti-delayed-job start # service yeti-scheduler start
Isso executará a interface da WEB, as agendas de processos, processos de tarefas agendadas em segundo plano e os serviços de processamento do CDR.
Verificações
Verifique se o puma escuta no soquete local:
# netstat -lpn | grep puma unix 2 [ACC] STREAM OUVINDO 41901 16860/puma 6.2.1 (u /run/yeti/yeti-unicorn.sock)
verifique se o nginx escuta em endereços e portas TCP/IP corretos:
# netstat -lpn | grep nginx tcp 0 0 127.0.0.1:6666 0.0.0.0:* OUÇA 16823/nginx: master tcp 0 0 0.0.0.0:80 0.0.0.0:* OUÇA 16823/nginx: master
Arquivos de log para verificar possíveis avisos/erros:
- /var/log/yeti/yeti-web.log
- /var/log/yeti/yeti-cdr-billing.log
- /opt/yeti-web/log/puma.stdout.log
- /opt/yeti-web/log/puma.stderr.log
Tente abrir a interface de gerenciamento em seu navegador favorito e faça o login com as credenciais padrão:
User: admin
Pass: 111111
E por hoje é só, pessoal!
Fonte: https://yeti-switch.org/
Deixe um comentário