ELK-简陋笔记

2020-04-18  本文已影响0人  小浪崇礼

ES环境准备

yum install ntpdate -y ; iptabls -F ; 禁用selinux,保持每个时间得时区都是一样得

1台测试得WEB,3台ES,1台Logstash,1台kibana

Index  -- Database

Type  -- Table

Document -- Row

Field    -- Column

安装Elasticsearch,可以通过二进制的方式安装,也可以通过rpm的方式安装,推荐使用rpm的方式安装,所以找到ES的官方网站然后倒入对应的yum源,导入key

版本6.2

安装前,需要在当前操作系统安装开源你的java环境

yum install java-1.8.0-openjdk -y

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

vim /etc/yum.repos.d/elastic.repo

[elastic-6.x]

name=Elastic repository for 6.x packages

baseurl=https://artifacts.elastic.co/packages/6.x/yum

gpgcheck=1

gpgkey=https:/artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

开始安装

yum install elasticsearch -y

安装完成之后开始配置ES

vim /etc/elasticsearch/elasticsearch.yml

cluster.name: elk-cluster

node.name: node-1

path.data: /var/lib/elasticsearch

path.logs: /var/log/elasticsearch

network.host: 192.168.0.212 (ES自己的IP地址)

http.port: 9200

discovery.zen.ping.unicast.hosts: ["192.168.0.212","192.168.0.213","192.168.0.214"]

discovery.zen.minimum_master_nodes: 2

启动ES

systemctl start elasticsearch

查看对应的日志,确认没有我呢提

确认集群是否正常

curl -X GET "192.168.0.212:9200/_cat/health?v"

curl -X GET "192.168.0.212:9200/_cat/node?v"

Elasticsearch  数据操作

RestFul API 格式

curl -X<verb> '<protocol>://<host>:<port>/<path>?<query_string>' -d '<body>'

verb -- HTTP方法 : GET POST PUT HEAD DELETE

host -- ES集群中的任意节点主机名

port -- ES HTTP服务端口,默认9200

path -- 索引路径

query_string  可选的查询请求参数,例如?pretty参数将格式化输出json数据

-d 里面放一个GET的json格式请求主体

body 写进去的json格式的请求主体

列出所有的索引

curl -X GET "192.168.0.212:9200/_cat/indices?v"

创建索引

curl -X PUT "192.168.0.212:9200/log-cntf-202004"

Elasticsearch  常用的查询

match_all; from,size; match; bool; range;

Elasticsearch -- head插件

此插件可方便各种ES查询和其他各种常见的操作是图像界面操作

wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz

tar -zxvf node-v4.4.7-linux-x64.tar.gz

mv node-v4.4.7 /usr/local/node-v4.4.7

# vim /etc/profile

NODE_HOME=/usr/local/node-v4.4

PATH=$NODE_HOME/bin:$PATH

export NODE_HOME PATH

# source /etc/profile

# git clone git://github.com/mobz/elasticsearch-head.git

cd elasticsearch-head

npm install

npm run start

Logstash

配置好Logstash的yum源,然后直接使用yum安装rpm包

yum install logstash -y 注意装的时候跟ES版本一样

条件判断

输入(Input)插件

Stdin(标准输入)

input {

stdin{

}

}

filter {

}

output {

stdout{

codec => rubydebug

}

}

File(文件)

input {

file {

path => "/var/log/messages"

tags => "cntf"

type => "syslog"

}

}

filter {

}

output {

stdout {

codec => rubdebug

}

}

Tcp

input {

tcp {

port => 34567

type => "nc"

}

}

filter {

}

output {

stdout {

codec => rubdebug

}

}

Beats

input {

beats {

port => 6088

}

}

filter {

}

output {

stdout {

codec => rubydebug

}

}

/usr/share/logstash/bin/logstash -t -f /etc/logstash/conf.d/cntf.conf

上述是测试配置文件是否正确

/usr/share/logstash/bin/logstash -r -f /etc/logstash/conf.d/cntf.conf

启动logstash

Logstash -- 编码插件

input {

stdin {

codec =>json {

charset =>["utf-8"]

}

}

}

filter{

}

output {

stdout {

codec => rubdebug

}

}

下面是通过正则匹配一些特定的内容,进行输出到一行,经常用到情景是java异常日志输出的格式

input {

stdin {

codec =>multiline {

pattern => "^\s"

what => "previous"

}

}

}

filter{

}

output {

stdout {

codec => rubdebug

}

}

Logstash  -- 过滤器(Filter) 插件

input {

stdin {

}

}

filter {

json {

source => "message"

target => "content"

}

}

output {

stdout {

codec => rubdebug

}

}

kv的形式 key-value

input {

stdin {

}

}

filter {

kv {

field_split => "&?"

}

}

output {

stdout {

codec => rubdebug

}

}

input {

stdin {

}

}

filter {

kv {

field_split_pattern => ":+"

}

}

output {

stdout {

codec => rubdebug

}

}

Logstash - 过滤器(Filter) Grok插件

grok在线解析

grokdebug.herokuapp.com

Kibana 安装

yum install kibana -y

安装好kibana之后,然后通过配置kibana的配置文件,收集Elasticsearch所拿到的日志

Kibana 组件X-Pack但是是收费的

为了安全,通过nginx提供http的基础认证

nginx配置认证的配置文件

location / {

proxy_pass http://192.168.0.212:5601;

auth_basic "Please input your user&pasword";

auth_basic_user_file /usr/local/nginx/conf/passwd.db;

}

openssl passwd -crypt 123456 将生成的加密密码写入到下面的文件

vim /usr/local/nginx/conf/passwd.db

cntf:faHgR3x/qNehA

加入redis

安装redis,记得使用epel安装源

file -> logstash shipper -> redis -> logstash indexer -> elasticsearch -> kibana

加入Filebeat

filebeat也是个收集日志的组件

安装filebeat

yum install filebeat -y

file -> filebeat -> redis -> logstash -> elasticsearch -> kibana

生产如何上线ELK

1.日志分类

系统日志 rsyslog  logstash syslog插件

访问日志 nginx    logstash codec json

错误日志 file    logstash file+ mulitline

运行日志 file    logstash codec json

设备日志 syslog  logstash syslog 插件

debug日志 file    logstash json or mulitline

2.日志标准化

路径  固定

格式  json

3.系统日志--错误日志--运行日志--访问日志

上一篇 下一篇

猜你喜欢

热点阅读