一、介绍

ELK是三款开源软件的缩写,即:ElasticSearch + Logstash + Kibana。这三个工具组合形成了一套实用、易用的监控架构,可抓取系统日志、apache日志、nginx日志、mysql日志等多种日志类型,目前很多公司用它来搭建可视化的集中式日志分析平台。
ElasticSearch:是一个分布式的RESTful风格的搜索和数据分析引擎,同时还提供了集中存储功能,它主要负责将logstash抓取来的日志数据进行检索、查询、分析等。
Logstash:日志处理工具,负责日志收集、转换、解析等,并将解析后的日志推送给ElasticSearch进行检索。
Kibana:Web前端,可以将ElasticSearch检索后的日志转化为各种图表,为用户提供数据可视化支持。
Filebeat:轻量型日志采集器,负责采集文件形式的日志,并将采集来的日志推送给logstash进行处理。
Winlogbeat:轻量型windows事件日志采集器,负责采集wondows的事件日志,并将采集来的日志推送给logstash进行处理。

二、安装环境

由于我这边是测试环境,所以ElasticSearch + Logstash + Kibana这三个软件我都是装在一台机器上面,如果是生产环境,建议分开部署,并且ElasticSearch可配置成集群方式。
IP:192.168.175.152(ELK服务器,CentOS 7.5)

IP:192.168.175.153(filebeat,nginx服务器,apache服务器,CentOS 7.5)

三、准备工作

禁用selinux、关闭防火墙

 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

 sed -i ‘s/SELINUXTYPE=targeted/#&/‘ /etc/selinux/config

 setenforce 0 # 可以设置配置文件永久关闭

 systemctl stop firewalld.service

四、安装jdk,因为安装ELK需要依赖java环境

 yum -y install java-1.8.0-openjdk

查看java版本

 java -version

五、安装elasticsearch、logstash、kibana

下载并安装公共签名密钥:rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

创建yum的repo文件:vim /etc/yum.repos.d/elasticsearch.repo

添加容易如下:

 [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

1、安装Elasticsearch

 yum -y install elasticsearch

2、安装Logstash

 yum -y install logstash

3、安装Kibana

yum -y install kibana

六、修改ELK配置文件

 

vim /etc/elasticsearch/elasticsearch.yml

path.data: /data/elasticsearch/data path.logs: /data/elasticsearch/logs network.host: 0.0.0.0 http.port: 9200
vim /etc/logstash/logstash.yml
path.data: /data/logstash/data path.logs: /data/logstash/logs

 

 

 

 

 

 

 

 

 

vim /etc/logstash/conf.d/logstash.conf  # 添加如下内容

input { beats { port => 5044 codec => plain { charset => "UTF-8" } } } output { elasticsearch { hosts => "127.0.0.1:9200" manage_template => false index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

vim /etc/kibana/kibana.yml

server.port: 5601 server.host: "192.168.2.207" elasticsearch.url: "http://localhost:9200"

 

 

 

 

安装配置nginx

 yum -y install epel-release

 yum -y install nginx httpd-tools

修改nginx配置

 cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

 vim /etc/nginx/nginx.conf

把下图中这一段注释掉

 

vim /etc/nginx/conf.d/kibana.conf  # 添加如下内容
server {
    listen 80;

    server_name kibana;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/kibana-user;  //http认证文件

    location / {
        proxy_pass http://192.168.175.152:5601;  //代理的kibana地址
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection ‘upgrade‘;
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}
 


















生成http用户认证文件,生成文件kibana-user,并添加用户admin
htpasswd -cm /etc/nginx/kibana-user admin
此处需要输入两遍密码

启动ELK和nginx
systemctl daemon-reload  # 重新加载所有配置文件
systemctl start elasticsearch logstash kibana nginx  # 启动ELK和nginx
systemctl enable elasticsearch logstash kibana nginx  # 将ELK和nginx加入开机启动
systemctl status elasticsearch logstash kibana nginx  #查看ELK和nginx启动状态

查看端口信息
ss -tnl

查看elasticsearch状态

curl -XGET 'http://192.168.2.207:9200/_cluster/state/nodes?pretty'

查看elasticsearch的master

curl -XGET ‘http://192.168.175.152:9200/_cluster/state/master_node?pretty‘

curl -XGET ‘http://192.168.175.152:9200/_cat/master?v‘

查看健康状态

curl -XGET ‘http://192.168.175.152:9200/_cat/health?v‘

curl -XGET ‘http://192.168.175.152:9200/_cluster/health?pretty‘

对于这个健康状态green(绿色)为最好

七、配置节点服务器filedeat

安装filebeat,进入到之前下载安装包的目录,执行yum方式安装
yum localinstall -y filebeat-6.2.4-x86_64.rpm
修改filebeat配置

 

vim /etc/filebeat/filebeat.yml
- type: log
  enabled: true
    - /var/log/*.log
    - /var/log/messages
filebeat.config.modules:
  path: ${path.config}/modules.d/*.yml
  reload.enabled: false
setup.template.settings:
  index.number_of_shards: 3
setup.kibana:
  host: "192.168.175.152:5601"
#output.elasticsearch:    //我们输出到logstash,把这行注释掉
  #hosts: ["localhost:9200"]   //这行也注释掉
output.logstash:
  hosts: ["192.168.175.152:5044"]
 
















启用nginx模块
filebeat modules enable nginx
修改nginx模块配置
vim /etc/filebeat/modules.d/nginx.yml
- module: nginx
  access:
enabled: true
var.paths: ["/var/log/nginx/access.log*"]
  error:
enabled: true
var.paths: ["/var/log/nginx/error.log*"]











启用apache模块
filebeat modules enable apache2
修改apache模块配置

vim /etc/filebeat/modules.d/apache2.yml
- module: apache2
  access:
enabled: true
var.paths: ["/var/log/httpd/access_log*"]
  error:
enabled: true
var.paths: ["/var/log/httpd/error_log*"]











启动filebeat
systemctl start filebeat
systemctl enable filebeat
systemctl status filebeat

浏览器访问http://192.168.175.152,输入之前通过htpasswd认证的用户名和密码登陆kibana。

 

到这里ELK安装已经成功了!!! 击个掌吧小帅哥,小美女吧~~~

接下来是创建索引用于监控

登陆浏览器http://ip:5601  用户名/密码 admin/******** 在前面已经设置过了

点击Management,然后点击Index Patterns,再点击Create index pattern

 

 

创建好后,点击Discover,就可以看到如下图页面的日志内容了。

 

 

 

转载于:https://www.cnblogs.com/king-LL/p/10045870.html

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