最新消息:欢迎加入小松的QQ群一起讨论一起学习,搜索页面修改成lua+ElasticSearch,使用php这个页面速度相对慢一点,优化之后速度杠杠的,如有问题请加群联系我

ELK日志分析平台(二)

Linux 48浏览 0评论

之前介绍过ELK了这个就不多讲了,下面开始安装最新版的ELK,我安装的服务器是centos7,已经关闭了防火墙

ELK达到的目标

安装java

yum -y install java-1.8.0-openjdk*
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

安装elasticsearch

创建文件

vi /etc/yum.repos.d/elasticsearch.repo

保存内容为

[elasticsearch-5.x]
name=Elasticsearch repository for5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

开始安装

yum -y install elasticsearch

启动

systemctl start elasticsearch

开机自启动

systemctl enable elasticsearch

PS.我的服务器内存较小修改elasticsearch内存的使用
vi /etc/elasticsearch/jvm.options
修改

-Xms2g
-Xmx2g

-Xms300m
-Xmx300m

配置文件

vi /etc/elasticsearch/elasticsearch.yml

里面的内容可以不做修改

验证是否安装成功

curl http://localhost:9200/

安装kibana

创建文件

vi /etc/yum.repos.d/kibana.repo

文件内容为

[kibana-5.x]
name=Kibana repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

安装kibana

yum -y install kibana

配置文件

vi /opt/kibana/config/kibana.yml

里面的内容可以不做修改
启动服务

sudo systemctl start kibana

开机自动启动

sudo chkconfig kibana on

安装nginx

yum -y install epel-release
yum -y install nginx httpd-tools

使用htpasswd 命令创建访问kibana的用户密码,下面的命令创建用户名为admin 密码为123456

htpasswd -c /etc/nginx/htpasswd.users admin
输入密码123456
在次输入密码123456

htpasswd 命令创建访问kibana的用户密码

配置nginx

vi /etc/nginx/nginx.conf

我这里没有配置用域名访问,把默认的配置修改了一下location /的内容替换成下面的内容

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.users;

    location / {
        proxy_pass http://localhost:5601;
        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;        
    }

主要是做一个反向代理到kibana,这里配置可以直接使用ip访问到kibana

安装Logstash

创建文件

vi /etc/yum.repos.d/logstash.repo

保存内容为

[logstash-5.x]
name=Logstash repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

安装

yum -y install logstash

配置ssl

sudo vi /etc/pki/tls/openssl.cnf

在[ v3_ca ]下面添加一行

subjectAltName = IP: elk服务器ip
cd /etc/pki/tls
openssl req -config /etc/pki/tls/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt

生成ssl

配置ssl

配置Logstash
说明:配置使用json格式,文件保存到目录/etc/logstash/conf.d 下,有inputs, filters, and outputs三部分构成

vi /etc/logstash/conf.d/02-beats-input.conf
input {
  beats {
    port => 5044
    ssl => true
    ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
    ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
  }
}
vi /etc/logstash/conf.d/10-syslog-filter.conf
filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      add_field => [ "received_from", "%{host}" ]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
    }
  }
}
vi /etc/logstash/conf.d/30-elasticsearch-output.conf
output {
  elasticsearch {
    hosts => ["localhost:9200"]
    sniffing => true
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}
sudo systemctl restart logstash  //启动服务
sudo chkconfig logstash on       //开机自动启动

 

加载Kibana的仪表盘

cd ~
curl -L -O https://download.elastic.co/beats/dashboards/beats-dashboards-1.3.1.zip 

yum -y install unzip
unzip beats-dashboards-1.3.1.zip
cd beats-dashboards-1.3.1
./load.sh

在elasticsearch中加载Filebeat 索引模板

cd ~
curl -O https://gist.githubusercontent.com/thisismitch/3429023e8438cc25b86c/raw/d8c479e2a1adcea8b1fe86570e42abab0f10f364/filebeat-index-template.json

curl -XPUT 'http://localhost:9200/_template/filebeat?pretty' -d@filebeat-index-template.json

正确加载显示

elasticsearch中加载Filebeat 索引模板

在客户端安装Filebeat

把之前生成的证书copy到客户端上

从elk服务器拷贝证书到客户机上,在elk服务器上执行

scp /etc/pki/tls/certs/logstash-forwarder.crt root@client_server_private_address:/tmp

客户机移动证书

sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

PS.如果客户端和elk服务都在同一台机子上上面的步骤忽略

vi /etc/yum.repos.d/elastic-beats.repo
[beats-5.x]
name=Elastic Beats repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
yum -y install filebeat

配置Filebeat

vi /etc/filebeat/filebeat.yml

修改

      paths:
        - /var/log/secure
        - /var/log/messages
#        - /var/log/*.log

注释掉所有Elasticsearch的选项

在output.logstash:选项里添加

ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
systemctl start filebeat       //启动filebeat
systemctl enable filebeat      //开机自动启动filebeate

最后看一下elasticsearch是否有数据

ELK服务测试一下

curl -XGET 'http://localhost:9200/filebeat-*/_search?pretty'

如果出现数据者说明客户端已经连接上ELK服务端了

使用ip访问Kibana登录密码上面设置过admin/123456登录,下面是显示图
Kibana视图
显示的内容为日志内容

QQ交流群:136351212(满) 455721967

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
转载保留版权:小松博客» ELK日志分析平台(二)
本文链接地址:https://www.phpsong.com/3349.html

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
木有头像就木有JJ!点这里按步骤申请Gravatar头像吧!