1 环境布置
服务名称 | IP地址 | 安装服务 |
---|
nginx | 172.16.0.10 | nginx+filebeat+kibana |
spring cloud | 172.16.0.11 | openjdk+filebeat |
redis | 172.16.0.12 | redis |
ELK | 172.16.0.13 | ES+logstash |
mysql | 172.16.0.100 | mysql+filebeat |
2 nginx节点
2.1 安装nginx
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum install -y gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.20.2.tar.gz
tar -zxvf nginx-1.20.2.tar.gz
useradd -M -s /sbin/nologin nginx
cd nginx-1.20.2
------------------------------------------------------------------------------------------------------------
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module \
--with-http_ssl_modulemake && make install
------------------------------------------------------------------------------------------------------------
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
vim /lib/systemd/system/nginx.service
------------------------------------------------------------------------------------------------------------
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
------------------------------------------------------------------------------------------------------------
chmod 754 /lib/systemd/system/nginx.service
vim /usr/local/nginx/conf/nginx.conf
------------------------------------------------------------------------------------------------------------
server {listen 80;server_name localhost;location / {proxy_pass http://172.16.0.11:8080; proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}
------------------------------------------------------------------------------------------------------------
systemctl restart nginx.service
systemctl enable nginx.service
2.2 安装Filebeat
cd /opt
rpm -ivh filebeat-6.6.1-x86_64.rpm
cd /etc/filebeat
cp filebeat.yml filebeat.yml.bakvim /etc/filebeat/filebeat.yml
------------------------------------------------------------------------------------------------------------
filebeat.inputs:
- type: logenabled: truepaths:- /usr/local/nginx/logs/access.log - /usr/local/nginx/logs/error.log tags: ["nginx"]
--------------Elasticsearch output-------------------
(全部注释掉)
----------------Logstash output---------------------
output.logstash:hosts: ["172.16.0.13:5044"]
------------------------------------------------------------------------------------------------------------
systemctl start filebeat && systemctl enable filebeat
2.3 安装 Kibana
yum install -y kibana
vim /etc/kibana/kibana.yml
------------------------------------------------------------------------------------------------------------
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://172.16.0.13:9200"]
kibana.index: ".kibana"
------------------------------------------------------------------------------------------------------------
systemctl start kibana && systemctl enable kibana
3 redis节点
3.1 安装redis
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum install -y gcc gcc-c++ make
tar zxvf redis-5.0.7.tar.gz -C /opt/
cd /opt/redis-5.0.7/
make && make PREFIX=/usr/local/redis install
cd /opt/redis-5.0.7/utils
./install_server.sh
......
Please select the redis executable path [] /usr/local/redis/bin/redis-server
ln -s /usr/local/redis/bin/* /usr/local/bin/
netstat -natp | grep redis
/etc/init.d/redis_6379 stop
/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 restart
/etc/init.d/redis_6379 status
vim /etc/redis/6379.conf
bind 0.0.0.0
daemonize no
/etc/init.d/redis_6379 restart
netstat -tunlp | grep 6379
redis-server
4 MySQL节点
4.1 安装MySQL
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
useradd -s /sbin/nologin mysql
tar zxvf mysql-5.7.17.tar.gz -C /opt
tar zxvf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost
cd /opt/mysql-5.7.17/
------------------------------------------------------------------------------------------------------------
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
------------------------------------------------------------------------------------------------------------
make -j 4 && make install
⚠️ 注意:如果 CMake 出错,解决后需删除 `CMakeCache.txt` 再重新执行
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
cd /usr/local/mysql/bin/
------------------------------------------------------------------------------------------------------------
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
------------------------------------------------------------------------------------------------------------
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld
netstat -anpt | grep 3306
vim /etc/my.cnf
------------------------------------------------------------------------------------------------------------
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
default-character-set=utf8[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
log_bin = /usr/local/mysql/data/master-bin
relay_log = /usr/local/mysql/data/slave-bin
log_error = /var/log/mysql/mysql_error.log
slow_query_log = ON
slow_query_log_file = /var/log/mysql/mysql_slow.log
long_query_time = 2
log_queries_not_using_indexes = ON
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash
------------------------------------------------------------------------------------------------------------
mysqladmin -u root -p password "123456"
mysql -u root -p123456
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
vim /etc/my.cnf
------------------------------------------------------------------------------------------------------------
将这2行的
systemctl restart mysqld
mysql -uroot -p < /opt/yl_app.sql
show databases;
use yl_app;
show tables;
CREATE USER 'root'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON yl_app.* TO 'root'@'172.16.0.%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
4.2 安装 Filebeat
cd /opt
rpm -ivh filebeat-6.6.1-x86_64.rpm
cd /etc/filebeat
cp filebeat.yml filebeat.yml.bakvim /etc/filebeat/filebeat.yml
------------------------------------------------------------------------------------------------------------
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/mysqld.log tags: ["mysql"] --------------Elasticsearch output-------------------
(全部注释掉)
----------------Logstash output---------------------
output.logstash:hosts: ["172.16.0.13:5044"]
------------------------------------------------------------------------------------------------------------
systemctl start filebeat && systemctl enable filebeat
5 Spring Cloud节点
5.1 部署 Spring Cloud 服务
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
yum install -y java
java -version
将yl_application-1.0-SNAPSHOT.jar上传到java节点
nohup java -Xms512m -Xmx2g -jar yl_application-1.0-SNAPSHOT.jar &
tail -f nohup.out
5.2 安装 Filebeat
cd /opt
rpm -ivh filebeat-6.6.1-x86_64.rpm
cd /etc/filebeat
cp filebeat.yml filebeat.yml.bakvim /etc/filebeat/filebeat.yml
------------------------------------------------------------------------------------------------------------
filebeat.inputs:
- type: logenabled: truepaths:- /var/log/spring/app.log tags: ["spring"] --------------Elasticsearch output-------------------
(全部注释掉)
----------------Logstash output---------------------
output.logstash:hosts: ["172.16.0.13:5044"]
------------------------------------------------------------------------------------------------------------
systemctl start filebeat && systemctl enable filebeat
6 ELK节点
6.1 安装 Elasticsearch
systectl stop firewalld
setenforce 0
注:版本问题
java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
cd /opt
rpm -ivh elasticsearch-6.6.1.rpm
systemctl daemon-reload
systemctl enable elasticsearch.service
cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bakvim /etc/elasticsearch/elasticsearch.yml
------------------------------------------------------------------------------------------------------------
node.name: elk-server
network.host: 0.0.0.0
http.port: 9200
path.data: /data/elk_data
path.logs: /var/log/elasticsearch/
bootstrap.memory_lock: false
discovery.seed_hosts: ["172.16.0.13"]
cluster.initial_master_nodes: ["elk-server"]
------------------------------------------------------------------------------------------------------------
systemctl start elasticsearch && systemctl enable elasticsearch
curl http://172.16.0.13:9200
6.2 安装 Logstash
cd /opt
rpm -ivh logstash-6.6.1.rpm
systemctl start logstash.service
systemctl enable logstash.service
ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
logstash -e 'input { stdin{} } output { stdout{} }'
输入www.baidu.com
示例输出:
{
"host" => "elk",
"@timestamp" => 2025-09-30T03:24:37.461Z,
"message" => "www.baidu.com",
"@version" => "1"
}vim /etc/logstash/conf.d/elfk.conf
------------------------------------------------------------------------------------------------------------
input {beats {port => 5044 }
}output {elasticsearch {hosts => ["http://172.16.0.13:9200"] index => "logstash-%{+YYYY.MM.dd}" }stdout { codec => rubydebug }
}
------------------------------------------------------------------------------------------------------------
logstash -f /etc/logstash/conf.delfk.conf
logstash -f /etc/logstash/conf.d/elfk.conf --path.settings /etc/logstash/