Discuz论坛和java应用的架构部署
部署discuz论坛以及java应用,实现基于haproxy的acl不同域名访问不同网站,对每个节点实现高可用,使用elk日志监控系统来进行日志的可视化收集,使用zabbix对各个节点机器进行监控。
下面使拓扑图
思路:
将Java应用以及discuz论坛通过nfs服务器挂载到web端,调度器通过haproxy代理访问web端的80端口来访问discuz,通过haproxy代理访问web端的8080端口访问java应用网站,在mysql服务器进行主从复制,使用redis收集discuz的缓存,通过sersycn将nfs服务器挂载的目录备份到rsync服务器,对各个节点使用keepalived分配虚拟ip实现各节点的高可用。可以通过ansible批量进行主机的环境部署,比如keepalived、zabbix-agent等。
主机配置
以下是实验步骤以及各个主机配置信息
将各个主机的主机名对应的IP写入/etc/hosts文件并拷贝到所有主机
[root@zab01 opt]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.44.4 zab01
192.168.44.5 lb01
192.168.44.6 lb02
192.168.44.7 web01
192.168.44.8 web02
192.168.44.9 redis01
192.168.44.10 redis02
192.168.44.11 db01
192.168.44.12 db02
192.168.44.13 elk
192.168.44.14 rsync
192.168.44.254 discuz.example.com
192.168.44.253 java.example.com
[root@zab01 opt]# cat copyfile.yml
- name: 拷贝压缩包到目标主机组hosts: all # 指定目标主机组(替换为实际组名)tasks:- name: 拷贝压缩包到远程主机ansible.builtin.copy:src: /etc/hosts # 控制节点上压缩包的绝对路径dest: /etc/ # 远程主机的目标路径(含文件名)
ansible进行各个主机环境的部署:
ansible主机分组:
[all]
192.168.44.5
192.168.44.6
192.168.44.7
192.168.44.8
192.168.44.11
192.168.44.12
192.168.44.13
192.168.44.14
192.168.44.9
192.168.44.10[agent]
192.168.44.5
192.168.44.6
192.168.44.7
192.168.44.8
192.168.44.11
192.168.44.12
192.168.44.13
192.168.44.14[agent2]
192.168.44.9
192.168.44.10[keepalived]
192.168.44.5
192.168.44.6
192.168.44.9
192.168.44.10
192.168.44.11
192.168.44.12
进行主机批量部署的playbook:
[root@zab01 opt]# cat zdbs.yml
---
- name: 配置所有主机的免密登录hosts: allgather_facts: notasks:- name: 确保.ssh目录存在并设置正确权限ansible.builtin.file:path: ~/.sshstate: directorymode: '0700'- name: 分发公钥文件到所有主机ansible.builtin.copy:src: ~/.ssh/id_rsa.pubdest: ~/.ssh/authorized_keysmode: '0600'- name: 拷贝filebeat.rpm到所有主机hosts: allgather_facts: yestasks:- name: 复制filebeat.rpm到目标主机ansible.builtin.copy:src: /opt/filebeat-7.17.29-x86_64.rpmdest: /opt/filebeat.rpmmode: '0644'- name: 安装filebeat.rpm包ansible.builtin.yum:name: /opt/filebeat.rpmstate: presentbecome: yes- name: 配置agent组的zabbix-agenthosts: agentgather_facts: yestasks:- name: 安装zabbix-agent7.0源ansible.builtin.yum:name: https://repo.zabbix.com/zabbix/7.0/rhel/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/zabbix-release-7.0-2.el{{ ansible_distribution_major_version }}.noarch.rpmstate: presentdisable_gpg_check: yes- name: 安装zabbix-agentansible.builtin.yum:name: zabbix-agentstate: present- name: 配置zabbix-agent指向服务器192.168.44.4并设置主机名ansible.builtin.lineinfile:path: /etc/zabbix/zabbix_agentd.confregexp: "{{ item.regexp }}"line: "{{ item.line }}"loop:- { regexp: '^Server=.*', line: 'Server=192.168.44.4' }- { regexp: '^Hostname=.*', line: "Hostname={{ inventory_hostname }}" }- name: 配置agent2组的zabbix-agent2hosts: agent2gather_facts: yestasks:- name: 安装zabbix-agent7.0源ansible.builtin.yum:name: https://repo.zabbix.com/zabbix/7.0/rhel/{{ ansible_distribution_major_version }}/{{ ansible_architecture }}/zabbix-release-7.0-2.el{{ ansible_distribution_major_version }}.noarch.rpmstate: presentdisable_gpg_check: yes- name: 安装zabbix-agent2ansible.builtin.yum:name: zabbix-agent2state: present- name: 配置zabbix-agent2指向服务器192.168.44.4并设置主机名ansible.builtin.lineinfile:path: /etc/zabbix/zabbix_agent2.confregexp: "{{ item.regexp }}"line: "{{ item.line }}"loop:- { regexp: '^Server=.*', line: 'Server=192.168.44.4' }- { regexp: '^Hostname=.*', line: "Hostname={{ inventory_hostname }}" }- name: 在keepalived组安装keepalivedhosts: keepalivedgather_facts: yestasks:- name: 安装keepalivedansible.builtin.yum:name: keepalivedstate: present
mysql服务器
在批量部署成功之后,首先配置mysql服务器的主从复制以及实现其高可用
主从复制状态:
mysql> SHOW SLAVE STATUS\G
*************************** 1. row ***************************Slave_IO_State: Waiting for source to send eventMaster_Host: 192.168.44.11Master_User: slaveMaster_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000007Read_Master_Log_Pos: 54408230Relay_Log_File: relay-log.000002Relay_Log_Pos: 326Relay_Master_Log_File: mysql-bin.000007Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 54408230Relay_Log_Space: 530Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1Master_UUID: d340fe2b-6c1e-11f0-a747-000c29e79690Master_Info_File: mysql.slave_master_infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: Replica has read all relay log; waiting for more updatesMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 0Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version: Master_public_key_path: Get_master_public_key: 0Network_Namespace:
1 row in set, 1 warning (0.00 sec)
keepalived实现高可用:
! Configuration File for keepalivedglobal_defs {router_id MySQL_LB01
}vrrp_script check_mysql {script "/etc/keepalived/check_mysql.sh"interval 2weight 2fall 3rise 2
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 52priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.44.252}track_script {check_haproxy # 关联上面定义的vrrp_script}
}
mysql的check:
[root@db02 ~]# cat /etc/keepalived/check_mysql.sh
#!/bin/bash
zt=$(systemctl status mysqld | grep "Active:" | awk '{print $3}')
if [ "$zt" = "(running)" ];
thenexit 0
elsesystemctl stop keepalived.service
fi
从机keeplived配置:
! Configuration File for keepalivedglobal_defs {router_id LVS_DEVEL
}vrrp_script check_mysql {script "/etc/keepalived/check_mysql.sh"interval 2weight 2fall 3rise 2
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 52priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.44.252}track_script {check_haproxy # 关联上面定义的vrrp_script}
}
在数据库创建用户
mysql> SELECT user, host FROM mysql.user;
+------------------+--------------+
| user | host |
+------------------+--------------+
| discuz | 192.168.44.% |
| repl | 192.168.44.% |
| root | 192.168.44.% |
| slave | 192.168.44.% |
| zabbix | 192.168.44.% |
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+--------------+
将各应用所需的数据库表结构导入数据库(在zabbix服务器和nfs服务器将他们的表结构文件拷贝到MySQL主机):
[root@db01 ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -h192.168.44.252 -uzabbix -p zabbix # zabbix的表结构注入
[root@db01 ~]# mysql -uroot -p'123456' biyesheji < /tmp/biyesheji.sql # java应用的表结构注入
nfs服务器部署
nfs服务器解压discuz:
[root@elk ~]# cd /var/www/discuz/
[root@elk discuz]# ls
upload
[root@elk discuz]# cd upload/
[root@elk upload]# ls -l
总用量 76
-rwxrwxrwx 1 nginx nginx 2869 7月 27 2023 admin.php
drwxrwxrwx 10 nginx nginx 149 7月 27 2023 api
-rwxrwxrwx 1 nginx nginx 727 7月 27 2023 api.php
drwxrwxrwx 2 nginx nginx 23 7月 27 2023 archiver
drwxrwxrwx 2 nginx nginx 141 7月 31 10:43 config
-rwxrwxrwx 1 nginx nginx 1040 7月 27 2023 connect.php
-rwxrwxrwx 1 nginx nginx 106 7月 27 2023 crossdomain.xml
drwxrwxrwx 15 nginx nginx 4096 7月 31 10:46 data
-rwxrwxrwx 1 nginx nginx 5558 7月 26 2023 favicon.ico
-rwxrwxrwx 1 nginx nginx 2357 7月 27 2023 forum.php
-rwxrwxrwx 1 nginx nginx 906 7月 27 2023 group.php
-rwxrwxrwx 1 nginx nginx 1325 7月 27 2023 home.php
-rwxrwxrwx 1 nginx nginx 6920 7月 27 2023 index.php
drwxrwxrwx 5 nginx nginx 64 7月 27 2023 install
-rwxrwxrwx 1 nginx nginx 998 7月 27 2023 member.php
-rwxrwxrwx 1 nginx nginx 2410 7月 27 2023 misc.php
-rwxrwxrwx 1 nginx nginx 1790 7月 27 2023 plugin.php
-rwxrwxrwx 1 nginx nginx 1086 7月 27 2023 portal.php
-rwxrwxrwx 1 nginx nginx 639 7月 27 2023 robots.txt
-rwxrwxrwx 1 nginx nginx 1755 7月 27 2023 search.php
drwxrwxrwx 10 nginx nginx 168 7月 27 2023 source
drwxrwxrwx 7 nginx nginx 86 7月 27 2023 static
drwxrwxrwx 3 nginx nginx 38 7月 27 2023 template
drwxrwxrwx 8 nginx nginx 146 7月 27 2023 uc_client
drwxrwxrwx 13 nginx nginx 4096 7月 27 2023 uc_server
nfs服务器配置java应用(将原ROOT文件删除,java应用软件重命名为ROOT.war 运行tomcat之后自动生成ROOT文件,实现访问8080端口直接访问java应用界面)
[root@elk ROOT]# ls
注意事项 assets biyesheji.sql css favicon.ico images images.zip index.jsp js lib META-INF static WEB-INF
[root@elk ROOT]# pwd
/opt/tomcat/webapps/ROOT
在web服务器配置nginx,将目录指向挂载目录
[root@web01 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs tmpfs 726M 9.6M 716M 2% /run
/dev/mapper/rl-root xfs 70G 6.9G 64G 10% /
/dev/mapper/rl-home xfs 126G 925M 125G 1% /home
/dev/sda1 xfs 960M 304M 657M 32% /boot
tmpfs tmpfs 363M 52K 363M 1% /run/user/42
tmpfs tmpfs 363M 36K 363M 1% /run/user/0
192.168.44.13:/var/www/discuz/upload nfs4 70G 8.6G 62G 13% /var/www/discuz
192.168.44.13:/opt/tomcat/webapps nfs4 70G 8.6G 62G 13% /opt/apache-tomcat-8.5.40/webapps
[root@web01 ~]# cat /etc/nginx/conf.d/discuz.conf
server {listen 80;server_name discuz.example.com;root /var/www/discuz;index index.php index.html;location ~ \.php$ {fastcgi_pass unix:/run/php-fpm/www.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}
}
在web服务器配置tomcat,将webapps目录内容全部删除,并将nfs的java应用的webapps改在至webapps目录
[root@web01 ~]# cd /opt/apache-tomcat-8.5.40/webapps/
[root@web01 webapps]# ls
docs examples host-manager manager ROOT ROOT.war
[root@web01 webapps]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs tmpfs 1.8G 0 1.8G 0% /dev/shm
tmpfs tmpfs 726M 9.6M 716M 2% /run
/dev/mapper/rl-root xfs 70G 6.9G 64G 10% /
/dev/mapper/rl-home xfs 126G 925M 125G 1% /home
/dev/sda1 xfs 960M 304M 657M 32% /boot
tmpfs tmpfs 363M 52K 363M 1% /run/user/42
tmpfs tmpfs 363M 36K 363M 1% /run/user/0
192.168.44.13:/var/www/discuz/upload nfs4 70G 8.6G 62G 13% /var/www/discuz
192.168.44.13:/opt/tomcat/webapps nfs4 70G 8.6G 62G 13% /opt/apache-tomcat-8.5.40/webapps
keepalived、haproxy服务器的部署
配置keepalived和haproxy实现通过acl访问不同域名访问不同网站,并实现高可用
keepalived的配置(从节点只需要更改router_id、state信息以及优先级):
[root@lb01 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id LVS_MASTER
}vrrp_script check_haproxy {script "/etc/keepalived/check_haproxy.sh" interval 2 weight 2 fall 3 rise 2
}
vrrp_instance VI_254 {state MASTERinterface ens33virtual_router_id 54priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.44.254/24}track_script {check_haproxy}
}vrrp_instance VI_253 {state MASTERinterface ens33virtual_router_id 53priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.44.253/24}track_script {check_haproxy}
}
haproxy的配置(主从节点配置完全相同):
[root@lb01 ~]# cat /etc/haproxy/haproxy.cfg
globallog 127.0.0.1 local0 infomaxconn 4096daemondefaultslog globalmode httpoption httplogoption dontlognullretries 3timeout connect 5000timeout client 50000timeout server 50000# 监听VIP 192.168.44.254:80(对应discuz.example.com)
frontend discuz_frontbind 192.168.44.254:80 transparent #(这个单词代表主机没有绑定的IP254也能启动haproxy)mode httpacl is_discuz hdr(host) -i discuz.example.com 192.168.44.254use_backend discuz_back if is_discuz# 后端服务器(80端口)
backend discuz_backmode httpbalance roundrobin # 轮询算法server web1 192.168.44.7:80 check inter 2000 rise 2 fall 3server web2 192.168.44.8:80 check inter 2000 rise 2 fall 3# 监听VIP 192.168.44.253:80(对应java.example.com)
frontend java_frontbind 192.168.44.253:80 transparentmode http# 匹配域名java.example.com,转发到后端8080端口集群acl is_java hdr(host) -i java.example.com 192.168.44.253use_backend java_back if is_java# 后端服务器(8080端口)
backend java_backmode httpbalance roundrobinserver app1 192.168.44.7:8080 check inter 2000 rise 2 fall 3server app2 192.168.44.8:8080 check inter 2000 rise 2 fall 3
haproxy的检查脚本
[root@lb01 ~]# cat /etc/keepalived/check_haproxy.sh
#!/bin/bash
if ! ps -C haproxy > /dev/null; then# 若 HAProxy 进程不存在,停止 Keepalived 让 VIP 切换systemctl stop keepalived
fi
在配置dicuz论坛时绑定IP到mysql 数据库的虚拟ip252(忘记截图了)
java应用的配置文件
(可以看得出java应用绑定的mysqlip也是虚拟ip252):
[root@elk opt]# cd /opt/tomcat/webapps/ROOT/WEB-INF/classes/
[root@elk classes]# ls
com generatorConfig.xml jdbc.properties log4j.properties mapper mybatis spring
[root@elk classes]# cat jdbc.properties
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql://192.168.44.252:3306/biyesheji?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8&allowPublicKeyRetrieval=true
jdbc.user=root
jdbc.password=123456
由于没有做dns服务,所以在web网页进行访问测试时需要在windows主机的hosts文件写入域名和对应ip
尝试访问不同域名:
同理,尝试访问虚拟IP是否成功
在发现访问成功之后可以确定web端和代理端是没问题的,接下来进行其余部分的部署
redis服务配置
使用redis备份discuz的数据备份
首先在两台web端下载插件 php-redis,如果直接安装没有,先安装epel源。
在discuz的配置页面进行数据备份的配置
[root@elk classes]# cd /var/www/discuz/upload/config/
[root@elk config]# ls
config_global_default.php config_global.php config_ucenter_default.php config_ucenter.php index.htm
[root@elk config]# cat config_global.php
<?php$_config = array();// ---------------------------- CONFIG DB ----------------------------- //
$_config['db'][1]['dbhost'] = '192.168.44.252';
$_config['db'][1]['dbuser'] = 'discuz';
$_config['db'][1]['dbpw'] = 'discuz';
$_config['db'][1]['dbcharset'] = 'utf8mb4';
$_config['db'][1]['pconnect'] = 0;
$_config['db'][1]['dbname'] = 'discuz';
$_config['db'][1]['tablepre'] = 'pre_';
$_config['db']['slave'] = '';
$_config['db']['common']['slave_except_table'] = '';
$_config['db']['common']['engine'] = 'innodb';// -------------------------- CONFIG MEMORY --------------------------- //
$_config['memory']['prefix'] = 'discuz_'; # 自定义前缀名
$_config['memory']['redis']['server'] = '192.168.44.251'; #绑定redis的虚拟ip
$_config['memory']['redis']['port'] = 6379;
$_config['memory']['redis']['pconnect'] = 1;
$_config['memory']['redis']['timeout'] = 0;
$_config['memory']['redis']['requirepass'] = '';
$_config['memory']['redis']['db'] = 0;
$_config['memory']['memcache']['server'] = '';
$_config['memory']['memcache']['port'] = 11211;
$_config['memory']['memcache']['pconnect'] = 1;
$_config['memory']['memcache']['timeout'] = 1;
$_config['memory']['memcached']['server'] = '';
$_config['memory']['memcached']['port'] = 11211;
$_config['memory']['apc'] = 0;
$_config['memory']['apcu'] = 0;
$_config['memory']['xcache'] = 0;
$_config['memory']['eaccelerator'] = 0;
$_config['memory']['wincache'] = 0;
$_config['memory']['yac'] = 0;
$_config['memory']['file']['server'] = '';// -------------------------- CONFIG SERVER --------------------------- //
$_config['server']['id'] = 1;// ------------------------- CONFIG DOWNLOAD -------------------------- //
$_config['download']['readmod'] = 2;
$_config['download']['xsendfile']['type'] = 0;
$_config['download']['xsendfile']['dir'] = '/down/';// -------------------------- CONFIG OUTPUT --------------------------- //
$_config['output']['charset'] = 'utf-8';
$_config['output']['forceheader'] = 1;
$_config['output']['gzip'] = 0;
$_config['output']['tplrefresh'] = 1;
$_config['output']['language'] = 'zh_cn';
$_config['output']['staticurl'] = 'static/';
$_config['output']['ajaxvalidate'] = 0;
$_config['output']['upgradeinsecure'] = 0;
$_config['output']['css4legacyie'] = 1;// -------------------------- CONFIG COOKIE --------------------------- //
$_config['cookie']['cookiepre'] = 'npJ6_';
$_config['cookie']['cookiedomain'] = '';
$_config['cookie']['cookiepath'] = '/';// ------------------------- CONFIG SECURITY -------------------------- //
$_config['security']['authkey'] = '76eb99bd5fcb2b0c24bad5c8f490319ekE1SaC1XDbeJgd1ywKUuiTVCUDCdSPHI';
$_config['security']['urlxssdefend'] = 1;
$_config['security']['attackevasive'] = 0;
$_config['security']['onlyremoteaddr'] = 1;
$_config['security']['useipban'] = 1;
$_config['security']['querysafe']['status'] = 1;
$_config['security']['querysafe']['dfunction'][0] = 'load_file';
$_config['security']['querysafe']['dfunction'][1] = 'hex';
$_config['security']['querysafe']['dfunction'][2] = 'substring';
$_config['security']['querysafe']['dfunction'][3] = 'if';
$_config['security']['querysafe']['dfunction'][4] = 'ord';
$_config['security']['querysafe']['dfunction'][5] = 'char';
$_config['security']['querysafe']['daction'][0] = '@';
$_config['security']['querysafe']['daction'][1] = 'intooutfile';
$_config['security']['querysafe']['daction'][2] = 'intodumpfile';
$_config['security']['querysafe']['daction'][3] = 'unionselect';
$_config['security']['querysafe']['daction'][4] = '(select';
$_config['security']['querysafe']['daction'][5] = 'unionall';
$_config['security']['querysafe']['daction'][6] = 'uniondistinct';
$_config['security']['querysafe']['dnote'][0] = '/*';
$_config['security']['querysafe']['dnote'][1] = '*/';
$_config['security']['querysafe']['dnote'][2] = '#';
$_config['security']['querysafe']['dnote'][3] = '--';
$_config['security']['querysafe']['dnote'][4] = '"';
$_config['security']['querysafe']['dlikehex'] = 1;
$_config['security']['querysafe']['afullnote'] = 0;
$_config['security']['creditsafe']['second'] = 0;
$_config['security']['creditsafe']['times'] = 10;
$_config['security']['fsockopensafe']['port'][0] = 80;
$_config['security']['fsockopensafe']['port'][1] = 443;
$_config['security']['fsockopensafe']['ipversion'][0] = 'ipv6';
$_config['security']['fsockopensafe']['ipversion'][1] = 'ipv4';
$_config['security']['fsockopensafe']['verifypeer'] = '';
$_config['security']['error']['showerror'] = '1';
$_config['security']['error']['guessplugin'] = '1';// -------------------------- CONFIG ADMINCP -------------------------- //
// -------- Founders: $_config['admincp']['founder'] = '1,2,3'; --------- //
$_config['admincp']['founder'] = '1';
$_config['admincp']['forcesecques'] = 0;
$_config['admincp']['checkip'] = 1;
$_config['admincp']['runquery'] = 0;
$_config['admincp']['dbimport'] = 1;
$_config['admincp']['mustlogin'] = 1;// -------------------------- CONFIG REMOTE --------------------------- //
$_config['remote']['on'] = 0;
$_config['remote']['dir'] = 'remote';
$_config['remote']['appkey'] = '62cf0b3c3e6a4c9468e7216839721d8e';
$_config['remote']['cron'] = 0;// --------------------------- CONFIG INPUT --------------------------- //
$_config['input']['compatible'] = 0;// --------------------------- CONFIG IPDB ---------------------------- //
$_config['ipdb']['setting']['fullstack'] = '';
$_config['ipdb']['setting']['default'] = '';
$_config['ipdb']['setting']['ipv4'] = 'tiny';
$_config['ipdb']['setting']['ipv6'] = 'v6wry';// ------------------------- CONFIG IPGETTER -------------------------- //
$_config['ipgetter']['setting'] = 'header';
$_config['ipgetter']['header']['header'] = 'HTTP_X_FORWARDED_FOR';
$_config['ipgetter']['iplist']['header'] = 'HTTP_X_FORWARDED_FOR';
$_config['ipgetter']['iplist']['list'][0] = '127.0.0.1';
$_config['ipgetter']['dnslist']['header'] = 'HTTP_X_FORWARDED_FOR';
$_config['ipgetter']['dnslist']['list'][0] = 'comsenz.com';// ------------------- THE END -------------------- //
redis的验证:
[root@redis01 ~]# redis-cli -h 192.168.44.251
192.168.44.251:6379> keys discuz_*1) "discuz_posttable_info"2) "discuz_fields_register"3) "discuz_common_member_count_1"4) "discuz_common_session_idx_uid_0"5) "discuz_usergroup_1"6) "discuz_diytemplatename"7) "discuz_censor"8) "discuz_membersplitdata"9) "discuz_common_session_idx_uid_group_0"
10) "discuz_pluginlanguage_system"
11) "discuz_bbcodes_display"
12) "discuz_onlinelist"
13) "discuz_bbcodes"
14) "discuz_setting_forumdisplay_fields_eval_sha"
15) "discuz_modreasons"
16) "discuz_diytemplatenameforum"
17) "discuz_smilies"
18) "discuz_diytemplatenamehome"
19) "discuz_common_session_YNW1og"
20) "discuz_usergroups"
21) "discuz_forums"
22) "discuz_fields_optional"
23) "discuz_forumrecommend"
24) "discuz_setting_viewthread_fields_eval_sha"
25) "discuz_setting_common_fields_eval_sha"
26) "discuz_common_seccheck_pk"
27) "discuz_stamptypeid"
28) "discuz_common_session_idx_invisible_0"
29) "discuz_ipctrl"
30) "discuz_magic"
31) "discuz_common_session_fetch_member_3rd_eval_sha"
32) "discuz_setting"
33) "discuz_forumlinks"
34) "discuz_common_session_delete_by_session_eval_sha"
35) "discuz_common_banned_index"
36) "discuz_announcements"
37) "discuz_cronnextrun"
38) "discuz_adminmenu"
39) "discuz_fields_required"
40) "discuz_heats"
41) "discuz_addoncheck_template"
42) "discuz_onlinerecord"
43) "discuz_common_session_idx_lastactivity"
44) "discuz_common_session_F4Qvhf"
45) "discuz_historyposts"
46) "discuz_common_member_status_1"
47) "discuz_creditrule"
48) "discuz_userstats"
49) "discuz_smileytypes"
50) "discuz_common_member_field_home_1"
51) "discuz_style_default"
52) "discuz_common_session_idx_fid_0"
53) "discuz_seccodedata"
54) "discuz_common_session_idx_ip_192.168.44.5"
55) "discuz_usergroup_7"
56) "discuz_plugin"
57) "discuz_addoncheck_plugin"
58) "discuz_cronpublish"
59) "discuz_common_member_1"
redis配置完成之后,部署zabbix监控主机状态
zabbix服务器给到虚拟mysql数据库的ip
/usr/share/zabbix-sql-scripts/mysql 将此目录下的server.sql.gz拷贝到mysql主机,并且导入创建的zabbix数据库 即执行 zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
之后手动配置web网页端的自动发现及触发器等
配置rsync服务
nfs端下载sersync:
rsync服务器端:
elk部署
注意rocky9与filebeat7.1.1版本不兼容,推荐下载filebeat7.17版本,和7.1.1版本配置基本相同,但是多了个ID选项
监控界面: