如何使用DigitalOcean ELK一键式应用

DigitalOcean ELK一键式应用程序为您提供了一种快速启动集中式日志服务器的方法。 ELK由三个关键软件组成:Elasticsearch,Logstash和Kibana。 它们一起允许您收集,搜索和分析来自基础架构的日志文件。 Logstash收集和解析传入的日志,Elasticsearch对其进行索引,Kibana为您提供了一个强大的Web界面来可视化数据。

本教程将向您介绍如何启动ELK实例并在其他服务器上设置Filebeat,以将日志发送到新的集中式日志记录服务器。

创建ELKDroplet

要开始使用它,只需创建一个Droplet,并指定您的主机名和大小。 我们建议您在至少 2GB的Droplet运行ELK。

选择您所需的地区:

在Ubuntu 14.04在应用程序选项卡中选择ELK

如果使用SSH密钥管理您的小程序,它比密码安全并且是建议的,您还可以指定要添加到此服务器的小程序。

访问您的Kibana凭据

一旦您的服务器已经启动,您将能够通过其IP地址在Web浏览器中访问Kibana前端。 但是,这已被密码保护。 为了检索随机生成的密码,您将需要通过命令行访问服务器。

您可以使用以下命令登录到您的Droplet:

ssh root@your_ip_address

如果系统提示您输入密码,请输入在创建服务器时通过电子邮件发送给您的密码。 或者,如果使用SSH密钥设置Droplet,则可以继续并登录,而不需要密码。

一旦您登录,您将看到包含您的密码的一天的消息(MOTD)。 它将如下所示:

-------------------------------------------------------------------------------------
Thank you for using DigitalOcean's ELK Stack Application.

Your Kibana instance can be accessed at http://xxx.xxx.xx.xxx/
Your Kibana login credentials are:
Username: admin
Password: XXXXXXXXXX
-------------------------------------------------------------------------------------

现在您已拥有您的登录凭据,您可以通过在浏览器中输入其IP地址并提供您的用户名和密码来访问Kibana。

使用Kibana

Kibana是高度可配置的。 您可以使用已过滤的搜索和可视化数据来创建自定义信息中心。 默认情况下,ELK一键设置收集syslog从Droplet本身和Nginx的访问日志。 所以你应该已经有数据,看看当你第一次登录。

为了开始查看您的数据,您必须首先配置索引模式。 这可以通过选择左侧[filebeat] -YYY.MM.DD索引模式菜单,然后单击按钮,将其设置为默认的指标来完成。

顶部导航栏中点击查看 ,查看已创建的日志:

要探索更多可视化数据的方法,请查看以下教程:

转发日志

为了将日志发送到ELK服务器,您需要在其他服务器上安装和配置Filebeat。 本教程的重点是在Ubuntu上安装它,但你也可以向前从日志运行的CentOS以及服务器

现在,我们将配置一个客户端服务器发送它的syslog到您的ELK服务器。

安装SSL证书

为了在将日志发送到ELK服务器时对流量进行加密,首次引导时会创建自签名SSL证书。 必须在每个客户端服务器上安装此证书。 在您的ELK服务器上运行此命令可以将SSL证书复制到客户端服务器

scp /etc/pki/tls/certs/logstash-forwarder.crt user@client.ip.address:/tmp

SSL证书现在将出现在/tmp客户端服务器文件夹中。 现在您必须将其安装到正确的目录:

sudo mkdir -p /etc/pki/tls/certs
sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/

安装Filebeat

客户端服务器上 ,Logstash转发信息库添加到您的APT源和下载的签名密钥:

wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -
echo 'deb https://packages.elastic.co/beats/apt stable main' | sudo tee /etc/apt/sources.list.d/filebeat.list

然后安装Logstash转发程序包:

sudo apt-get update
sudo apt-get install filebeat

接下来,您需要确保Logstash Forwarder将在启动时自动启动:

sudo update-rc.d filebeat defaults

配置Filebeat

客户端服务器上 ,创建和编辑Logstash代理的配置文件,它是YAML格式:

sudo nano /etc/filebeat/filebeat.yml

该文件将包括许多注释掉的选项。 这里我们将在大多数情况下使用默认值。 我们将配置Filebeat以连接到端口5044上的ELK服务器,并使用先前安装的SSL证书。 路径部分指定哪些日志文件发送,而DOCUMENT_TYPE部分指定这些日志型“系统日志”(这是我们的过滤器正在寻找的类型)。

删除注释掉选项,并在您的ELK服务器的IP地址替换elk_server_IP ,你Filebeat配置将如下所示:

filebeat:
  prospectors:
    -
      paths:
        - /var/log/auth.log
        - /var/log/syslog
      input_type: log
      document_type: syslog
