安装ELK

我按照别人的教程安装了一遍ELK,表示尊敬,送上大佬博客地址:ELK安装教程

但是安装过程中发现一些错误之处,所以自己动手装了几遍,现在总结下来,以备下次学习。

我安装的版本是elk7.3.0,mysql版本是8.0.20

踩坑:logstash用的MySQL驱动jar包版本必须要和mysql版本对应上。比如说,我的MySQL版本是8.0.20,那么MySQL的驱动jar包也应该是8.0.20。如果你的elk是安装在阿里云上,也可以

1,安装es

下载es镜像

docker pull docker.io/elasticsearch:7.3.0 

启动

docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es -d docker.io/elasticsearch:7.3.0 

2,安装kibana

下载kibana镜像

docker pull docker.io/kibana:7.3.0 

启动 

docker run --rm -p 5601:5601 \
-e ELASTICSEARCH_URL=http://localhost:9200 --name kibana \
-v /home/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml -d kibana:7.3.0

这个启动时挂载了一个配置文件kibana.yml,到目录/home/elk/kibana/config/目录下,新建配置文件kibana.yml,内容如下

#
## ** THIS IS AN AUTO-GENERATED FILE **
##
#
## Default Kibana configuration for docker target
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.44.130:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: zh-CN      #汉化

3,安装logstash

下载镜像

docker pull docker.io/logstash:7.3.0 

为了运行获取容器里面的配置文件(配置文件在本地的话,方便修改和多次使用),我们先新建一个logstash容器,然后将配置文件从容器中复制到本地。

运行容器

docker run --name logstash -d -p 5044:5044 -p 9600:9600 logstash:7.3.0 

提前在本地创建配置文件目录并赋权限。我是root用户下安装的elk,所以直接赋root用户权限。

mkdir -p /home/elk/logstash && \
chown -R root /home/elk/logstash

拷贝配置文件

docker cp logstash:/usr/share/logstash/config /home/elk/logstash/config

删除容器

docker rm -f logstash

创建正式容器,到/home/elk/logstash/config下修改配置文件logstash-sample.conf

input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-8.0.20.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://mysql的ip地址:3306/数据库"
    jdbc_user => "root"
    jdbc_password => "123456"
    schedule => "* * * * *"
    jdbc_default_timezone => "Asia/Shanghai"
    statement => "select * from table"
    use_column_value  => false
  }
}
output{
    elasticsearch{
        hosts => "es地址:9200" # ES连接
        index => "uum_user_log"      # ES索引名称
        document_id => "%{id}"   # id对应MYSQL中主键字段
    }
}

新建一个路径 /home/elk/jars/,存放相关jar包。从mysql官网下载驱动jar包mysql-connector-java-8.0.20.jar到 /home/elk/jars/  目录下,这样在创建logstash容器时就会将jar包映射到容器的/usr/share/logstash/config/路径下

 

正式创建容器

docker run --name logstash -d \
-p 5044:5044 \
-p 9600:9600 \
-v /home/elk/logstash/config:/usr/share/logstash/config \
-v /home/elk/jars/mysql-connector-java-8.0.20.jar:/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.20.jar \
-e xpack.monitoring.elasticsearch.hosts=http://esIp地址:9200 \
logstash:7.3.0 \
-f /usr/share/logstash/config/logstash-sample.conf

 

