ELK日志分析系统搭建使用
ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。但现在新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,但此次并不添加filebeat,仍然以es、logstash、kibana做搭建使用。
使用环境:centos6.5 192.168.253.138作为日志来源服务器 apache
centos7 192.168.253.139 作为显示终端服务器
安装jdk
首先安装Java,版本1.8以上。
安装Elasticsearch
下载elasticsearch ,
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.2.tar.gz
修改解压文件中的config/elasticsearch.yml 文件
# 这里指定的是集群名称,需要修改为对应的,开启了自发现功能后,ES会按照此集群名称进行集群发现
cluster.name: es_cluster
node.name: es_cluster_1
# 数据目录
path.data: /data/data
# log 目录
path.logs: /data/logs
# 修改一下ES的监听地址,这样别的机器也可以访问
network.host: 192.168.253.139
# 默认的端口号
http.port: 9200
discovery.zen.ping.unicast.hosts: ["192.168.253.138", "192.168.253.139"]
在使用中可能会因为系统内存等问题导致启动失败,所以可以预调整系统参数。
设置内核参数
vi /etc/sysctl.conf
# 增加以下参数
vm.max_map_count=655360
执行以下命令,确保生效配置生效:
sysctl -p
设置资源参数
vi /etc/security/limits.conf
# 修改
* soft nofile 65536
* hard nofile 131072
* soft nproc 65536
* hard nproc 131072
设置用户资源参数
vi /etc/security/limits.d/20-nproc.conf
# 设置elk用户参数
elk soft nproc 65536
启动elk需要非root用户,所以创建elk用户。
useradd elk #创建用户elk
groupadd elk #创建组elk
useradd elk -g elk #将用户添加到组
mkdir -pv /data/{data,logs} # 创建数据和日志目录
# 修改文件所有者
chown -R elk:elk /data/
chown -R elk:elk /etc/elasticsearch/
切换到elk用户,启动服务
启动文件 /etc/elasticsearch/bin/elasticsearch
服务器要关闭防火墙
systemctl stop firewalld.service
这时候可以看到log输出,节点正常启动.
用浏览器访问,同时可以正常使用
安装Logstash
下载解压
wget https://artifacts.elastic.co/downloads/logstash/logstash-6.4.2.tar.gz
在解压后目录执行
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
在命令行输入什么内容讲原样输出,比如:
显示正常以后再去修改配置文件,需要自己添加,创建如下内容文件。
cat logstash-simple.conf
input{
file {
path => "/var/log/httpd/*"
start_position => beginning
}
}
output {
stdout { codec=> rubydebug }
elasticsearch {
hosts => "192.168.253.132:9200"
protocol => "http"
index => "logstash-%{+YYYY-MM}"
}
}
开启服务,执行如下命令:
/usr/share/logstash/bin/logstash -f /usr/share/logstash/config/logstash-simple.conf
我们可以查看 ES 是否接收到了数据:
Kibana的安装
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.2-linux-x86_64.tar.gz
编辑kibana.yml配置文件
vi /usr/share/kibana/config/kibana.yml
修改以下参数:
server.port: 5601 #开启默认端口5601,本文修改默认端口为5602
server.host: “192.168.253.139” #站点地址
elasticsearch.url: http://192.168.253.139:9200 #指向elasticsearch服务的ip地址
kibana.index: “.kibana”
启动
执行以下命令启动:
/usr/share/kibana/bin/kibana
测试浏览器访问
访问:http://192.168.253.139:5602
正常启动后,需要配置索引,设置logstash-* ,添加索引和Available fields后,点击Discover就可以看到logstash传输过来的日志信息。
然后可以手动添加fields参数或者创建图表。
yum 安装
以上安装方式为下载配置安装,可以使用yum安装。
# 导入私钥
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
# 添加yum源
vim /etc/yum.repos.d/es.repo
yum源内容:
[elasticsearch-6.x]
name=Elasticsearch 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
执行安装:
# 安装java + ELK
yum install java-1.8.0-openjdk.x86_64 elasticsearch.noarch kibana.x86_64 logstash.noarch -y
# 修改配置文件
vi /etc/logstash/logstash.yml
vi /etc/elasticsearch/elasticsearch.yml
vi /etc/kibana/kibana.yml
# 启动服务
systemctl start logstash.service elasticsearch.service kibana.service
配置文件和上文相同修改,如若无法访问,关闭防火墙 。
参考链接:
https://blog.csdn.net/KingBoyWorld/article/details/78555120