安装logstash
使用以下命令用包管理器安装它:
$ sudo apt install logstash
添加Elastic存储库
Elastic有一个完整的存储库,可用于基于Debian的系统,其中包含了我们正要安装的ELK堆栈。
导入Elastic的GPG密钥:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add
创建以下文件:
$ sudo nano /etc/apt/sources.list.d/elastic.list
添加下面内容:
deb https://artifacts.elastic.co/packages/6.x/apt stable main
更新“APT”,现在添加了存储库:
$ sudo apt update
ELK是在Ubuntu20.04 Focal onitroada上管理大量日志数据的解决方案。
ELK stack结合了Elasticsearch、Logstash和Kibana,这些开源工具协同工作,为您提供了从方便的图形web界面管理日志数据的能力。
这三种工具由Elastic开发,专门设计用于协同工作。在本教程中,我们将向您展示在Ubuntu 20.04系统上启动并运行ELK所需的步骤。
安装依赖项
注意,ELK是基于nginx的,所以我们将通过nginx
设置一个Web服务器。
如果我们已安装Apache,则需要禁用它或者更改端口,以便两个不冲突。
Logstash需要Java 8或者Java 11。
查看系统上安装的java版本:
$ java -version
如果它不是8或者11,我们需要在进行之前删除它。
执行以下命令以获取安装的所有elk依赖项:
$ sudo apt install openjdk-11-jre apt-transport-https wget nginx
登录到Kibana
打开浏览器并导航到我们分配给Kibana的地址。
http://127.0.0.1
或者
http://nginx配置的站点地址/
设置nginx
我们将通过nginx访问Kibana,因此我们需要设置基本的nginx配置,以提供Kibana实例。
首先为kibana创建密码。这样,服务器无法在Internet上公开访问。
$ echo "admin:`openssl passwd -apr1 YourPassword`" | sudo tee -a /etc/nginx/htpasswd.kibana
生成密码后,我们需要创建一个新的nginx配置文件来服务于我们的Kibana实例:
$ sudo nano /etc/nginx/sites-available/kibana
添加代码如下:
server { listen 80; server_name your-site.com; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/htpasswd.kibana; 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; } }
保存新配置后,我们需要删除现有的默认配置,并在 sites-enabled
中为Kibana创建一个新符号链接。
$ sudo rm /etc/nginx/sites-enabled/default $ sudo ln -s /etc/nginx/sites-available/kibana /etc/nginx/sites-enabled/kibana
最后,重新启动nginx以使所有更改生效:
$ sudo systemctl restart nginx
安装Elasticsearch和Kibana
执行以下命令以安装Elasticsearch和Kibana:
$ sudo apt install elasticsearch kibana
编辑Kibana配置文件,将主机服务器设置为“localhost`:
$ sudo nano /etc/kibana/kibana.yml
在kibana.yml
中,找到以下行并取消注释它:
server.host: "localhost"
重新启动Kibana并启动Elasticsearch:
$ sudo systemctl restart kibana $ sudo systemctl start elasticsearch