现在的位置: 首页 > PHP高级开发 > 正文

ELK日志系统

2018年04月26日 PHP高级开发 ⁄ 共 2412字 ⁄ 字号 暂无评论

解释

"ELK"是三个开源项目的首字母缩略词:Elasticsearch, Logstash, Kibana。Elasticsearch(简称es)是一个搜索和分析引擎,Logstash是一个可以从多个来源收集数据的服务端数据处理管道,并且转换数据然后发送另一个地方,比如es。Kibana可以让用户可视化es中的数据,比如树状图、曲线图等等。

为什么使用ELK

elk扩展性很强,开源,可视化功能丰富,数据查询速度为秒级,无需从0开始开发,节约成本,并且es在以后也可以用于全文搜索功能。

开始安装

安装es

a. 导入GPG key:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

b. 添加repo:

wget https://gist.githubusercontent.com/Jaggle/63591584742665d9b6178c55e1c9f5cd/raw/1cf2eb4a5e7d82f3d2166730df0cbadf20be47dd/es -O /etc/yum.repos.d/elasticsearch.repo

c. install:

es版本更新比较快,目前采用的是6.2.2版本,请优先安装该版本

sudo yum install elasticsearch

d. run es

对于rhel 6:

需要创建一个非root用户来运行es,然后可以使用supervisor来管理es的进程

对于 rhel7:

systemctl start elasticsearch

c. check

通过浏览器访问 http://server_ip:9200 检查是否启动成功

安装Logstash

安装Logstash 需要先确保系统中有java8, 使用命令`java -version`来检查。

a. 添加repo

执行如下命令:

echo '[logstash-6.x]
name=Elastic repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md' > /etc/yum.repos.d/logstash.repo

b. install

sudo yum install logstash

c. config

sed -i 's|# path.config:|path.config: /etc/logstash/conf.d/*.conf|g' /etc/logstash/logstash.yml

mkdir -p /etc/logstash/conf.d

以下配置需要提供redis的连接信息,请自行修改

echo 'input {
    redis {
        data_type => "pattern_channel"
        key => "redis_pattern_channel-*"
        password => "请替换redis密码"
        host => "localhost"
        port => 6379
        threads => 1
    }
}
output {
    elasticsearch {
        hosts => ["localhost:9200"]
        index => "log-%{channel}"
    }
    stdout {
        codec => plain
    }
}' > /etc/logstash/conf.d/redis_pattern_channel.conf

d. run logstash

systemctl start logstash

安装kibana

a. add repo

echo "[kibana-6.x]
name=Kibana repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
" > /etc/yum.repos.d/kibana.repo

b. install

sudo yum install kibana 

c. run kibana

systemctl start kibana

d. config nginx

建议给kibana添加一个友好的域名,比如 http://test-log.xmebank.com,并添加http basic 访问控制

nginx配置:
server {
    listen  80;
    server_name  test-log.xmebank.com;
    access_log /var/log/nginx/access.log;
    location / {
        proxy_pass http://127.0.0.1:5601/;
        proxy_redirect default;
        auth_basic "auth";
        auth_basic_user_file test-log-auth;
        autoindex on;
    }
}
生成密码:
printf "xmebank:$(openssl passwd -crypt xm666666)\n" > /etc/nginx/test-log-auth
密码为:
xmebank
xm666666

e. 访问 kibana

http://test-log.domain.com

给我留言

您必须 [ 登录 ] 才能发表留言!