<think>好的,我需要回答用户关于在Ubuntu上安装ELK堆栈的问题。首先,我得回忆一下ELK各个组件的安装步骤,以及如何在Ubuntu系统上配置它们。用户提到的是Ubuntu,所以需要针对这个Linux发行版的具体操作,比如使用apt-get来安装依赖或者包。 首先,Elasticsearch是ELK的核心,负责存储和检索数据。安装Elasticsearch通常需要先导入GPG密钥,添加源列表,然后使用apt安装安装完成后,还需要配置elasticsearch.yml文件,设置网络主机和内存选项。记得要启动服务并设置开机自启。 接下来是Logstash,它用于处理日志数据的收集和传输。同样,需要添加源并安装,然后配置一个简单的.conf文件来测试输入输出。比如用stdin和stdout来测试管道是否工作。服务启动后也要确保正常运行。 然后是Kibana,作为可视化工具,安装步骤类似,但配置时需要指定Elasticsearch的地址。安装后通过浏览器访问5601端口来验证是否成功。 用户提供的引用中有提到使用Docker安装的方法,可能用户也考虑容器化部署,但当前问题明确是在Ubuntu上安装,所以可能暂时不需要涉及Docker。不过可以提到如果有需要的话,可以后续补充Docker方式。 需要注意各个组件之间的依赖关系,比如Kibana需要连接到Elasticsearch,所以安装顺序应该是先Elasticsearch,再Logstash,最后Kibana。同时,防火墙设置可能需要开放相关端口,如9200、9300、5044、5601等。 另外,系统配置方面,比如vm.max_map_count的设置,可能需要在/etc/sysctl.conf中调整,特别是对于Elasticsearch的性能优化。还有文件描述符和线程数的限制,可能需要修改limits.conf文件。 最后,测试每个组件是否正常运行,比如用curl检查Elasticsearch的API,或者通过Kibana的界面访问。生成的相关问题可以包括性能优化、安全配置、日志收集示例等,帮助用户进一步使用ELK。 需要确保步骤清晰,分点说明,并提醒用户可能的常见问题,比如权限不足或端口冲突。同时,引用提供的资料中有一些安装细节,比如Mac和Linux的不同,需要适配到Ubuntu的环境。</think>### 在Ubuntu系统上安装配置ELK堆栈的步骤 #### 1. 安装Elasticsearch **步骤说明** Elasticsearch是ELK的核心组件,用于数据存储与检索。 1. **安装依赖与添加仓库** 导入GPG密钥并添加APT源: ```bash wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list sudo apt update ``` 2. **安装Elasticsearch** ```bash sudo apt install elasticsearch ``` 3. **配置与启动** 编辑配置文件: ```bash sudo nano /etc/elasticsearch/elasticsearch.yml ``` 修改以下参数(根据需求调整): ```yaml network.host: 0.0.0.0 # 允许外部访问 cluster.initial_master_nodes: ["节点名称"] # 单节点可设为当前主机名 ``` 启动服务: ```bash sudo systemctl start elasticsearch sudo systemctl enable elasticsearch ``` 4. **验证安装** ```bash curl -X GET "localhost:9200" ``` 若返回JSON格式的版本信息,则安装成功[^3][^4]。 --- #### 2. 安装Logstash **步骤说明** Logstash用于日志收集、过滤与传输。 1. **安装Logstash** ```bash sudo apt install logstash ``` 2. **创建测试配置文件** 新建配置文件`test.conf`: ```bash sudo nano /etc/logstash/conf.d/test.conf ``` 输入以下内容(测试输入输出): ```conf input { stdin {} } output { stdout {} } ``` 3. **启动服务** ```bash sudo systemctl start logstash sudo systemctl enable logstash ``` 4. **测试管道** 运行命令并输入任意文本: ```bash /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf ``` 若终端回显输入内容,则配置正常[^3]。 --- #### 3. 安装Kibana **步骤说明** Kibana提供数据可视化界面。 1. **安装Kibana** ```bash sudo apt install kibana ``` 2. **配置连接Elasticsearch** 编辑配置文件: ```bash sudo nano /etc/kibana/kibana.yml ``` 取消注释并修改: ```yaml server.host: "0.0.0.0" # 允许外部访问 elasticsearch.hosts: ["http://localhost:9200"] ``` 3. **启动服务** ```bash sudo systemctl start kibana sudo systemctl enable kibana ``` 4. **访问Kibana** 浏览器输入:`http://<Ubuntu-IP>:5601`,若显示Kibana界面则成功[^2][^3]。 --- #### 4. 系统配置优化 - **调整内存限制** 编辑`/etc/elasticsearch/jvm.options`,根据服务器配置修改: ```conf -Xms2g # 最小内存 -Xmx2g # 最大内存 ``` - **开放防火墙端口** ```bash sudo ufw allow 9200/tcp # Elasticsearch sudo ufw allow 5601/tcp # Kibana sudo ufw allow 5044/tcp # Logstash ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值