ELKF 安装
ELK 安装
ELK 对版本要求严格,建议 ELK+F 的版本都一致
首先需要设置 selinux 为 disabled
关闭防火墙或者开放 9200、5601、5044
此处不详述
一般架构图
各个软件的功能
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 用户启动
[root@FDT-144 src]# adduser elk
[root@FDT-144 src]# passwd elk
更改用户 elk 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新
02:配置系统打开文件数的限制(在文件的最后 end 之前添加)
[root@FDT-144 src]# vi /etc/security/limits.conf
* soft nofile 1024000
* hard nofile 1024000
[root@FDT-144 src]# vim /etc/security/limits.d/20-nproc.conf
* soft nproc 1024000
* soft nofile 1024000
* hard nofile 1024000
03:调整进程中内存映射区域的最大数量(01 - 03都做完后需重启服务器)
[root@FDT-144 src]# vim /etc/sysctl.conf
vm.max_map_count=1024000
04:开始安装
[root@FDT-144]# cd /usr/local/src/
[root@FDT-144 src]# tar xvf /usr/local/src/elasticsearch-6.5.0.tar.gz
[root@FDT-144 src]# mkdir /data/elk
[root@FDT-144 src]# mv elasticsearch-6.5.0 /data/elk/elasticsearch
05:修改配置文件
[root@FDT-144 src]# cd /data/elk/elasticsearch/config/
[root@FDT-144 config]# vim elasticsearch.yml
network.host: 192.168.36.144
http.port: 9200
安装 Kibana
01:解压包并剪切到合适位置
[root@FDT-144 config]# cd /usr/local/src/
[root@FDT-144 src]# tar xvf kibana-6.5.0-linux-x86_64.tar.gz
[root@FDT-144 src]# mv kibana-6.5.0-linux-x86_64 /data/elk/kibana
02:修改配置文件(配置 kibana 的端口为 5601,host 是 192.168.36.144,以及连接 Elasticsearch 的信息)
[root@FDT-144 src]# cd /data/elk/kibana/config/
[root@FDT-144 config]# vim kibana.yml
server.port: 5601
server.host: "192.168.36.144"
elasticsearch.url: "http://192.168.36.144:9200"
安装 Logstash
01:解压包并剪切到合适位置
[root@FDT-144 config]# cd /usr/local/src/
[root@FDT-144 src]# unzip logstash-6.5.0.zip
[root@FDT-144 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 有设置相关的用户名密码,这里不用,注释掉。
[root@FDT-144 src]# cd /data/elk/logstash/config/
[root@FDT-144 config]# mv logstash-sample.conf logstash.conf
[root@FDT-144 config]# vim 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:授权
[root@FDT-144 config]# cd /data/
[root@FDT-144 data]# chmod -R 777 elk/
02:启动 Elasticsearch
切换到 elk 用户,cd 到 Elasticsearch 的 bin 目录下,启动 Elasticsearch
[root@FDT-144 data]# su elk
[elk@FDT-144 data]$ cd /data/elk/elasticsearch/bin/
[elk@FDT-144 bin]$ ./elasticsearch -d
03:启动 Kibana
[elk@FDT-144 bin]$ cd /data/elk/kibana/bin/
[elk@FDT-144 bin]$ ./kibana &
04:启动 Logstash
[elk@FDT-144 bin]$ cd /data/elk/logstash/bin/
[elk@FDT-144 bin]$ ./logstash -f ../config/logstash.conf &
测试是否正确启动
浏览器访问 http://192.168.36.144:5601
浏览器访问 http://192.168.36.144:9200/
能正常访问则正常启动
汉化 Kibana
请注意,汉化是不可逆行为,建议先备份
[root@FDT-144 ~]# cd /usr/local/src/
[root@FDT-144 src]# wget https://github.com/anbai-inc/Kibana_Hanization/archive/master.zip
[root@FDT-144 src]# unzip master.zip
[root@FDT-144 src]# cd Kibana_Hanization-master/
[root@FDT-144 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)
[root@FDT-144 Kibana_Hanization-master]# kill -9 3165
[root@FDT-144 Kibana_Hanization-master]# python2.7 main.py /data/elk/kibana/
[root@FDT-144 Kibana_Hanization-master]# su elk
[elk@FDT-144 Kibana_Hanization-master]$ cd /data/elk/kibana/bin/
[elk@FDT-144 bin]$ ./kibana &
在客户端安装 FileBeat
这里用一台测试服务器做实验(36.68)
[root@zabbix ~]# cd /usr/local/src/
[root@zabbix src]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.0-linux-x86_64.tar.gz
[root@zabbix src]# tar xvf filebeat-6.5.0-linux-x86_64.tar.gz
[root@zabbix src]# mv filebeat-6.5.0-linux-x86_64 /data/filebeat
[root@zabbix src]# cd /data/filebeat/
[root@zabbix 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"
[root@zabbix filebeat]# mv filebeat.yml filebeat_zabbix.yml
[root@zabbix filebeat]# ./filebeat -e -c filebeat_zabbix.yml &
验证
刷新 Kibana 页面即可看到有新的内容