第 2 章 安装集中日志记录套件
2.1. 安装集中式 Log Relay/Transformer 复制链接链接已复制到粘贴板!
找到满足以下最低规格的裸机系统:
- 8 GB 内存
- 单套接字 Xeon 类 CPU
- 500 GB 磁盘空间
- Install Red Hat Enterprise Linux 7.
允许系统访问 Operational Tools 软件包:
注册系统并订阅它:
subscription-manager register subscription-manager list --consumed
# subscription-manager register # subscription-manager list --consumedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有自动附加 OpenStack 订阅,请参阅有关 手动附加订阅 的文档。
禁用初始启用的存储库,仅启用适合 Operational Tools 的仓库:
subscription-manager repos --disable=* subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-optional-rpms --enable=rhel-7-server-openstack-8-optools-rpms
# subscription-manager repos --disable=* # subscription-manager repos --enable=rhel-7-server-rpms --enable=rhel-7-server-optional-rpms --enable=rhel-7-server-openstack-8-optools-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意此节点上不能启用基础 OpenStack 存储库(rhel-7-server-openstack-8-rpms)。此软件仓库可能包含某些 Operational Tools 依赖项的较新版本,这些依赖项可能与 Operational Tools 软件包不兼容。
运行以下命令安装
Elasticsearch、Fluentd和Kibana软件:yum install elasticsearch fluentd rubygem-fluent-plugin-elasticsearch kibana httpd
# yum install elasticsearch fluentd rubygem-fluent-plugin-elasticsearch kibana httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在
Elasticsearch中启用跨原始资源共享(CORS)。要做到这一点,请编辑/etc/elasticsearch/elasticsearch.yml,并在文件的末尾添加以下行:http.cors.enabled: true http.cors.allow-origin: "/.*/"
http.cors.enabled: true http.cors.allow-origin: "/.*/"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意这将允许从任何 Web 服务器的任何网页调用
ElasticsearchJavaScript 应用程序。要只允许Kibana服务器中的 CORS,请使用:http.cors.allow-origin: "http://LOGGING_SERVER"
http.cors.allow-origin: "http://LOGGING_SERVER"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 LOGGING_SERVER 替换为
Kibana服务器的 IP 地址或主机名,具体取决于您要使用 IP 地址或主机名访问Kibana。但是,如果Elasticsearch服务只能从可信主机访问,则可以安全地使用"/signal/"。启动
Elasticsearch实例并在引导时启用它:systemctl start elasticsearch systemctl enable elasticsearch
# systemctl start elasticsearch # systemctl enable elasticsearchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要确认
Elasticsearch实例正常工作,请运行以下命令:curl http://localhost:9200/
# curl http://localhost:9200/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这应该给出类似如下的响应:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置
Fluentd以接受日志数据并将其写入Elasticsearch。编辑/etc/fluentd/fluent.conf,并将其内容替换为以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
Fluentd并在引导时启用它:systemctl start fluentd systemctl enable fluentd
# systemctl start fluentd # systemctl enable fluentdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 提示检查
Fluentd的日志,并确保它在启动时没有错误:journalctl -u fluentd -l -f
# journalctl -u fluentd -l -fCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置
Kibana以指向Elasticsearch实例。创建/etc/httpd/conf.d/kibana3.conf,并将以下内容放在:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要将对
Kibana和Elasticsearch的访问限制为授权用户,例如,由于这些服务在开放网络中的系统上运行,请使用 HTTP 基本身份验证保护虚拟主机,并在代理后移动Elasticseach。要做到这一点,请按照以下步骤执行:使用以下内容创建(或重写)
/etc/httpd/conf.d/kibana3.conf文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以将不同的路径用于
AuthUserFile选项,以及AuthName选项的任何其他描述。创建允许访问
Kibana的一对用户名和密码。为此,请运行以下命令:htpasswd -c /etc/httpd/conf/htpasswd-kibana user_name
# htpasswd -c /etc/httpd/conf/htpasswd-kibana user_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您将不同的路径用于
AuthUserFile选项,请相应地更改命令。使用您选择的用户名替换 user_name。出现提示时,输入将与此用户名一起使用的密码。系统将提示您重新键入密码。
另外,运行以下命令来创建具有自己密码的更多用户:
htpasswd /etc/httpd/conf/htpasswd-kibana another_user_name
# htpasswd /etc/httpd/conf/htpasswd-kibana another_user_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将
Elasticsearch配置为仅侦听localhost接口。要做到这一点,请在编辑器中打开/etc/elasticsearch/elasticsearch.yml文件,并附加以下选项:network.host: 127.0.0.1
network.host: 127.0.0.1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您还可以通过将以下选项附加到
/etc/elasticsearch/elasticsearch.yml,将Elasticsearch配置为允许在 CORS 中使用 HTTP 基本身份验证数据:http.cors.allow-credentials: true
http.cors.allow-credentials: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
Elasticsearch以使更改生效:systemctl restart elasticsearch
# systemctl restart elasticsearchCopy to Clipboard Copied! Toggle word wrap Toggle overflow 最后,确保使用代理下载
Elasticsearch文件,并且浏览器发送 HTTP 基本身份验证数据。为此,请编辑/usr/share/kibana/config.js文件。在此文件中找到以下行:elasticsearch: "http://"+window.location.hostname+":9200",
elasticsearch: "http://"+window.location.hostname+":9200",Copy to Clipboard Copied! Toggle word wrap Toggle overflow 按如下所示更改它:
elasticsearch: {server: "http://"+window.location.hostname, withCredentials: true},elasticsearch: {server: "http://"+window.location.hostname, withCredentials: true},Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启用
Kibana(在 Apache 之外)连接到Elasticsearch,然后启动 Apache 并在引导时启用它:setsebool -P httpd_can_network_connect 1 systemctl start httpd systemctl enable httpd
# setsebool -P httpd_can_network_connect 1 # systemctl start httpd # systemctl enable httpdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在系统上打开防火墙,以允许连接到
Fluentd和httpd:firewall-cmd --zone=public --add-port=4000/tcp --permanent firewall-cmd --zone=public --add-service=http --permanent firewall-cmd --reload
# firewall-cmd --zone=public --add-port=4000/tcp --permanent # firewall-cmd --zone=public --add-service=http --permanent # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,如果您还没有配置 HTTP 身份验证和
Elasticsearch代理,请打开防火墙以允许到Elasticsearch的直接连接:firewall-cmd --zone=public --add-port=9200/tcp --permanent firewall-cmd --reload
# firewall-cmd --zone=public --add-port=9200/tcp --permanent # firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要如果您不限制对使用 HTTP 身份验证的
Kibana和Elasticseach的访问,则 Kibana 和 Elasticsearch 提供的信息可在没有任何身份验证的情况下供任何人使用。为了保护数据,请确保系统或打开的 TCP 端口(80、4000 和 9200)只能从可信主机访问。