标题 | 基于ELK的日志分析系统 |
范文 | 魏山林 摘要:日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。 关键词:日志;系统运维 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)05-0069-02 1 Elk日志分析平台介绍 通常,日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog ,将所有服务器上的日志收集汇总。 集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用 grep 、 awk 和 wc 等Linux 命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。 2 开源实时日志分析ELK平台部署流程 1)安装Logstash 依赖包 JDK Logstash 的运行依赖于Java 运行环境, Logstash 1.5 以上版本不低于 java 7 推荐使用最新版本的Java 。 下载RPM包安装jdk #rpm -ivh jdk-8u91-linux-x64.rpm 设置 JDK 的环境变量,如下: # tail -5 /etc/profile export JAVA_HOME=/usr/java/jdk1.8.0_91 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 在 Shell 提示符中执行java version 命令,显示如下结果,说明安装成功: # java -version java version "1.8.0_91" 2)安装 Logstash 下载并安装Logstash ,下载allplugins的版本,安装logstash 只需将它解压的对应目录即可,例如: /usr/local 下: # tar zxf logstash-all-plugins-2.3.1.tar.gz -C /usr/local/ #cd /usr/local #mv logstash-2.3.1 logstash 安裝完成后运行如下命令: # /usr/local/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }' Settings: Default pipeline workers: 8 Pipeline main started ysten 2016-05-20T01:53:36.857Z localhost ysten 使用-e参数在命令行中指定配置是很常用的方式,不过如果需要配置更多设置则需要很长的内容。这种情况,我们首先创建一个简单的配置文件,并且指定logstash使用这个配置文件。例如:在logstash 安装目录下创建一个“基本配置”测试文件 logstash-test.conf,文件内容如下: # cat logstash-simple.conf input { stdin { } } output { stdout { codec=> rubydebug } } Logstash 使用 input 和 output 定义收集日志时的输入和输出的相关配置,本例中 input 定义了一个叫"stdin"的 input , output 定义一个叫"stdout"的 output 。无论我们输入什么字符,Logstash 都会按照某种格式来返回我们输入的字符,其中 output 被定义为"stdout"并使用了 codec 参数来指定logstash 输出格式。 使用logstash的-f参数来读取配置文件,执行如下开始进行测试: # echo "`date` hello World" Fri May 20 09:58:13 CST 2016 hello World # /usr/local/logstash/bin/logstash agent -f logstash-simple.conf Settings: Default pipeline workers: 8 Pipeline main started Fri May 20 09:58:13 CST 2016 hello World { "message" =>"Fri May 20 09:58:13 CST 2016 hello World", "@version" =>"1", "@timestamp" =>"2016-05-20T01:58:23.138Z", "host" =>"localhost" } 3)安装 Elasticsearch 下载 Elasticsearch 的最新版RPM包并安装。 #rpm -ivh elasticsearch-2.3.2.rpm 修改 Elasticsearch配置 #vim /etc/elasticsearch/elasticsearch.yml 启动elasticsearch服务 # /etc/init.d/elasticsearch start 确认 elasticsearch 的 9200 端口已监听,说明 elasticsearch 已成功运行 # netstat -anp |grep :9200 tcp 0 0 ::ffff:192.168.1.111:9200 :::* LISTEN 12440/java 访问http://192.168.1.111:9200/ Elasticsearch 安装完成。 4)安装 Kibana 下载 kibana 的最新版RPM包并安装。 # rpm -ivhkibana-4.5.0-1.x86_64.rpm 修改 kibana配置 # vim /opt/kibana/config/kibana.yml 启动kibana服务 # /etc/init.d/kibana start 使用 http://192.168.1.111:5601访问 Kibana,全绿就说明安装成功。 5)安装Redis 下载最新版Redis # tar -zxvf redis-3.2.0.tar.gz -C /usr/local # cd /usr/local # mv redis-3.2.0 redis 安装redis # cd /usr/local/redis # make # make install 使用redis自带的脚本配置redis 启动redis # /usr/local/bin/redis-server 6)集成測试-搜集分析nginx日志 Logstash 创建input output配置文件 #cat sp.conf #采集传输nginx日志到redis input { file { type =>"nginx_access" path => ["/nginxlogs/tvlivemedia.log"] } } output { redis { host =>“localhost"#若不是本地redis则改成redis服务器ip data_type =>"list" key =>"logstash:redis" } } #cat index.conf#从redis发送日志到Elasticsearch input { redis { host =>"localhost" data_type =>"list" key =>"logstash:redis" type =>"redis-input" } } output { elasticsearch { hosts =>"192.168.1.111" index =>"access-%{+YYYY.MM.dd}" } } 启动采集进程 #/usr/local/logstash/bin/logstash agent -f sp.conf & Settings: Default pipeline workers: 8 Pipeline main started Elasticsearch 访问http://192.168.1.111:9200/_search?pretty=true来查看index-pattern 已经可以看到nginx日志进入了Elasticsearch并建立索引access-2016.05.19 Kibana 打开Kibana http://192.168.1.111:5601/app/kibana#/settings |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。