Os principais conceitos do serviço de processamento de dados Logstash e seu uso simples
Diretório de artigos
1. Conceitos principais do serviço Logstash
O Logstash pode formatar e filtrar os logs coletados e, finalmente, enviar os dados para o armazenamento do Elasticsearch.
O Logstash é dividido em três configurações:
- Entrada: A fonte de dados de log, que pode ser stdin, file, tcp, redis, syslog, kafka, etc.
- Filtro: Filtre e formate dados de log. Existem muitos plug-ins de filtro: regularização Grok, processamento de data e hora, codificação Json e modificação de dados Mutate.
- Saída: Saída dos logs coletados para o armazenamento especificado, que pode ser Stdout, File, TCP, Redis, ES, etc.
2. Implante o Logstash e o uso básico
2.1. Implantar o Logstash
O pacote binário do Logstash não integra o jdk e precisa instalar o java1.8.
1.安装java环境
[root@elkstack-1 logstash]# yum -y install java-1.8.0-openjdk
2.部署logstash
[root@elkstack-1 tools]# tar xf logstash-7.9.3.tar.gz -C /data/elk
[root@elkstack-1 elk]# mv logstash-7.9.3/ logstash
3.配置logstash服务启动脚本
[root@elkstack-1 logstash]# vim /usr/lib/systemd/system/logstash.service
[Unit]
Description=logstash
[Service]
ExecStart=/data/elk/logstash/bin/logstash
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
[Install]
WantedBy=multi-user.target
4.启动logstash
[root@elkstack-1 logstash]# systemctl start logstash
2.2. Uso básico do Logstash
O Logstash adiciona três campos ao log por padrão.
"@timestamp" marca o momento em que o evento ocorreu
"host" marca o host onde ocorreu o evento
"tipo" marca o tipo exclusivo do evento
Parâmetros de formato de comando do Logstash.
-e
: O arquivo de configuração em forma de string.
-f
: Especifica o arquivo de configuração em execução.
-t
: Verifique a sintaxe do arquivo de configuração.
Logstash pega logs de stdin e imprime em stdout
[root@elkstack-1 ~]# /data/elk/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
······
hello jiangxl #输入内容
{ #输出
"@timestamp" => 2021-12-08T08:27:54.311Z,
"message" => "hello jiangxl",
"@version" => "1",
"host" => "elkstack-1"
}
日志从标准输入中获取===>输出到标准输出
{
"@timestamp" => 2021-12-08T08:32:38.781Z,
"message" => "日志从标准输入\\xE9中获取存\\xE8===>输出到标准输出",
"@version" => "1",
"host" => "elkstack-1"
}
A string especificada após o comando logstash -e é na verdade um formato de arquivo de configuração, mas o conteúdo do arquivo de configuração é combinado em uma linha para execução. Nota: logstash -e só pode ser usado com sucesso sem configurar o diretório do arquivo de configuração logstash. Caso contrário , um erro será relatado ao usar este comando para simular entrada e saída de dados.
/data/elk/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
等同于下面的logstash配置文件内容格式
input{
stdin{
}
}
filter {
}
output{
stdout
{
codec=>rubydebug
}
}
2.3. Configure o caminho do arquivo de configuração do logstash
1.配置logstash
[root@elkstack-1 logstash]# vim config/logstash.yml
pipeline: #管道配置
batch:
size: 125 #管道批处理大小
delay: 5 #管道批处理延迟
pipeline.ordered: auto
#config.reload.automatic: false #是否启用
#config.reload.interval: 3s
#http.enabled: true
path.config: /data/elk/logstash/conf.d #配置文件路径
http.host: 0.0.0.0 #监听地址
http.port: 9600-9700 #使用的端口号
log.level: info #日志级别
path.logs: /data/elk/logstash/logs #日志存储路径
2.创建配置文件目录
[root@elkstack-1 logstash]# mkdir /data/elk/logstash/conf.d
3.重启logstash
[root@elkstack-1 logstash]# systemctl restart logstash