output:
  logstash:
    hosts: ["elk_server_IP:5044"]
    tls:
      certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

保存并退出。 现在重新启动Filebeat将我们的更改放置到位:

sudo service filebeat restart

现在Filebeat发送syslog到您的ELK服务器!

自动安装在新Droplet上

您将需要重复这个过程为所有你想收集原木其他现有的服务器,但是当你创建一个使用新的服务器可以简化这一过程DigitalOcean的元数据服务 当创建一个新的Droplet,可以提供cloud-config文件 ,它会自动配置Logstash代理作为你的第一个Droplet的靴子。

为了做到这一点,您必须从ELK服务器复制SSL证书的内容。 您可以通过运行以下命令查看文件:

cat /etc/pki/tls/certs/logstash-forwarder.crt

现在,您可以创建一个cloud-config文件自动上面我们采取的步骤:

#cloud-config
write_files:
  - content: |
      -----BEGIN CERTIFICATE-----
      MIIDXTCCAkWsdERgfgIJAP1eIkzku0apMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
      BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
      aWRnaXRzIFB0eSBMdGQwHhcNMTQxMjA0MjExNDQ4WhcNMjQxMjAxMjExNDQ4WjBF
      MQswCQYDVQQGEwJBVTETSDFUIQUECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
      ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
      CgKCAQEAo3I1IQzaZPFHdfgSes3uqcan8EqcObLy8nFPqHn8fmLT+AfA4JnVSB6S
      dl/qYOUoKI4mFaQROhaC+VWV2E0sB42pv5jKZfC8orHTuY23eXnZFeajGVqIQhu3
      4VIv56l/nSnS30t/ryPAyDqrb+hPT1HNc92ruobTLlKl1XVgBfHqldUHVHPk99Gv
      xRLQQKg/EIZkFyGYMi770N9vR3usBuaAuPX78RmNGoiNYRAJDKJ2vvU86mGqoMow
      Bw9mICaVv94P9z8vROPHI1IZnlKKjDKqvSvfyR1J4H2hCP6yoGmYbz9DHfOqnWie
      J1u7DZ5YeIgZIy2TWqaaTVDgwjb3AwIFGWSUo1AwTjAdBgNVHQ4EFgQUXsvZ6xD7
      1PfKJbPBmYHnUsWsZ5UwHwYDVR0jBBgwFoAUXsvZ6xD71PfKJbPBmYHnUsWsZ5Uw
      DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAdqnijWlcsbk8A1L4yfQa
      Dm172P7hatN3fh4lmPoVsd5sMPmYsYOFZ6Vk9MIFg+ibeV42n+OtYb31lJq76nKF
      IYR+zuDyEAVkmZEA7Sb3zQDGH0qqC12ztiAbBw+XsD3s1a8VaqHk3AuvD35xURKK
      +fy2kbnoFZ0yFsDcr+h442PVrvShMYtKcVKquuHs8TJolON3bvZCLyK0YqHtnHPN
      QoWI5Si7ojsSnUPLBZqaSGUQu8UipMLJk+HvbbVt1purI3mH3/tB3D1gnSiTGRGD
      vXvw8/qDgPAT5fWW5OniVWUsYlNNs2irTqTSI7aBh6QPcxpmcOFkctsRTSWz/Mrz
      qQ==
      -----END CERTIFICATE-----
    path: /etc/pki/tls/certs/logstash-forwarder.crt
  - content: |
      filebeat:
        prospectors:
          -
            paths:
              - /var/log/auth.log
              - /var/log/syslog
            input_type: log
            document_type: syslog
      output:
        logstash:
          hosts: ["HOST_IP_ADDR:5044"]
          tls:
            certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]
    path: /etc/filebeat/filebeat.yml
runcmd:
  - wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add -
  - echo 'deb https://packages.elastic.co/beats/apt stable main' | sudo tee /etc/apt/sources.list.d/filebeat.list
  - sudo apt-get update
  - sudo apt-get install filebeat
  - sudo update-rc.d filebeat defaults
  - sudo service filebeat start

请确保用自己更换证书的内容,包括与线BEGINEND ,以及您的ELK服务器的IP地址。

现在,创建一个新的Droplet时,可以粘贴此文件到启用用户数据字段:

当您的新服务器联机时,新数据将开始流向您的ELK服务器,并在Kibana中可见。

更多信息

为了处理它接收的日志,Logstash需要过滤文件和提取格式化的数据,因为不同的日志文件具有非常不同的格式。 这些过滤器安装到/etc/logstash/conf.d/默认情况下,ELK应用对过滤器syslog和Nginx的的访问日志。 举例来说,这里是/etc/logstash/conf.d/10-syslog.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" ]
    }
  }
}

有关如何编写Logstash过滤器和Apache过滤器示例的详细信息,请查看本教程:

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