解释
"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.ymlmkdir -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密码为:xmebankxm666666 |
e. 访问 kibana
http://test-log.domain.com