ELKF 安装

ELK 安装

ELK 对版本要求严格,建议 ELK+F 的版本都一致
首先需要设置 selinux 为 disabled
关闭防火墙或者开放 9200、5601、5044
此处不详述


一般架构图

53735-wdnkdiwzwb.png


各个软件的功能

Elasticsearch:是基于 Lucene 的开源全文搜索引擎,在这里充当日志存储的角色
Logstash:日志搜集、过滤的软件,在这里接收 FileBeat 传过来的日志,充当过滤日志角色
Kibana:是一个开源的分析和可视化平台,从 Elasticsearch 里把日志查询展现出来。
FileBeat:负责日志收集,传输到 Logstash 进行过滤处理后,再录入到 Elasticsearch。


下载 ELK

因条件所限,这里把 ELK 均装在同一台服务器中,这里使用最新稳定的 6.5.0 版本
ELK 要求 java 环境,先自行安装 jdk8
Elasticsearch:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.tar.gz
Logstash:https://artifacts.elastic.co/downloads/logstash/logstash-6.5.0.zip
Kibana:https://artifacts.elastic.co/downloads/kibana/kibana-6.5.0-linux-x86_64.tar.gz
具体命令:

cd /usr/local/src
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.tar.gz
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.5.0.zip
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.0-linux-x86_64.tar.gz

安装 Elasticsearch

01:新建一个 elk 用户,因为 elk 不能以 root 用户启动

[[email protected] src]# adduser elk
[[email protected] src]# passwd elk
更改用户 elk 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新

02:配置系统打开文件数的限制(在文件的最后 end 之前添加)

[[email protected] src]# vi /etc/security/limits.conf
* soft nofile 1024000
* hard nofile 1024000
[[email protected] src]# vim /etc/security/limits.d/20-nproc.conf
*          soft    nproc     1024000
*          soft    nofile     1024000
*          hard   nofile     1024000

03:调整进程中内存映射区域的最大数量(01 - 03都做完后需重启服务器)

[[email protected] src]# vim /etc/sysctl.conf
vm.max_map_count=1024000

04:开始安装

[[email protected]]# cd /usr/local/src/
[[email protected] src]# tar xvf /usr/local/src/elasticsearch-6.5.0.tar.gz 
[[email protected] src]# mkdir /data/elk
[[email protected] src]# mv elasticsearch-6.5.0 /data/elk/elasticsearch
05:修改配置文件
[[email protected] src]# cd /data/elk/elasticsearch/config/
[[email protected] config]# vim elasticsearch.yml
network.host: 192.168.36.144
http.port: 9200

安装 Kibana

01:解压包并剪切到合适位置

[[email protected] config]# cd /usr/local/src/
[[email protected] src]# tar xvf kibana-6.5.0-linux-x86_64.tar.gz
[[email protected] src]# mv kibana-6.5.0-linux-x86_64 /data/elk/kibana

02:修改配置文件(配置 kibana 的端口为 5601,host 是 192.168.36.144,以及连接 Elasticsearch 的信息)

[[email protected] src]# cd /data/elk/kibana/config/
[[email protected] config]# vim kibana.yml
server.port: 5601
server.host: "192.168.36.144"
elasticsearch.url: "http://192.168.36.144:9200"

安装 Logstash

01:解压包并剪切到合适位置

[[email protected] config]# cd /usr/local/src/
[[email protected] src]# unzip logstash-6.5.0.zip
[[email protected] src]# mv logstash-6.5.0 /data/elk/logstash

02:修改配置文件
port=>5044:这个是 Logstash 监听的端口,filebeat 到时发送的日志就是发送到 Logstash 的 5044 端口
host:意思是 Logstash 把日志发送到这个 host 的 Elasticsearch 上。
index:发送到 Elasticsearch 的时候创建的 index 命名规则
user 和 password:Elasticsearch 有设置相关的用户名密码,这里不用,注释掉。

[[email protected] src]# cd /data/elk/logstash/config/
[[email protected] config]# mv logstash-sample.conf logstash.conf
input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.36.144:9200"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

启动各个应用

01:授权

[[email protected] config]# cd /data/
[[email protected] data]# chmod -R 777 elk/

02:启动 Elasticsearch
切换到 elk 用户,cd 到 Elasticsearch 的 bin 目录下,启动 Elasticsearch

[[email protected] data]# su elk
[[email protected] data]$ cd /data/elk/elasticsearch/bin/
[[email protected] bin]$ ./elasticsearch -d

03:启动 Kibana

[[email protected] bin]$ cd /data/elk/kibana/bin/
[[email protected] bin]$ ./kibana &

04:启动 Logstash

[[email protected] bin]$ cd /data/elk/logstash/bin/
[[email protected] bin]$ ./logstash -f ../config/logstash.conf &

测试是否正确启动

浏览器访问 http://192.168.36.144:5601
浏览器访问 http://192.168.36.144:9200/
能正常访问则正常启动


汉化 Kibana

请注意,汉化是不可逆行为,建议先备份

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget https://github.com/anbai-inc/Kibana_Hanization/archive/master.zip
[[email protected] src]# unzip master.zip
[[email protected] src]# cd Kibana_Hanization-master/
[[email protected] Kibana_Hanization-master]# lsof -i:5601
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    3165  elk   10u  IPv4  18962      0t0  TCP 192.168.36.144:esmagent (LISTEN)
[[email protected] Kibana_Hanization-master]# kill -9 3165
[[email protected] Kibana_Hanization-master]# python2.7 main.py /data/elk/kibana/
[[email protected] Kibana_Hanization-master]# su elk
[[email protected] Kibana_Hanization-master]$ cd /data/elk/kibana/bin/
[[email protected] bin]$ ./kibana &

在客户端安装 FileBeat

这里用一台测试服务器做实验(36.68)

[[email protected] ~]# cd /usr/local/src/
[[email protected] src]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.0-linux-x86_64.tar.gz
[[email protected] src]# tar xvf filebeat-6.5.0-linux-x86_64.tar.gz
[[email protected] src]# mv filebeat-6.5.0-linux-x86_64 /data/filebeat
[[email protected] src]# cd /data/filebeat/
[[email protected] filebeat]# vim filebeat.yml
- type: log
  enabled: true
  paths:
    - /var/log/zabbix/zabbix_server.log
  multiline.pattern: ^\d{4}
  multiline.negate: true
  multiline.match: after
  scan_frequency: 60
output.logstash:
  hosts: ["192.168.36.144:5044"]
  index: "zabbix_server"
[[email protected] filebeat]# mv filebeat.yml filebeat_zabbix.yml
[[email protected] filebeat]# ./filebeat -e -c filebeat_zabbix.yml &

验证

刷新 Kibana 页面即可看到有新的内容
27066-5z8vyi63bhp.png

elkelkf

我来吐槽

*

*