# Instalar o Servidor Pentaho

{% hint style="info" %}

#### **Servidor Pentaho**

Esta seção orienta você na instalação e inicialização do Servidor Pentaho no Ubuntu.

Você irá:

* Criar diretórios de instalação
* Preparar os bancos de dados do Repositório Pentaho
* Configurar conexões JDBC/JNDI
* Iniciar o Servidor Pentaho (e opcionalmente configurar systemd)
* Configurar o Gerenciador de Licenças
  {% endhint %}

{% hint style="warning" %}
Baseline testado: Ubuntu 24.04 LTS com Java 21 (OpenJDK) e PostgreSQL 17.

Certifique-se de que você completou [Preparar Ambiente](/pentaho-11-installation-en/pentaho-11-installation-pt-br/instalacao/archive-installation/prepare-environment.md) primeiro.&#x20;

Para detalhes de compatibilidade, veja [Referência de Componentes](https://docs.pentaho.com/install/components-reference).
{% endhint %}

{% hint style="info" %}
**Pré-requisitos**

* Servidor Ubuntu 24.04 LTS
* Java 21 instalado e `PENTAHO_JAVA_HOME` definido
* PostgreSQL 17 instalado e em execução
* Um usuário não root `pentaho` com sudo
* `pacote unzip` instalado
* ZIPs de arquivo e drivers JDBC baixados
  {% endhint %}

<figure><img src="/files/0f9ef399a14819e6f79ab5eaeefe9aea2afe8d05" alt="Pentaho Pro Suite overview image"><figcaption><p>Pentaho Pro Suite</p></figcaption></figure>

{% tabs %}
{% tab title="1. Servidor Pentaho" %}
{% hint style="info" %}

#### **Diretórios do Servidor Pentaho**

O Servidor Pentaho é uma aplicação web executada em um contêiner servlet Apache Tomcat.
{% endhint %}

1. Crie diretórios base em `/opt/pentaho`.

```bash
cd
sudo mkdir -p /opt/pentaho/{server,software}
```

```
/opt/pentaho
├── server      # Runtime do servidor descompactado (tomcat, pentaho-solutions, scripts)
└── software    # Instaladores, ZIPs, drivers (área de staging)
```

2. Crie subdiretórios em `/opt/pentaho/software`.

```bash
cd /opt/pentaho/software
sudo mkdir -p {db-drivers,docker,ee-client,ee-plugins,ops-mart,sdk,server,shims}
```

```
db-drivers   - drivers JDBC
docker       - configuração on-prem do Pentaho & dockerfiles
ee-client    - plugins clientes EE do Pentaho
ee-plugins   - plugins de servidor EE do Pentaho
ops-mart     - scripts do Operations Mart
sdk          - kit SDK do Pentaho
server       - servidor Pentaho
shims        - coleções de shims do Hadoop
```

***

{% hint style="info" %}
**Descompacte o Pacote do Servidor Pentaho (ZIP)**

Use `pacote unzip` para extrair o ZIP do servidor para o diretório runtime. Isso evita a necessidade do JDK completo (o JRE não inclui a ferramenta `jar` ).

* `pentaho-server-ee-11.0.0.0-2xx.zip` - Servidor Pentaho (Arquivo - inclui Tomcat 10)
  {% endhint %}

1. Garanta que `pacote unzip` está disponível e copie os ZIPs do servidor para o staging.

```bash
cd
sudo apt update -y && sudo apt install -y unzip
sudo cp ~/Downloads/'Archive Build (Suggested Installation Method)'/* /opt/pentaho/software/server
```

2. Extraia o ZIP do Servidor Pentaho em `$PENTAHO_BASE/server`.

```bash
cd
cd "$PENTAHO_BASE/server"

# Substitua <version> pelo nome exato do arquivo que você baixou
sudo unzip /opt/pentaho/software/server/pentaho-server-ee-11.0.0.0-2xx.zip
```

<figure><img src="/files/12f92b514ac0d2adcde1ac5294656815d78493ec" alt=""><figcaption><p>Descompactar Servidor Pentaho</p></figcaption></figure>

3. Torne todos os `.sh` arquivos executáveis.

```bash
cd
cd "$PENTAHO_BASE/server"
sudo find . -iname "*.sh" -exec chmod +x {} \;
```

4. Defina propriedade e permissões sensatas para executar 'pentaho' como um usuário não root.

```bash
cd
sudo chown -R pentaho:pentaho /opt/pentaho
sudo find /opt/pentaho -type d -exec chmod 755 {} \;
sudo find /opt/pentaho -type f -exec chmod 644 {} \;
sudo find /opt/pentaho -name "*.sh" -exec chmod 755 {} \;
```

{% hint style="info" %}
755 significa que você pode fazer qualquer coisa com o arquivo ou diretório, e outros usuários podem ler e executar, mas não alterá-los. Adequado para programas e diretórios que você quer tornar publicamente acessíveis.&#x20;

644 significa que você pode ler e escrever o arquivo ou diretório e outros usuários só podem lê-lo.
{% endhint %}

5. Verifique a estrutura de diretórios do servidor.

{% hint style="info" %}
/opt/pentaho/

```
  server/
    pentaho-server/
      pentaho-solutions/
        system/
```

Plugins de servidor são instalados em `pentaho-solutions/system` pasta.
{% endhint %}
{% endtab %}

{% tab title="2. Repositório Pentaho" %}
{% hint style="info" %}

#### **Componentes do Repositório Pentaho**

O Repositório Pentaho (no PostgreSQL por padrão) consiste em:

* Jackrabbit: repositório de soluções, segurança e metadados de conteúdo
* Quartz: dados do agendador
* Hibernate: registro de auditoria
* Pentaho Operations Mart: relatórios de uso e desempenho
  {% endhint %}

{% stepper %}
{% step %}
**Revise senhas padrão nos scripts SQL**

1. Inspecione os scripts PostgreSQL fornecidos com o servidor.

```bash
cd
cd "$PENTAHO_SERVER/data/postgresql"
ls -1
```

Você deverá ver arquivos semelhantes a:

```
alter_script_postgresql_BISERVER-13674.sql
create_jcr_postgresql.sql
create_quartz_postgresql.sql
create_repository_postgresql.sql
migrate_old_quartz_data_postgresql.sql
pentaho_logging_postgresql.sql
pentaho_mart_drop_postgresql.sql
pentaho_mart_postgresql.sql
pentaho_mart_upgrade_audit_postgresql.sql
pentaho_mart_upgrade_postgresql.sql

```

2. Abra um script para revisar usuários/senhas padrão (alterar para produção).

```bash
sed -n '1,120p' create_jcr_postgresql.sql
```

{% endstep %}

{% step %}
**Execute scripts SQL para criar bancos de dados do Repositório**

1. Confirme que o PostgreSQL está em execução e localize os scripts.

```bash
sudo systemctl status postgresql --no-pager
cd
cd "$PENTAHO_SERVER/data/postgresql"
ls -l
```

2. Conecte-se como um `pentaho` superusuário.

&#x20;      Senha: `SecurePassword123`

```bash
sudo -u pentaho psql -d postgres
```

3. Execute os comandos passo a passo - não como um único bloco de script. Forneça senhas se solicitado - veja abaixo.

```plsql
\i create_jcr_postgresql.sql
\i create_quartz_postgresql.sql
\q sair após Quartz e faça login novamente ..
certifique-se de que você está no diretório "$PENTAHO_SERVER/data/postgresql"
sudo -u pentaho psql -d postgres
\i create_repository_postgresql.sql
\i pentaho_mart_postgresql.sql
\q sair após hibernate e faça login novamente ..
certifique-se de que você está no diretório "$PENTAHO_SERVER/data/postgresql"
sudo -u pentaho psql -d postgres
\i pentaho_logging_postgresql.sql
\q
```

| Usuário       | Senha             |
| ------------- | ----------------- |
| postgres      | SecurePassword123 |
| pentaho       | SecurePassword123 |
| jcr\_user     | password          |
| pentaho\_user | password          |
| hibuser       | password          |

4. Validação rápida (CLI) - liste os bancos de dados criados e conecte-se - pressione q para percorrer a lista.

```sql
\l+ jackrabbit
\l+ quartz
\l+ hibuser
\l+ opsmart
\c jackrabbit
\dt
\c quartz
\dt
```

{% hint style="warning" %}
Tabelas para Hibernate e Jackrabbit podem ser criadas mais tarde pelo Servidor Pentaho na primeira inicialização. Ver esquemas vazios nesta etapa pode ser esperado.
{% endhint %}

5. Opcional: verifique no pgAdmin (GUI).

<figure><img src="/files/6188f4e592b4c98885999176e5729ca04e6977a2" alt=""><figcaption><p>Bancos de dados do Pentaho</p></figcaption></figure>
{% endstep %}

{% step %}
**Configure o Pentaho para usar PostgreSQL**

{% hint style="info" %}
PostgreSQL é o padrão. Se você manteve as senhas e a porta padrão (`5432`), apenas verifique as configurações abaixo; caso contrário, ajuste host/porta/usuário/senha para corresponder ao seu ambiente.
{% endhint %}

***

{% hint style="info" %}
Quartz - defina o delegate do PostgreSQL e a fonte de dados JNDI.
{% endhint %}

1. Abra a configuração do Quartz.

```bash
cd "$PENTAHO_SERVER/pentaho-solutions/system/scheduler-plugin/quartz"
sudo nano -c quartz.properties
```

2. Verifique estes valores (números de linha podem diferir):

{% code title="quartz.properties — entradas obrigatórias" %}

```
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.dataSource.myDS.jndiURL=Quartz
```

{% endcode %}

***

{% hint style="info" %}
Hibernate — aponte para o arquivo de configuração do PostgreSQL.
{% endhint %}

1. Abra as configurações do Hibernate.

```bash
cd "$PENTAHO_SERVER/pentaho-solutions/system/hibernate"
sudo nano -c hibernate-settings.xml
```

2. Confirme a referência do arquivo de configuração:

{% code title="hibernate-settings.xml" %}

```
<config-file>system/hibernate/postgresql.hibernate.cfg.xml</config-file>
```

{% endcode %}

3. Opcionalmente revise `postgresql.hibernate.cfg.xml` para nome da datasource e dialect.

```bash
sudo nano -c postgresql.hibernate.cfg.xml
```

Assegure:

{% code title="postgresql.hibernate.cfg.xml — propriedades chave" %}

```
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.connection.datasource">java:comp/env/jdbc/Hibernate</property>
```

{% endcode %}

***

{% hint style="info" %}
Jackrabbit — verifique o armazenamento PostgreSQL em `repository.xml`.
{% endhint %}

1. Abra a configuração do Jackrabbit.

```bash
cd "$PENTAHO_SERVER/pentaho-solutions/system/jackrabbit"
sudo nano -c repository.xml
```

2. Verifique se as seções do PostgreSQL estão ativas (outras comentadas), por exemplo:

{% hint style="info" %}

* Esquema de sistema de arquivos: `postgresql`
* Datastore `databaseType="postgresql"`
* Esquema do PersistenceManager: `postgresql`
* Diário de Banco de Dados: `postgresql`
  {% endhint %}

{% hint style="warning" %}
Verifique os nomes JNDI e as portas no Quartz, Hibernate, Jackrabbit e Tomcat `context.xml` para garantir consistência (mesmo host, porta 5432 a menos que alterada, e nomes de recursos JNDI correspondentes).

Nomes JNDI esperados:

* Quartz: `Quartz`
* Hibernate: `java:comp/env/jdbc/Hibernate`
* Jackrabbit: conforme referenciado em `repository.xml`
  {% endhint %}
  {% endstep %}
  {% endstepper %}
  {% endtab %}

{% tab title="3. Tomcat" %}
{% hint style="info" %}

#### **Tomcat**

Após configurar o Repositório, configure o servidor de aplicação web (Tomcat 10) para conectar-se ao Repositório usando JDBC/JNDI.
{% endhint %}

{% tabs %}
{% tab title="1. Drivers de Banco de Dados" %}
{% hint style="warning" %}

#### **Drivers JDBC**

Para conectar a bancos de dados (incluindo o Repositório), instale os drivers JDBC apropriados. Devido a restrições de licença, alguns drivers devem ser baixados manualmente.
{% endhint %}

{% embed url="<https://docs.pentaho.com/install/jdbc-drivers-reference>" %}

{% embed url="<https://jdbc.postgresql.org/download/postgresql-42.7.8.jar>" %}

1. Verifique se o driver JDBC do PostgreSQL está presente em lib do Tomcat (exigido para o Repositório):

```bash
ls -1 "$TOMCAT_HOME/lib" | grep -i postgresql || echo "Driver PostgreSQL não encontrado"
```

{% hint style="info" %}
Se não for encontrado, baixe o driver JDBC do PostgreSQL (por exemplo, `postgresql-42.7.8.jar`) e distribua-o usando o script auxiliar:
{% endhint %}

```bash
sudo cp ~/Downloads/'Database Drivers'/postgresql-*.jar /opt/pentaho/server/jdbc-distribution
cd /opt/pentaho/server/jdbc-distribution
sudo ./distribute-files.sh "$TOMCAT_HOME/lib"
```

2. Copie quaisquer drivers JDBC adicionais para a pasta de staging e distribua.

```bash
sudo cp ~/Downloads/'Database Drivers'/* /opt/pentaho/software/db-drivers
cd /opt/pentaho/software/db-drivers
sudo cp mysql-connector-j-9.0.0.jar /opt/pentaho/server/jdbc-distribution
```

3. Distribua os drivers para o Tomcat.

```bash
cd /opt/pentaho/server/jdbc-distribution
sudo ./distribute-files.sh "$TOMCAT_HOME/lib"
```

4. Verifique se os JARs estão presentes em lib do Tomcat.

```bash
ls -1 "$TOMCAT_HOME/lib" | grep -Ei 'mysql|postgresql' || echo "Não encontrado"
```

{% hint style="danger" %}
Você deve reiniciar o Servidor Pentaho (e ferramentas clientes, se estiverem em execução) para carregar novos drivers JDBC. Não é necessário um reboot completo do sistema.
{% endhint %}
{% endtab %}

{% tab title="2. context.xml" %}
{% hint style="info" %}

#### **context.xml**

Informações de conexão de banco de dados para recursos JNDI usados pelo Pentaho são armazenadas em `context.xml`.
{% endhint %}

1. Abra o arquivo e revise os recursos JNDI e credenciais.

```bash
cd "$TOMCAT_HOME/webapps/pentaho/META-INF"
sudo nano -c context.xml
```

{% hint style="warning" %}
Em produção, verifique se nome de usuário, senha, classe do driver, host/IP e porta correspondem ao seu ambiente. Garanta que os nomes JNDI alinhem-se com as configurações do Quartz, Hibernate e Jackrabbit.
{% endhint %}
{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="4. Iniciar Servidor" %}
{% hint style="info" %}

#### **Iniciar Servidor Pentaho**

Execute o servidor como o usuário `pentaho` para evitar problemas de permissão.
{% endhint %}

1. Inicie o servidor.

```bash
cd
cd "$PENTAHO_SERVER"
./start-pentaho.sh
```

2. Acompanhe o log do Tomcat (padrão robusto).

```bash
tail -f "$TOMCAT_HOME/logs/catalina."*.log
```

Mensagens esperadas incluem:

```
... Starting ProtocolHandler ["http-nio-8080"]
... Server startup in [xxxxx] milliseconds
```

***

{% hint style="info" %}
**Pentaho User Console (PUC)**

A Pentaho User Console (PUC) é a interface web para criar e visualizar conteúdo.
{% endhint %}

{% embed url="<http://localhost:8080/pentaho>" %}
Link para o Servidor Pentaho
{% endembed %}

Credenciais padrão (altere imediatamente após o primeiro login):

```
Nome de usuário: admin
Senha: password
```

<figure><img src="/files/7dc3716acbd3b88a7eac7255a7f8ae7191cee7e7" alt=""><figcaption><p>Pentaho User Console</p></figcaption></figure>

3. Você também tem a opção de alternar para a nova tela de login.

{% embed url="<http://localhost:8080/pentaho/content/login/web/index.html>" %}

<figure><img src="/files/2800eb1f54658ff66e3746a576a35a74c6743225" alt=""><figcaption><p>NOVO - Pentaho User Console</p></figcaption></figure>

{% hint style="info" %}
Se você já inseriu seus detalhes de licenciamento, você será redirecionado para a nova User Console.
{% endhint %}

***

{% hint style="success" %}
**Validações rápidas**
{% endhint %}

* Verifique se o HTTP está respondendo:

```bash
curl -I http://localhost:8080/pentaho/ | head -n 1
```

* Opcional (acesso remoto): abra o firewall e teste a partir de uma máquina cliente (ajuste conforme a política de sua rede):

```bash
sudo ufw allow 8080/tcp || true
```

***

<details>

<summary>Valide o Repositório após a primeira execução (clique para expandir)</summary>

```sql
-- Exemplo Quartz
\c quartz
SELECT COUNT(*) FROM qrtz_scheduler_state;

-- Exemplo Hibernate (espere muitas tabelas após a primeira inicialização)
\c hibuser
\dt
```

</details>

***

{% hint style="info" %}
**Systemd (opcional)**

Crie um serviço systemd para gerenciar o Pentaho na inicialização e em caso de falha.
{% endhint %}

1. Salve o arquivo unit como `/etc/systemd/system/pentaho-server.service`.

{% code title="/etc/systemd/system/pentaho-server.service" %}

```ini
[Unit]
Description=Pentaho Server
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
User=pentaho
Group=pentaho
EnvironmentFile=-/etc/environment
# Fallback opcional caso não esteja usando PENTAHO_JAVA_HOME em /etc/environment
# Environment="JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64"
WorkingDirectory=/opt/pentaho/server/pentaho-server
ExecStart=/opt/pentaho/server/pentaho-server/start-pentaho.sh
ExecStop=/opt/pentaho/server/pentaho-server/stop-pentaho.sh
TimeoutSec=500
Restart=on-failure
RestartSec=5
SuccessExitStatus=5 6
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
```

{% endcode %}

2. Recarregue e inicie.

```bash
sudo systemctl daemon-reload
sudo systemctl start pentaho-server
sudo systemctl enable pentaho-server
```

Gerencie o serviço:

```bash
sudo systemctl status pentaho-server
sudo systemctl restart pentaho-server
sudo systemctl stop pentaho-server
```

***

<details>

<summary>Solução de problemas (clique para expandir)</summary>

* HTTP 404 em `/pentaho` após a inicialização: confirme `"$TOMCAT_HOME/webapps/pentaho"` existe, verifique `catalina.*.log` por erros de implantação, e verifique permissões de arquivo em `$PENTAHO_SERVER`.
* Porta 8080 já em uso: altere a porta do Tomcat em `server.xml` ou pare o serviço conflitante.
* Driver JDBC não encontrado: verifique os JARs do driver (por exemplo, `postgresql-*.jar`, `mysql-*.jar`) existem em `"$TOMCAT_HOME/lib"`.
* Autenticação ao PostgreSQL falha: prefira `scram-sha-256`; revise `pg_hba.conf`, reinicie o PostgreSQL e teste `psql -h 127.0.0.1` com o usuário alvo.
* Problemas de esquema do Jackrabbit: verifique novamente `repository.xml` seções estão definidas para `postgresql`.
* Erros de ativação de licença: verifique os logs do Tomcat em `tomcat/logs/` por `license`/`elm` mensagens.

</details>

***

{% endtab %}

{% tab title="5. Gerenciador de Licenças" %}
{% hint style="info" %}

#### **Gerenciador de Licenças**

O Pentaho Pro Suite 11.x usa um Gerenciador de Licenças (na nuvem ou local) para gerenciar direitos do PDI & BA e verificar plugins EE.
{% endhint %}

<figure><img src="/files/e39b40e7cfd9e6550b2c7756bf4432652402a1b0" alt=""><figcaption><p>Licenças</p></figcaption></figure>

{% tabs %}
{% tab title="Gerenciador de Licenças" %}
{% hint style="info" %}

#### **Licença de avaliação**

Uma licença de avaliação de 30 dias está incluída se você baixou de:  [Avaliação Pentaho de 30 dias](https://pentaho.com/download/)

Se você baixou os binários GA de: [Portal do Cliente Pentaho](https://support.pentaho.com/hc/en-us), então você precisará de um ID de Ativação ou da sua URL de Licenciamento.

Se você instalou em um ambiente isolado (air-gapped), precisará solicitar uma licença offline.
{% endhint %}

1. Abra Servidor Pentaho > Administração > Licenças para abrir o diálogo Adicionar Licença.
2. Clique no sinal +.

<figure><img src="/files/98e0ac8df3012ed97ccec8264581f5109793f24b" alt=""><figcaption><p>Adicionar licença</p></figcaption></figure>

5. Insira o código de Ativação ou sua URL de licenciamento:

<figure><img src="/files/02e208fa4c9462356603e9f1d68bc1a25cd9365f" alt="Add License dialog"><figcaption><p>Gerenciador de Licenças</p></figcaption></figure>

{% hint style="warning" %}
**Licenças empresariais**

Se estiver atualizando a partir da versão 9.x ou anterior, instale a nova versão do produto antes de ativar as licenças. Não inicie o servidor antes de atualizar as licenças.
{% endhint %}
{% endtab %}

{% tab title="Definir Caminho de Licença via ENV" %}
{% hint style="info" %}
**Defina variável de ambiente do caminho da licença**

Crie um `PENTAHO_LICENSE_INFORMATION_PATH` variável de ambiente para que o Servidor Pentaho encontre consistentemente seu arquivo de licença.
{% endhint %}

1. Garanta que o diretório de destino exista e esteja seguro.

```bash
sudo -u pentaho mkdir -p /home/pentaho/.pentaho
sudo chown -R pentaho:pentaho /home/pentaho/.pentaho
chmod 700 /home/pentaho/.pentaho
```

2. Edite `/etc/environment` e adicione a linha abaixo (sem `export`).

```bash
sudo nano /etc/environment
```

Acrescente (ou atualize) o seguinte:

```
PENTAHO_LICENSE_INFORMATION_PATH=/home/pentaho/.pentaho/.elmLicInfo.plt
```

3. Faça logout/login ou recarregue o ambiente e verifique.

```bash
source /etc/environment
env | grep PENTAHO_LICENSE_INFORMATION_PATH
```

A `PENTAHO_LICENSE_INFORMATION_PATH` variável agora está definida.
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.pentaho.com/pentaho-11-installation-en/pentaho-11-installation-pt-br/instalacao/archive-installation/install-pentaho-server.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
