如何在Ubuntu 16.04上安装Apache Maven
简介Apache Maven是用于Java项目的免费开源项目管理工具。您可以轻松地管理项目的建立,报告,
随着IT基础架构向云的迁移和物联网的普及,组织和IT专业人员正在更广泛地使用公共云服务。随着在其上运行的服务器和服务的增加,系统生成的日志的数量也在增加。由于多种原因,对这些日志的分析在基础架构中非常重要。这包括遵守安全策略和法规,系统故障排除,对与安全相关的事件做出响应或了解用户行为。
三个名为Elasticsearch,Logstash和Kibana的非常流行的开源应用程序结合在一起创建了Elastic Stack或ELK Stack。Elastic Stack是用于搜索,分析和可视化日志和数据的非常强大的工具。Elasticsearch是一个分布式,实时,可扩展且高度可用的应用程序,用于存储日志并在其中进行搜索。Logstash收集Beats发送的日志,对其进行增强,然后将其发送到Elasticsearch。Kibana是用于可视化日志和可行见解的Web UI。
在本教程中,我们将在Ubuntu 17.04上安装带有X-Pack的最新版本的Elasticsearch,Logstash和Kibana。
要遵循本教程,您将需要一个Vultr 64位Ubuntu 17.04服务器实例,该实例至少具有4 GB RAM。对于生产环境,硬件需求随用户和日志数量的增加而增加。
本教程是从sudo
用户角度编写的。要设置sudo用户,请遵循Debian上的“如何使用Sudo”指南。
您还将需要一个指向您服务器的域,以从Let's Encrypt CA获得证书。
在Ubuntu服务器实例上安装任何软件包之前,建议先更新系统。使用sudo用户登录并运行以下命令以更新系统。
sudo apt update
sudo apt -y upgrade
系统完成升级后,请继续下一步。
Elasticsearch需要Java 8才能工作。它同时支持Oracle Java和OpenJDK。本教程的这一部分演示了Oracle Java和OpenJDK的安装。
确保安装以下任何Java版本。对于Elasticsearch,建议安装Oracle Java。但是,您也可以根据自己的喜好选择安装OpenJDK。
要在Ubuntu系统上安装Oracle Java,您需要通过运行以下命令来添加Oracle Java PPA:
sudo add-apt-repository ppa:webupd8team/java
现在,通过运行以下命令来更新存储库信息:
sudo apt update
现在,您可以通过运行以下命令轻松安装Java 8的最新稳定版本:
sudo apt -y install oracle-java8-installer
出现提示时接受许可协议。安装完成后,您可以通过运行以下命令来验证Java版本:
java -version
您应该看到类似于以下内容的输出:
user@vultr:~$ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
您还可以JAVA_HOME
通过安装设置和其他默认值oracle-java8-set-default
。跑:
sudo apt -y install oracle-java8-set-default
现在,您可以JAVA_HOME
通过运行以下命令来验证是否设置了变量:
echo "$JAVA_HOME"
输出应类似于:
user@vultr:~$ echo "$JAVA_HOME"
/usr/lib/jvm/java-8-oracle
如果未获得上面显示的输出,则可能需要注销并再次登录到Shell。现在,您的服务器上已安装Oracle Java。现在,您可以继续本教程的步骤3,跳过安装OpenJDK。
OpenJDK的安装非常简单。只需运行以下命令即可安装OpenJDK。
sudo apt -y install default-jdk
安装完成后,您可以通过运行以下命令来验证Java版本:
java -version
您应该看到类似于以下内容的输出:
user@vultr:~$ java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-8u131-b11-2ubuntu1.17.04.2-b11)
OpenJDK 64-Bit Server VM (build 25.131-b11, mixed mode)
要设置JAVA_HOME
变量,请运行以下命令:
sudo echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> /etc/environment
通过运行以下命令重新加载环境文件:
sudo source /etc/environment
现在,您可以JAVA_HOME
通过运行以下命令来验证是否设置了变量:
echo "$JAVA_HOME"
输出应类似于:
user@vultr:~$ echo "$JAVA_HOME"
/usr/lib/jvm/java-8-openjdk-amd64/
Elasticsearch是一个超快速,分布式,高可用性的RESTful搜索引擎。通过运行以下命令添加Elasticsearch APT存储库:
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
上面的命令为Elasticsearch创建一个新的存储库文件,并将源条目添加到其中。现在导入用于对软件包签名的PGP密钥。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
通过运行以下命令来更新APT存储库元数据:
sudo apt update
通过运行以下命令来安装Elasticsearch。
sudo apt -y install elasticsearch
上面的命令将在您的系统上安装最新版本的Elasticsearch。一旦安装了Elasticsearch,通过运行以下命令重新加载Systemd服务守护程序:
sudo systemctl daemon-reload
启动Elasticsearch并使它能够在启动时自动启动。
sudo systemctl enable elasticsearch
sudo systemctl start elasticsearch
要停止Elasticsearch,可以运行:
sudo systemctl stop elasticsearch
要检查服务的状态,可以运行:
sudo systemctl status elasticsearch
Elasticsearch现在在port上运行9200
。您可以通过运行以下命令来验证它是否正在工作并产生结果。
curl -XGET 'localhost:9200/?pretty'
将显示类似以下的信息。
user@vultr:~$ curl -XGET 'localhost:9200/?pretty'
{
"name" : "wDaVa1K",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "71drjJ8PTyCcbai33Esy3Q",
"version" : {
"number" : "5.5.1",
"build_hash" : "19c13d0",
"build_date" : "2017-07-18T20:44:24.823Z",
"build_snapshot" : false,
"lucene_version" : "6.6.0"
},
"tagline" : "You Know, for Search"
}
X-Pack是Elastic Stack插件,提供许多附加功能,例如安全性,警报,监视,报告和图形功能。X-Pack还为Elasticsearch和Kibana提供用户身份验证,并监视Kibana中的不同节点。X-Pack和Elasticsearch必须安装相同的版本,这一点很重要。
您可以通过运行以下命令直接安装X-Pack for Elasticsearch:
cd /usr/share/elasticsearch
sudo bin/elasticsearch-plugin install x-pack
要继续安装,请y
在出现提示时输入。此命令会将X-Pack插件安装到您的系统。安装后,X-Pack启用Elasticsearch的身份验证。默认用户名是elastic
,密码是changeme
。您可以通过运行与检查Elasticsearch是否有效相同的命令来检查是否启用了身份验证。
curl -XGET 'localhost:9200/?pretty'
现在,输出将显示身份验证失败。
user@vultr:~# curl -XGET 'localhost:9200/?pretty'
{
"error" : {
"root_cause" : [
{
"type" : "security_exception",
"reason" : "missing authentication token for REST request [/?pretty]",
"header" : {
"WWW-Authenticate" : "Basic realm=\"security\" charset=\"UTF-8\""
}
}
],
"type" : "security_exception",
"reason" : "missing authentication token for REST request [/?pretty]",
"header" : {
"WWW-Authenticate" : "Basic realm=\"security\" charset=\"UTF-8\""
}
},
"status" : 401
}
changeme
通过运行以下命令来更改默认密码。
curl -XPUT -u elastic:changeme 'localhost:9200/_xpack/security/user/elastic/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "NewElasticPassword"
}
'
替换NewPassword
为您要使用的实际密码。您可以通过运行以下命令来检查是否设置了新密码并且Elasticsearch正在运行。
curl -XGET -u elastic:NewElasticPassword 'localhost:9200/?pretty'
您将看到显示成功执行查询的输出。
此外,通过运行以下命令编辑Elasticsearch配置文件:
sudo nano /etc/elasticsearch/elasticsearch.yml
找到以下几行,取消注释,并根据提供的说明进行更改。
#cluster.name: my-application #Provide the name of your cluster
#node.name: node-1 #Provide the name of your node
#network.host: 192.168.0.1
对于network.host
,提供分配给系统的专用IP地址。通过运行以下命令重新启动Elasticsearch实例:
sudo systemctl restart elasticsearch
现在,localhost
您需要使用IP地址而不是IP地址来运行查询curl
。
curl -XGET -u elastic:NewElasticPassword '192.168.0.1:9200/?pretty'
替换192.168.0.1
为服务器的实际专用IP地址。现在我们已经安装了Elasticsearch,继续进行安装Kibana。
Kibana用于通过Web界面可视化日志和可行的见解。它也可以用于管理Elasticsearch。建议安装与Elasticsearch相同版本的Kibana。
由于我们已经添加了Elasticsearch存储库和PGP密钥,我们可以通过运行以下命令直接安装Kibana:
sudo apt -y install kibana
先前的命令将在您的系统上安装Kibana的最新版本。一旦安装了Kibana,请通过运行以下命令重新加载Systemd服务守护程序:
sudo systemctl daemon-reload
您可以运行以下命令来启动Kibana,并使它能够在启动时自动启动:
sudo systemctl enable kibana
sudo systemctl start kibana
您可以通过运行以下命令直接安装X-Pack for Kibana:
cd /usr/share/kibana
sudo bin/kibana-plugin install x-pack
X-Pack for Kibana默认情况下启用了图形,机器学习和监视。X-Pack还为Kibana启用身份验证。默认用户名是kibana
,密码是changeme
。更改Kibana用户的默认密码很重要。运行以下命令来更改密码。
curl -XPUT -u elastic '192.168.0.1:9200/_xpack/security/user/kibana/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "NewKibanaPassword"
}
'
用192.168.0.1
服务器的实际专用IP地址和NewKibanaPassword
Kibana用户的新密码替换。
通过运行以下命令编辑Kibana配置文件:
sudo nano /etc/kibana/kibana.yml
查找以下行,并根据提供的说明更改值。
#elasticsearch.url: "http://localhost:9200"
#elasticsearch.username: "user"
#elasticsearch.password: "password"
取消注释上面的行,并在其中elasticsearch.url
提供Elasticsearch实例的URL。IP地址必须与中使用的IP地址相同elasticsearch.yml
。此外,将用户名从设置为user
,elastic
并提供您之前设置的弹性用户的密码。
通过运行以下命令重新启动Kibana实例:
sudo systemctl restart kibana
由于我们localhost
在端口上运行Kibana 5601
,因此建议使用Apache或Nginx设置反向代理以从本地网络外部访问Kibana。在本教程中,我们将Nginx设置为Kibana的反向代理。我们还将使用Let's Encrypt免费SSL证书来保护Nginx实例。
通过运行以下命令安装Nginx:
sudo apt -y install nginx
启动并启用Nginx以在启动时自动启动。
sudo systemctl start nginx
sudo systemctl enable nginx
现在已经安装并正在运行Nginx Web服务器,我们可以继续安装Certbot,它是官方的自动Let's Encrypt证书客户端。通过运行以下命令将Certbot PPA添加到您的系统:
sudo add-apt-repository ppa:certbot/certbot
更新存储库元信息。
sudo apt update
现在,您可以通过运行以下命令轻松安装最新版本的Certbot:
sudo apt -y install python-certbot-nginx
前面的命令将解决并安装所需的依赖项以及Certbot软件包。
现在我们已经安装了Certbot,通过运行以下命令为您的域生成证书:
sudo certbot certonly --webroot -w /var/www/html/ -d kibana.example.com
不要忘记更改kibana.example.com
您的实际域名。前面的命令将使用Certbot客户端。该certonly
参数告诉Certbot客户端仅生成证书。使用此选项可确保不会自动安装证书,并且Nginx配置未更改。通过将质询文件放在指定webroot
目录中来完成验证。
Certbot将要求您提供电子邮件地址以发送续订通知。您还需要接受许可协议。
要从Let's Encrypt CA获得证书,必须确保要为其生成证书的域指向服务器。如果不是,请对您域的DNS记录进行必要的更改,并等待DNS传播,然后再次提出证书请求。Certbot在提供证书之前会检查域权限。
生成的证书很可能存储在/etc/letsencrypt/live/kibana.example.com/
目录中。SSL证书将存储为fullchain.pem
,私钥将存储为privkey.pem
。
让我们加密证书将在90天后到期,因此建议使用cronjobs为证书设置自动续订。Cron是一项系统服务,用于运行定期任务。
通过运行以下命令打开cron作业文件:
sudo crontab -e
在文件末尾添加以下行。
30 5 * * 1 /usr/bin/certbot renew -a nginx --quiet
上述cron作业将在每个星期一的5:30 AM运行。如果证书到期,它将自动更新它们。
通过运行以下命令,为Nginx编辑默认虚拟主机文件。
sudo nano /etc/nginx/sites-available/default
用以下内容替换现有内容。
server {
listen 80 default_server;
server_name kibana.example.com
return 301 https://$server_name$request_uri;
}
server {
listen 443 default_server ssl http2;
server_name kibana.example.com;
ssl_certificate /etc/letsencrypt/live/kibana.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/kibana.example.com/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
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;
}
}
确保kibana.example.com
使用您的实际域名进行更新,并验证SSL证书和私钥的路径。
通过运行以下命令重新启动Nginx Web服务器:
sudo systemctl restart nginx
如果一切配置正确,您将看到Kibana登录屏幕。使用用户名kibana
和您设置的密码登录。您应该能够成功登录并查看Kibana仪表板。离开仪表板,现在,我们稍后将对其进行配置。
Logstash也可以通过我们之前添加的官方Elasticsearch存储库进行安装。通过运行以下命令安装Logstash:
sudo apt -y install logstash
上面的命令将在您的系统上安装最新版本的Logstash。Logstash安装完成后,请运行以下命令重新加载Systemd服务守护程序:
sudo systemctl daemon-reload
启动Logstash并使它能够在启动时自动启动。
sudo systemctl enable logstash
sudo systemctl start logstash
您可以通过运行以下命令直接安装X-Pack for Logstash:
cd /usr/share/logstash
sudo bin/logstash-plugin install x-pack
X-Pack for Logstash带有默认用户logstash_system
。您可以通过运行以下命令重置密码:
curl -XPUT -u elastic '192.168.0.1:9200/_xpack/security/user/logstash_system/_password?pretty' -H 'Content-Type: application/json' -d'
{
"password": "NewLogstashPassword"
}
'
替换192.168.0.1
为服务器的实际专用IP地址和NewLogstashPassword
Logstash用户的新密码。
现在,通过运行以下命令重新启动Logstash服务:
sudo systemctl restart logstash
通过运行以下命令编辑Logstash配置文件:
sudo nano /etc/logstash/logstash.yml
在文件末尾添加以下行以启用对Logstash实例的监视。
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.url: http://192.168.0.1:9200
xpack.monitoring.elasticsearch.username: logstash_system
xpack.monitoring.elasticsearch.password: NewLogstashPassword
根据您的设置替换Elasticsearch URL和Logstash密码。
现在,您可以将Logstash配置为使用不同的Beats接收数据。有多种类型的节拍可用:Packetbeat,Metricbeat,Filebeat,Winlogbeat和Heartbeat。您将需要分别安装每个Beat。
在本教程中,我们在Ubuntu 17.04上安装了带有X-Pack的Elastic Stack。现在,服务器上已安装了基本的ELK堆栈。
简介Apache Maven是用于Java项目的免费开源项目管理工具。您可以轻松地管理项目的建立,报告,
由与流行的Apache Web服务器相同的组织创建的Apache Tomcat是一种Web服务器,允许您向访问者提供Java网页。在这
本指南说明了如何在Ubuntu 16.04服务器上安装Apache Tomcat。前提条件部署新的Ubuntu 16.04服务器实例。创建一个非根肥皂水
如何在 Windows 和 MacOS 中啟用或禁用 Java 更新可用消息。
简介Apache Maven是用于Java项目的免费开源项目管理工具。您可以轻松地管理项目的建立,报告,
使用其他系统?Red5是用Java实现的开源媒体服务器,它允许您运行Flash多用户应用程序,例如实时流媒体
使用其他系统?Gradle是基于Apache Ant和Apache Maven概念的免费和开源构建自动化工具集。Gradle提供
您需要什么具有至少1GB RAM的Vultr VPS。SSH访问(具有root /管理特权)。步骤1:首先安装BungeeCord
简介Java是一种流行的软件平台,可让您在各种硬件环境中开发和运行Java应用程序和小程序。那里
Apache Tomcat是设计用于服务Java网页的开源Web服务器。它被广泛部署并支持各种关键任务Web应用程序
在本指南中,您将学习如何在Ubuntu 16.04上手动安装Java 8。本教程中的说明也适用于其他版本的Ubuntu
简介Bukkit是Minecraft的扩展,提供了一些独有的功能以及可极大改善游戏体验的插件。
Scala是一种面向对象的功能性编程语言。它是一种流行的语言,已用于开发应用程序,例如Spark,Akka,
Elasticsearch是一种流行的开源全文本搜索和分析引擎。凭借其多功能性,可扩展性和易用性,Elasticsearch广泛
使用其他系统?Red5是用Java实现的开源媒体服务器,它允许您运行Flash多用户应用程序,例如实时流媒体
使用其他系统?Gradle是基于Apache Ant和Apache Maven概念的免费和开源构建自动化工具集。Gradle提供
Apache Maven是一个免费的开源软件项目管理工具,被广泛用于部署基于Java的应用程序。先决条件
使用其他系统?GoCD是一个开源的持续交付和自动化系统。它允许您使用其并行的
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息
大數據的13個商業數據提取工具
我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true
隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。
洞察 26 種大數據分析技術:第 1 部分
過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。