您的位置:首页 > 其它

ELK 日志分析系统 安装

2016-09-01 14:15 525 查看
最近由于公司要做云服务器的上对用户应用性能的分析和应对服务的拓展的功能,需要对用户的日志进行分析,已给出用户建议,提高用户的体验。我呢以前没用过,就自己在服务器上建了一个虚拟机,安装单机的测试了一下。下面我就说一下我的安装过程。

安装环境:

系统:centOS 6.7

环境:JDK 1.7

单机安装

注意:elasticsearch、kibana基于Java的所以安装之前要安装合适的JDK。

配置系统环境

1、关闭防火墙

2、设置selinux

Elasticsearch、Logstash、Kibana版本直接在官网上下载就可以,不过这个要注意版本的问题,但是呢,官网考虑到了这个问题,在下载时,已经把兼容的版本放在一起了,直接分别下载这三个软件就好了。因为这三个软件是组合使用的,所以要注意安装顺序,要不没办法测试是否安装成功。

Elasticsearch安装

官网下载好对应得安装包,安装即可,我下载的tar.gz格式的,安装步骤如下:

特别注意:这个程序不能在root下运行要创建用户并将安装权限赋给用户。

//解压软件
#tar -zxvf elasticsearch-2.3.5.tar.gz
//如果只是单机运行,而不是集群的话不需要配置
//运行软件--定位到解压后的安装包下
#./bin/elasticsearch
//默认情况下监听9200、9300端口
//查看端口情况
#netstat -nltp
//在终端也可以看到是否正常启动
//退出按Ctrl+C即可退出,程序停止
//如果想后台启动程序
#./bin/elasticsearch &


如果想了解集群怎么搭建,我推荐学习官网文档,可以细致的学习一下。

Kibana安装

首先在官网下载安装包,同样的如上安装和启动。

注意:这个要修改配置文件,而且它支持的浏览器:Firefox和chrome,其他的访问有问题;

//首先找到配置文件kibana.yml
# cd kibana-4.5.4-linux-x64/config/kibana.yml
//我安装是单机的所以只需修改一项就好,打开配置文件找到:
// elasticsearch.url: "http://localhost:9200"
//把注释删除,修改成这样就好了.
//运行和后台运行和上面的一样
//Kibana监听端口:5601默认


Logstash安装

这个安装稍微复杂一点,安装包下载同样是在官网下载就好,安装方式是一样的,不过这个要自己书写配置文件,因为它没有自动生成,所以自己建立文件例如:logstash-first.conf。这个配置文件里面的书写内容详见官网文档,查看具体的配置。我这里只说一下我怎么配置。

由于logstash直接读文件然后处理分析,再存储到Elasticsearch上会占用很大的CPU资源和内存,我在测试的时候,读取文件到在Kibana上显示非常慢,所以我又安装了一个Logstash的插件–Logstash-forwarder。

这个插件主要完成对日志的收集,处理然后再交给Logstash分析后存储到Elasticsearch上非常的快。

我的配置文件书写如下

input {
lumberjack {
port => 5000
type => "logs"
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key"
}
}
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" ]
}
}
}
output {
elasticsearch{hosts=> ["http://localhost:9200"]}
stdout { codec =>rubydebug}
}


这个安装好后因为接下来要安装Logstash-forwarder,而他们之间有时通过ssl通信的。所以首先建立通信的秘钥和证书;

#cd /etc/pki/tls
#openssl req -subj '/CN=localhost' -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
#cp ./certs/certs/logstash-forwarder.crt ./


上面就生成了秘钥和证书。

下面安装Logstash-forwarder,直接下载安装就好。

安装好后要书写配置文件:

#cd /etc
#vi logstash-forwarder.conf
//配置文件内容
{
"network": {
# A list of downstream servers listening for our messages.
# logstash-forwarder will pick one at random and only switch if
# the selected one appears to be dead or unresponsi
"servers": [ "localhost:5000" ],

# The path to your client ssl certificate (optional)
#"ssl certificate": "./logstash-forwarder.crt",
# The path to your client ssl key (optional)
#"ssl key": "./logstash-forwarder.key"

# The path to your trusted ssl CA file. This is used
# to authenticate your downstream server.
"ssl ca": "/etc/pki/tls/logstash-forwarder.crt",

# Network timeout in seconds. This is most important for
# logstash-forwarder determining whether to stop waiting for an
# acknowledgement from the downstream server. If an timeout is reached,
# logstash-forwarder will assume the connection or server is bad and
# will connect to a server chosen at random from the servers list.
"timeout": 15
},

# The list of files configurations
"files": [
# An array of hashes. Each hash tells what paths to watch and
# what fields to annotate on events from those paths.
{
"paths": [
# single paths are fine
"/var/log/messages",
# globs are fine too, they will be periodically evaluated
# to see if any new files match the wildcard.
"/var/log/secure"
],

# A dictionary of fields to annotate on each event.
"fields": { "type": "syslog" }
}
]
}


然后要在服务中启动这个服务程序;

首先将这个服务添加到服务中.

chkconfig –add logstash-forwarder

其次查看各个服务的状态

chkconfig –list

最后启动服务

service logstash-forwarder start

至此安装完成在浏览器中输入http:localhost:5601即可访问;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: