顯示具有 centos 標籤的文章。 顯示所有文章
顯示具有 centos 標籤的文章。 顯示所有文章

2014年9月22日 星期一

使用ELK(Elastic Search、Logstash、Kibana)建立Log查詢、蒐集與分析系統


公司想要開始要建立統一的Log查詢、蒐集與分析的環境,因此嘗試使用ELK來建立。

環境說明

先嘗試建立Standalone的環境,也就是ELK都先放在同一台。
  • 作業系統: CentOS 6.5 final
  • Elastic Search 1.3.2
  • Logstash 1.4.2
  • Kibana

參考資料


軟體安裝

  1. 作業系統安裝

    • 請記得安裝已下套件
      • Apache httpd (yum install httpd)
      • Java 7 SDK
  2. 安裝Elastic Search

    • 下載公鑰
      rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
    • 在 /etc/yum.repos.d/ 目錄下新增檔案,例如 elasticsearch.repo,內容如下
      [elasticsearch-1.3]
      name=Elasticsearch repository for 1.3.x packages
      baseurl=http://packages.elasticsearch.org/elasticsearch/1.3/centos
      gpgcheck=1
      gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
      enabled=1
    • 安裝Elastersearch
      yum install elasticsearch

      image
  3. 設定Elasticsearch



    • 編輯 /etc/elasticsearch/elasticsearch.yml ,加入

      cluster.name: "LogCluster"
      node.name: "LogMaster"
      node.master: true
      node.data: true
      
      path.conf: /etc/elasticsearch
      path.data: /datapool/data1
      path.work: /datapool/work
      path.logs: /datapool/log
    • 將服務加入系統
      chkconfig --add elasticsearch

    • 啟動服務
      /etc/init.d/elasticsearch start

    • 測試啟動是否成功
      curl localhost:9200/_nodes/process?pretty
      
      {
        "cluster_name" : "LogCluster",
        "nodes" : {
          "sqhS68RMS3q1CtthFOdSxw" : {
            "name" : "LogMaster",
            "transport_address" : "inet[/10.10.10.151:9300]",
            "host" : "logserver",
            "ip" : "127.0.0.1",
            "version" : "1.3.2",
            "build" : "dee175d",
            "http_address" : "inet[/10.10.10.151:9200]",
            "attributes" : {
              "master" : "true"
            },
            "process" : {
              "refresh_interval_in_millis" : 1000,
              "id" : 30839,
              "max_file_descriptors" : 65535,
              "mlockall" : false
            }
          }
        }
      }
      

  4. 安裝Logstash



    • 參考資料:http://logstash.net/docs/1.4.2/repositories
    • 安裝金鑰
      rpm --import http://packages.elasticsearch.org/GPG-KEY-elasticsearch
    • 在 /etc/yum.repos.d/ 目錄下新增檔案,例如 logstash.repo,內容如下
      [logstash-1.4]
      name=logstash repository for 1.4.x packages
      baseurl=http://packages.elasticsearch.org/logstash/1.4/centos
      gpgcheck=1
      gpgkey=http://packages.elasticsearch.org/GPG-KEY-elasticsearch
      enabled=1
    • 安裝Logstash
      yum install logstash
      image

  5. 安裝Kibana



    • Kibana是一個純粹由javascript/CSS/html組成的套件,安裝好logstash之後可以在 /opt/logstash/vendor/kibana 目錄下找到。
    • 複製到httpd的 /var/www/html/ 目錄之下
      cp -R /opt/logstash/vendor/kibana/* /var/www/html/
    • 啟動httpd服務
      chkconfig httpd on
      
      /dev/init.d/httpd start
  6. 設定防火牆



    • 預設的防火牆是沒有開啟http及elastersearch的port,請加入以下兩個規則
      #
      # 開啟HTTP 80 port
      #
      iptables -A INPUT -p tcp --dport 80 -j ACCEPT
      #
      # 設定ElasticSearch使用的port 9200-9300
      #
      iptables -A INPUT -p tcp --dport 9200:9300 -j ACCEPT
      

  7. 開始使用



    • 用瀏覽器進入 http://<Server Address>/

image




待續…



  1. Logstash接收log設定值

  2. Kibana設定與使用

  3. Elastersearch進階設定

  4. and more…

在CentOS上安裝ZFS套件與建立磁碟區



參考資料 :


安裝說明

CentOS 6.x

yum localinstall --nogpgcheck http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el6.noarch.rpm

yum install kernel-devel zfs

CentOS 7.x

yum localinstall --nogpgcheck https://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-1.noarch.rpm

yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el7.noarch.rpm

yum install kernel-devel zfs

開啟運行服務

安裝完成後,已經自動註冊服務,因此下次開機會自動啟動。不過剛安裝完還沒啟動,請下指令啟動服務
/etc/init.d/zfs start

建立Pool

利用zpool指令建立第一個pool( 參考 http://illumos.org/man/1m/zpool )
zpool create <名稱> <device>
zpool create datapool /dev/sdb1
查看看是否有成功建立

zpool  list


NAME       SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
datapool  39.8G   172K  39.7G     0%  1.00x  ONLINE  -

建立一個具有壓縮功能的分區


zfs create -o compression=lz4 datapool/data1


列出分區

zfs list



NAME             USED  AVAIL  REFER  MOUNTPOINT
datapool         148K  39.1G  32.5K  /datapool
datapool/data1    30K  39.1G    30K  /datapool/data1

補充說明


如果您遇到開機的時候無法automount,也就是啟動 /etc/init.d/zfs 時出現 /dev/zfs permission denied的錯誤,請先參考以下文件

http://zfsonlinux.org/faq.html#HowDoIAutomaticallyMountZFSFilesystemsDuringStartup

該文件主要是說zfs套件還沒支援 SELinux policy,因此建議將SELinux policy改為permissive 或 disabled

$ cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted