quarta-feira, 4 de outubro de 2017

Cliente Telegram no seu terminal bash – Debian 8/9

Projeto: https://github.com/vysheng/tg
Distribuição testadas: Debian 8& 9 / Instalação Limpa (Tutorial de instalação aqui)
Instalando pacotes necessários
1
2
3
4
# apt install git libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make build-essential zlib1g-dev
# cd /tmp/
# git clone --recursive https://github.com/vysheng/tg.git 
# cd tg
Agora vamos compila-lo:
Debian 8
1
2
# ./configure
# make
Debian 9 precisei desativar o openssl:
1
2
3
# apt install libcrypto++-dev libgcrypt11-dev
# ./configure --disable-openssl
# make
screenshot_20160924_215935 screenshot_20160924_220232
1
2
3
4
# mkdir /opt/telegram
# cp bin/telegram-cli /opt/telegram/
# cp tg-server.pub /opt/telegram/
# cd /opt/telegram/
Crie o arquivo telegram.config, utilizarei o editor vim, utilize o de sua preferência.
1
# vim telegram.config
Adicione as seguintes linhas:
1
2
3
4
5
6
7
8
9
default_profile = "rrprofile";
 
rrprofile = {
    config_directory = "/opt/telegram/";
    #test = false;
    #msg_num = true;
    #binlog_enabled = true;
    log_level = 2;
};
Vamos inicia-lo! Para isso digite o seguinte comando:
1
# ./telegram-cli --rsa-key tg-server.pub --config telegram.config
change_user_group: can't find the user telegramd to switch to
Telegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show_license' for details.
Telegram-cli uses libtgl version 2.1.0
Telegram-cli includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/)
[/opt/telegram//downloads] created
phone number: +555599999999 (Infome seu nº celular)
code ('CALL' for phone code): 12345 (Código via SMS)
password: (Se sua conto tiver senha)
>
Agora o telegram-cli está configurado para utilizar a sua conta.
O comando contact_list irá exibir seus contatos e o dialog_list suas conversas. Execute user_info seguido do nome do contato conforme está na sua agenda, se quiser enviar para um grupo, execute chat_info seguido do nome do grupo. Observe que a tecla TAB pode ser utilizada para autocompletar as palavras.
Nota: nos nomes de contatos e grupos, espaços são transformados em underscore (_), cerquilhas (#) em arrobas (@) e contatos com mesmo nome tem um #1 acrescentado ao nome.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
> contact_list 
Nome Contato1
Nome Contato2
Nome Contato3
Nome Contato4
> user_info Rudimar_Remontti 
User Rudimar Remontti @remontti (#123456789):
        phone: 555599999999
        offline (was online [2016/09/24 22:14:23])
>
> chat_info Tutorial 
Chat Tutorial updated members
Chat Tutorial (id 987654321) members:
                Fulano de tal invited by Rudimar Remontti at [2016/09/24 22:22:03]
                Rudimar Remontti invited by user#0 at [1969/12/31 21:00:00]
>
> msg Rudimar_Remontti Teste
 [23:29]  Rudimar Remontti <<< Teste
> msg Rudimar_Remontti Mensagem via terminal ;) 
 [23:29]  Rudimar Remontti <<< Mensagem via terminal ;)
> 
> quit
screenshot_20160924_234513
screenshot_20160924_234841
Em https://github.com/vysheng/tg você encontra uma lista com todos os comandos.
Vamos criar um arquivo chamado de telegram-on para entrarmos automaticamente na nossa qual já está autorizada.
1
# vim /opt/telegram/telegram-on
Adicione:
1
2
#!/bin/bash
/opt/telegram/telegram-cli --rsa-key /opt/telegram/tg-server.pub --config /opt/telegram/telegram.config
Alteramos as permissões do arquivo para podermos executar, e criamos uma atalho em /usr/bin/ para podermos rodar o comando a partir de qualquer diretório.
1
2
# chmod  777 /opt/telegram/telegram-on
# ln -s /opt/telegram/telegram-on /usr/bin/telegram-on
Agora basta dar o comando # telegram-on
Com base no que vimos podemos “ter ideias” exemplo um script para enviar alguns alertas do nosso servidor, utilizo algo assim com o Zabbix.
Vamos ao script.
Crie o arquivo /opt/telegram/telegram-cmd
1
# vim /opt/telegram/telegram-cmd
Adicione:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
 
MAIN_DIRECTORY="/opt/telegram/"
# Utilize: user#user_id ou chat#chat_id
# ./telegram-cmd user#123456789 "Minha mensagem"
# ./telegram-cmd chat#987654321 "Minha mensagem"
 
USER=$1
SUBJECT=$2
TEXT=$3
 
cd $MAIN_DIRECTORY
if [[ $? -ne 0 ]]; then
        echo "Erro! Diretorio nao encontrado."
        exit 1
fi
 
$MAIN_DIRECTORY/telegram-cli -k $MAIN_DIRECTORY/tg-server.pub -c $MAIN_DIRECTORY/telegram.config -WR -U rrprofile -e "msg $USER $SUBJECT" || exit 1
 
exit 0
Alteramos as permissão para execução, e vamos também criar um atalho em /usr/bin/ para executar o comando de qualquer diretório.
1
2
# chmod  777 /opt/telegram/telegram-cmd
# ln -s /opt/telegram/telegram-cmd /usr/bin/telegram-cmd
Perceba que quando damos o comando user_info ou chat_info é exibido um código de usuário ou de grupo, nestes casos será esse “ID” que utilizaremos para escolher nosso destinatário.
> user_info Rudimar_Remontti 
User Rudimar Remontti @remontti (#123456789):
        phone: 555599999999
        offline (was online [2016/09/24 22:14:23])
>
> chat_info Tutorial 
Chat Tutorial updated members
Chat Tutorial (id 987654321) members:
                Fulano de tal invited by Rudimar Remontti at [2016/09/24 22:22:03]
                Rudimar Remontti invited by user#0 at [1969/12/31 21:00:00]
>
Agora que sabemos os ID de user ou chat vamos aos teste:
1
2
# telegram-cmd user#123456789 "Minha mensagem"
# telegram-cmd chat#987654321 "Minha mensagem"

screenshot_20160925_150502

Fonte:
http://blog.remontti.com.br/1325

Zabbix 3.0.x com notificações via Telegram

z-t
Antes de começar é necessário fazer o tutorial onde explico como ter um Cliente Telegram!
Agora que você já terminou o tutorial vamos lá!
Primeiramente vamos deixar de dono do /opt/telegram nosso usuário zabbix.
# chown zabbix. -R /opt/telegram
Vamos informar nosso diretório /opt/telegram para nosso servidor zabbix.
# vim /etc/zabbix/zabbix_server.conf
Procure por AlertScriptsPath
Comente:
#AlertScriptsPath=/usr/lib/zabbix/alertscripts
Adicione:
AlertScriptsPath=/opt/telegram
Salve o arquivo e restarte o servidor zabbix.
# /etc/init.d/zabbix-server restart
Agora vamos a interface web do Zabbix:
Menu:
Administração -> Tipos de mídia
screenshot_20160925_153600
Na lateral direita, clique no botão [Criar tipo de mídia] e preencha conforme a imagem.
Nome: Telegram
Tipo: Script
Nome script: telegram-cmd
Parâmetros do script (Adicione 2)
{ALERT.SENDTO}
{ALERT.SUBJECT}
screenshot_20160925_193910
Menu:
Administração -> Usuários
Edite um de seus usuários (no meu caso sera o Admin) e clique na aba Mídia
screenshot_20160925_165133
Clique em Adicionar, uma nova janela se abrirá conforme imagem a baixo:
screenshot_20160925_165238
Tipo: Telgram
Enviar para: user#201149282 OU chat#123456789
Escolha quando ele estará funcionando: 1-7,00:00-24:00 (Sempre)
Maquer as classificações de alertas que queira receber e e marque p box Ativo.
Agora Atualize seu usuário
screenshot_20160925_165650
Menu:
Configurações -> Ações
Clique no botão do lado direito Criar ação
screenshot_20160925_195040
Nome: Relatar um problema
Assunto padrão:
1
[{TRIGGER.STATUS}]{HOST.NAME}{TRIGGER.NAME} = {ITEM.NAME1} {ITEM.VALUE1}
Mensagem padrão:
1
2
3
4
5
6
7
8
Trigger: {TRIGGER.NAME}
Status: {TRIGGER.STATUS}
Severidade: {TRIGGER.SEVERITY}
 
Item values:
1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
 
ID: {EVENT.ID}
Agora na aba Condições vamos adicionar também a condição de OK, assim receberemos uma alerta de quando o problema foi resolvido.
Para isso va em:
Nova condição e selecione Valor da trigger = OK e clique em Adiconar
screenshot_20160925_170330
screenshot_20160925_170335
Agora na aba Operações vamos criar uma nova Operações da ação
Clique em nova:
Em -> Enviar para usuários: Adicione o usuário que você c configurou a mídia.
Em -> Enviar apenas para: Selecione Telegram
Agora clique no botão Adicionar (O botão texto. o Adicionar da Operações)
screenshot_20160925_170809
screenshot_20160925_170824
Agora sim clique no botão Adicionar
screenshot_20160925_170915
Pronto! Agora para testar você pode criar um host, um IP da sua rede e depois alterar para algum endereço IP que não responda.






screenshot_20160925_195547

Fonte:
http://blog.remontti.com.br/1366

Instalação do Zabbix 3.0.x/3.4.x no Debian 9 Stretch com banco de dados MariaBD


O Zabbix é uma solução de nível enterprise, de código aberto. O Zabbix é um software que monitora vários parâmetros da rede, dos servidores e da saúde dos serviços. Utiliza-se de um mecanismo flexível de notificação que permite configurar alertas por e-mail entre outros como Telegram, para praticamente qualquer evento. As notificações permitem que se reaja rapidamente à problemas no ambiente. O Zabbix oferece excelentes recursos de relatórios e visualização de dados armazenados. Isso faz com que o Zabbix seja a ferramenta ideal para planejamento de capacidade.
Distribuição utilizada: Debian 9 (Stretch ) / Instalação Limpa (Tutorial de instalação aqui)
Requisitos:
Servidor web Apache2, PHP 7.0, MariaDB, PHPMyAdmin “LAMP” no Debian 9 Stretch
Atualize o repositório:
# apt update && apt upgrade
Para instalação do Zabbix 3.4.x é necessário incluir no repositório atualizado do Zabbix, caso deseje instalar a versão 3.0.x não é necessário incluir, pois a versão 3.0 é a reconhecida com a versão estável do Debian 9.
Versão 3.4.X
# wget http://repo.zabbix.com/zabbix/3.4/debian/pool/main/z/zabbix-release/zabbix-release_3.4-1+stretch_all.deb
# dpkg -i zabbix-release_3.4-1+stretch_all.deb
# apt update
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
Versão 3.0.x (
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent
Vamos criar uma base de dados chamada zabbix e um usuário também chamado de zabbix no MariaDB.
# mariadb
1
2
3
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'SENHA-USUARIO-ZABBIX';
quit;
Importe o esquema de tabelas e dados padrões.
Versão 3.4.x
zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix -p zabbix
Versão 3.0.x
# zcat /usr/share/zabbix-server-mysql/{schema,images,data}.sql.gz | mysql -uzabbix -p zabbix
Digite a senha de seu usuário zabbix criada no passo anterior para importar as tabelas.
Agora vamos editar o arquivo zabbix_server.conf para informar os dados para conexão com o MySQL.
# vim /etc/zabbix/zabbix_server.conf
1
2
3
4
5
6
7
8
9
#...
DBHost=localhost
#...
DBName=zabbix
#...
DBUser=zabbix
#...
DBPassword=SENHA-USUARIO-ZABBIX
#...
Versão 3.4.x
# vim /etc/apache2/conf-enabled/zabbix.conf
Procure por:
# php_value date.timezone Europe/Riga
e altere por: (ou sua região)
php_value date.timezone America/Sao_Paulo
# apt install php7.0-bcmath php7.0-mbstring php-sabre-xml
# /etc/init.d/apache2 restart
Versão 3.0.x
Para versão 3.0.x seá necessario criar a configuração no apache editando:
Crie o arquivo de configuração para o Apache
# vim /etc/apache2/conf-enabled/zabbix.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
## Zabbix
 
<IfModule mod_alias.c>
    Alias /zabbix /usr/share/zabbix
</IfModule>
 
<Directory "/usr/share/zabbix">
    Options FollowSymLinks
    AllowOverride None
 
    <IfModule mod_php7.c>
        php_value max_execution_time 300
        php_value memory_limit 128M
        php_value post_max_size 16M
        php_value upload_max_filesize 2M
        php_value max_input_time 300
        php_value always_populate_raw_post_data -1
        php_value date.timezone America/Sao_Paulo
    </IfModule>
</Directory>
 
<Directory ~ "^/usr/share/zabbix/(conf|app|include|local)/">
    <files *.php>
    </files>
</Directory>
Após a alteração do arquivo de configuração será necessário o reinicio do processo do servidor web (Apache).
# /etc/init.d/apache2 restart
Iniciando o Zabbix Server e o Agente.
# systemctl enable zabbix-server
# systemctl enable zabbix-agent
# /etc/init.d/zabbix-server restart
# /etc/init.d/zabbix-agent restart
A interface web do Zabbix estará disponível em http://SEU-IP/zabbix através do seu navegador.
O usuário e senha padrões são: Admin/zabbix

screenshot_20160910_193954
[Next step]
screenshot_20160910_194002
Tudo deve estar ok [Next step]
screenshot_20160910_194011
Informe sua senha de conexão ao banco de dados MariaDB. [Next step]
screenshot_20160910_194018
[Next step]
screenshot_20160910_194024
Faça isso apenas na Versão 3.0.x
Vamos preparar o nosso arquivo para receber as configurações web:
# touch /etc/zabbix/zabbix.conf.php
# chown www-data. /etc/zabbix/zabbix.conf.php
[Next step]
screenshot_20160910_194028
[Finish]
screenshot_20160910_194043
Usuário: Admin Senha: zabbix
screenshot_20160910_194105
Zabbix instalado com sucesso!
Dica, para não deixar o root do MariaDB sem senha, segue a dica de como alterar:
# mariadb -u root
1
2
3
4
5
USE mysql;
UPDATE user SET password=PASSWORD('SUA-SENHA') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
Você pode gostar de:

* - Cliente Telegram no seu terminal bash – Debian/Ubuntu
* - Zabbix com notificações via Telegram

Fonte:
http://blog.remontti.com.br/2126
https://www.zabbix.com/documentation/