
通过在/etc/syslog-ng/conf.d下创建一个扩展名为.conf的文件来扩展它。
1.配置的第一部分定义audit.log的文件源。
2.定义了Elasticsearch目标。这里我们使用新的elasticsearch-http()目的地而不是旧的基于Java的elasticsearch()目的地。为了向后兼容,type()是syslog-ng方面的必需参数。
3.第一个日志路径将本地日志发送到Elasticsearch目标而不进行任何处理。本地日志源(s_sys)在/etc/syslog-ng/syslog-ng.conf中定义,它是syslog-ng的主要配置文件。
4.第二个日志路径使用Linux审计解析器解析audit.log,并进一步解析审计日志的MSG字段,其中包含有价值的信息(例如,源IP地址和SSH登录的状态)。就像之前的日志路径一样,这个也将结果存储到Elasticsearch,但在这种情况下,它包含许多有趣的名称 - 值对。
您的ELK服务器将需要的CPU,RAM和存储量取决于您要收集的日志的卷。在本教程中,我们将使用具有以下规格的VPS用于我们的ELK服务器:OS: CentOS 7
RAM: 4GB
CPU: 2
注:根据自己的服务器资源分配各个节点的资源
安装 Java 8
Elasticsearch和Logstash需要Java,所以我们现在就安装它。我们将安装最新版本的Oracle Java 8,因为这是Elasticsearch推荐的版本。
注:建议本地下载完最新版的JDK,然后上传到服务器的/usr/local/src目录
# JDK下载地址:
http://www.oracle.com/technetwork/java/javase/downloads
123123
然后使用此yum命令安装RPM(如果您下载了不同的版本,请在此处替换文件名):
yum -y localinstall jdk-8u111-linux-x64.rpm
# or
rpm -ivh jdk-8u111-linux-x64.rpm123123
现在Java应该安装在/usr/java/jdk1.8.0_111/jre/bin/java,并从/usr/bin/java 链接。
安装 Elasticsearch
Elasticsearch可以通过添加Elastic的软件包仓库与软件包管理器一起安装。
运行以下命令将Elasticsearch公共GPG密钥导入rpm:
# https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch123123
在基于RedHat的发行版的/etc/yum.repos.d/目录中创建一个名为elasticsearch.repo的文件,其中包括:
echo '[elasticsearch-5.x]
name=Elasticsearch repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
' | sudo tee /etc/yum.repos.d/elasticsearch.repo123456789123456789
Elasticsearch 源创建完成之后,通过makecache查看源是否可用,然后通过yum安装Elasticsearch :
yum makecache
yum install elasticsearch -y1212
要将Elasticsearch配置为在系统引导时自动启动,请运行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service1212
Elasticsearch可以按如下方式启动和停止:
sudo systemctl start elasticsearch.service
sudo systemctl stop elasticsearch.service1212
这些命令不会提供有关Elasticsearch是否已成功启动的反馈。相反,此信息将写入位于/ var / log / elasticsearch /中的日志文件中。
默认情况下,Elasticsearch服务不会记录systemd日志中的信息。要启用journalctl日志记录,必须从elasticsearch中的ExecStart命令行中删除–quiet选项。服务文件。
# 注释24行的 --quiet \
vim /etc/systemd/system/multi-user.target.wants/elasticsearch.service1212
当启用systemd日志记录时,使用journalctl命令可以获得日志记录信息:
使用tail查看journal:
sudo journalctl -f11
要列出elasticsearch服务的日记帐分录:
sudo journalctl --unit elasticsearch11
要从给定时间开始列出elasticsearch服务的日记帐分录:
sudo journalctl --unit elasticsearch --since "2017-1-4 10:17:16"
# since 表示指定时间之前的记录123123
使用man journalctl 查看journalctl 更多使用方法
检查Elasticsearch是否正在运行
您可以通过向localhost上的端口9200发送HTTP请求来测试Elasticsearch节点是否正在运行:
curl -XGET 'localhost:9200/?pretty'
1212
我们能得到下面这样的回显:
{
"name" : "De-LRNO",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "DeJzplWhQQK5uGitXr8jjA",
"version" : {
"number" : "5.1.1",
"build_hash" : "5395e21",
"build_date" : "2016-12-06T12:36:15.409Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}1234567891011121312345678910111213
配置 Elasticsearch
Elasticsearch 从默认的/etc/elasticsearch/elasticsearch.yml加载配置文件,
配置文件的格式考:
https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html
[root@linuxprobe ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
[root@linuxprobe ~]# egrep -v "^#|^$" /etc/elasticsearch/elasticsearch.yml
node.name: node-1
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 10.1.1.53 # 默认localhost,自定义为ip
http.port: 920012345671234567
RPM还具有系统配置文件(/etc/sysconfig/elasticsearch),允许您设置以下参数:
[root@linuxprobe elasticsearch]# egrep -v "^#|^$" /etc/sysconfig/elasticsearch
ES_HOME=/usr/share/elasticsearch
JAVA_HOME=/usr/java/jdk1.8.0_111
CONF_DIR=/etc/elasticsearch
DATA_DIR=/var/lib/elasticsearch
LOG_DIR=/var/log/elasticsearch
PID_DIR=/var/run/elasticsearch12345671234567
日志配置
Elasticsearch使用Log4j 2进行日志记录。 Log4j 2可以使用log4j2配置。属性文件。 Elasticsearch公开单个属性$ {sys:es。日志},可以在配置文件中引用以确定日志文件的位置这将在运行时解析为Elasticsearch日志文件的前缀。
例如,如果您的日志目录是/var/log/elasticsearch并且您的集群名为production,那么$ {sys:es。 logs}将解析为/var/log/elasticsearch/production。
默认日志配置存在:/etc/elasticsearch/log4j2.properties
安装 Kibana
Kibana的RPM可以从ELK官网或从RPM存储库下载。它可用于在任何基于RPM的系统(如OpenSuSE,SLES,Centos,Red Hat和Oracle Enterprise)上安装Kibana。
导入Elastic PGP Key
我们使用d性签名密钥(PGP密钥D88E42B4,可从https://pgp.mit.edu)签名所有的包,指纹:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch11
创建kibana源
echo '[kibana-5.x]
name=Kibana repository for 5.x packages
baseurl=https://artifacts.elastic.co/packages/5.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
' | sudo tee /etc/yum.repos.d/kibana.repo123456789123456789
kibana源创建成功之后,makecache后使用yum安装kibana:
yum makecache &&yum install kibana -y11
使用systemd运行Kibana
要将Kibana配置为在系统引导时自动启动,请运行以下命令:
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service1212
Kibana可以如下启动和停止
sudo systemctl start kibana.service
sudo systemctl stop kibana.service1212
配置Kibana
Kibana默认从/etc/kibana/kibana.yml文件加载其配置。
参考:https://www.elastic.co/guide/en/kibana/current/settings.html
注意:本实验教程把localhost都改成服务器IP,如果不更改localhost,需要设置反向代理才能访问到kibana。
在同一服务器上安装一个Nginx反向代理,以允许外部访问。
安装nginx
配置Kibana在localhost上监听,必须设置一个反向代理,允许外部访问它。本文使用Nginx来实现发向代理。
创建nginx官方源来安装nginx
# https://www.nginx.com/resources/wiki/start/topics/tutorials/install/
echo '[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
' | sudo tee /etc/yum.repos.d/nginx.repo1234567812345678
使用yum安装nginx和httpd-tools
yum install nginx httpd-tools -y11
使用htpasswd创建一个名为“kibanaadmin”的管理员用户(可以使用其他名称),该用户可以访问Kibana Web界面:
[root@linuxprobe ~]# htpasswd -c /etc/nginx/htpasswd.users kibanaadmin
New password: # 自定义
Re-type new password:
Adding password for user kibanaadmin12341234
使用vim配置nginx配置文件
[root@linuxprobe ~]# egrep -v "#|^$" /etc/nginx/conf.d/kibana.conf
server {
listen 80
server_name kibana.aniu.co
access_log /var/log/nginx/kibana.aniu.co.access.log main
error_log /var/log/nginx/kibana.aniu.co.access.log
auth_basic "Restricted Access"
auth_basic_user_file /etc/nginx/htpasswd.users
location / {
proxy_pass http://localhost:5601
proxy_http_version 1.1
proxy_set_header Upgrade $http_upgrade
proxy_set_header Connection 'upgrade'
proxy_set_header Host $host
proxy_cache_bypass $http_upgrade
}
}12345678910111213141516171234567891011121314151617
scroll查询用于有效的从Elasticsearch中检索大量文档,而无需支付深度分页带来的开销。Scrolling允许我们初始化搜索将结果从Elasticsearch中按批次分离出来直到没有更多结果。这个有点像传统数据库中的游标。
GET /old_index/_search?scroll=1m
}
1、因为保持scroll打开消耗资源,所以我们需要设置超时时间。这里保持1分钟的连接
2、_doc是最有效的排序顺序。
3、在扫描scan的时候,size是应用到每一个片shard上的,所以每一个批次中文档数量应该是size * number_of_primary_shards
该请求返回一个Base-64编码的_scroll_id。现在我们可以通过_scroll_id用_search/scroll接口获取下个批次的数据。
Bulk API使执行多次索引或者删除 *** 作在一个API中完成。这可以极大的提高索引速度。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)