diff --git a/kafka/main.go b/kafka/main.go index d055c0f..a50ff9c 100644 --- a/kafka/main.go +++ b/kafka/main.go @@ -8,6 +8,7 @@ import ( "log" "os" "os/signal" + "strings" "sync" "syscall" "time" @@ -59,20 +60,30 @@ func scheduleDailyTask() { statistics.Statistics() } } - +func getKafkaReader(kafkaURL, topic, groupID string) *kafka.Reader { + brokers := strings.Split(kafkaURL, ",") + return kafka.NewReader(kafka.ReaderConfig{ + Brokers: brokers, + GroupID: groupID, + Topic: topic, + MinBytes: 10e3, // 10KB + MaxBytes: 10e6, // 10MB + }) +} func comsumer(Game *config.Game) { sqlDb := db.GetContainer(Game.Name) if sqlDb == nil { log.Printf("comsumer db %s not exist \n", Game.Name) return } - r := kafka.NewReader(kafka.ReaderConfig{ - Brokers: []string{"kafka-server:9092"}, - Topic: Game.Topic, - Partition: Game.Partition, - MinBytes: 10e3, // 10KB - MaxBytes: 10e6, // 10MB - }) + // r := kafka.NewReader(kafka.ReaderConfig{ + // Brokers: []string{"kafka-server:9092", "kafka-server-2:9092"}, + // Topic: Game.Topic, + // Partition: Game.Partition, + // MinBytes: 10e3, // 10KB + // MaxBytes: 10e6, // 10MB + // }) + r := getKafkaReader("kafka-server:9092", Game.Topic, "log") defer r.Close() // 设置读取超时时间 offset := db.GetOffset(sqlDb) diff --git a/nginx/tcp.conf b/nginx/tcp.conf index 6b38da2..3206db5 100644 --- a/nginx/tcp.conf +++ b/nginx/tcp.conf @@ -1,6 +1,6 @@ server { listen 80; - server_name pethome.bywaystudios.com; + server_name dify.bywaystudios.com; # 将 HTTP 请求重定向到 HTTPS location / { @@ -10,15 +10,15 @@ server { server { listen 443 ssl; - server_name pethome.bywaystudios.com; + server_name dify.bywaystudios.com; - ssl_certificate /etc/nginx/ssl/pethome.bywaystudios.com.pem; - ssl_certificate_key /etc/nginx/ssl/pethome.bywaystudios.com.key; + ssl_certificate /etc/nginx/ssl/bywaystudios.com.pem; + ssl_certificate_key /etc/nginx/ssl/bywaystudios.com.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; location / { - proxy_pass http://localhost:8080; + proxy_pass http://localhost:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -26,6 +26,6 @@ server { } # 可选:配置日志文件 - access_log /var/log/nginx/pethome_access.log; - error_log /var/log/nginx/pethome_error.log; + access_log /var/log/nginx/dify_access.log; + error_log /var/log/nginx/dify_error.log; } diff --git a/nginx/web.conf b/nginx/web.conf index 4722a0b..4fe2de3 100644 --- a/nginx/web.conf +++ b/nginx/web.conf @@ -1,9 +1,9 @@ server { listen 80; - server_name admin.bywaystudios.com; + server_name gadmin.bywaystudios.com; # 将 HTTP 请求重定向到 HTTPS - location / { + location /api { return 301 https://$host$request_uri; } } diff --git a/nginx/zabbix.conf b/nginx/zabbix.conf new file mode 100644 index 0000000..1091c7c --- /dev/null +++ b/nginx/zabbix.conf @@ -0,0 +1,31 @@ +server { + listen 80; + server_name zabbix.bywaystudios.com; + + # 将 HTTP 请求重定向到 HTTPS + location /api { + return 301 https://$host$request_uri; + } +} + +server { + listen 443 ssl; + server_name zabbix.bywaystudios.com; + + ssl_certificate /etc/nginx/ssl/bywaystudios.com.pem; + ssl_certificate_key /etc/nginx/ssl/bywaystudios.com.key; + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers HIGH:!aNULL:!MD5; + + location / { + proxy_pass http://localhost:8081; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + # 可选:配置日志文件 + access_log /var/log/nginx/zabbix_access.log; + error_log /var/log/nginx/zabbix_error.log; +} diff --git a/playbook/web.yml b/playbook/web.yml index 56a0ff0..b010c88 100644 --- a/playbook/web.yml +++ b/playbook/web.yml @@ -28,6 +28,10 @@ - name: pack.sh shell: sh /data/admin_backend/release/pack.sh delegate_to: localhost + - name: copy template + copy: + src: /data/admin_backend/template/ + dest: /usr/local/admin/backend/template - name: copy tar copy: src: /data/admin_backend/release/backend diff --git a/playbook/zabbix.yml b/playbook/zabbix.yml new file mode 100644 index 0000000..52feb3e --- /dev/null +++ b/playbook/zabbix.yml @@ -0,0 +1,29 @@ +--- +- name: Deploy zabbix + hosts: gitea + remote_user: root + + tasks: + + - name: archive docker-compose + archive: + path: /data/zabbix-docker-remote/ + dest: /data/zabbix.tar + format: tar + delegate_to: localhost + - name: copy tar + copy: + src: /data/zabbix.tar + dest: /data/zabbix.tar + - name: remove docker-compose + shell: rm -rf /data/zabbix.tar + delegate_to: localhost + + - name: mkdir + shell: mkdir -p /data/zabbix-docker + + - name: unarchive config + unarchive: + src: /data/zabbix.tar + dest: //data/zabbix-docker/ + remote_src: yes \ No newline at end of file diff --git a/script/install.sh b/script/install.sh index d7454b0..a67ad3b 100644 --- a/script/install.sh +++ b/script/install.sh @@ -1,5 +1,5 @@ cd /usr/local wget https://go.dev/dl/go1.23.4.linux-386.tar.gz -tar -C /usr/local -xzf go1.23.4.src.tar.gz +tar -C /usr/local -xzf go1.23.4.linux-386.tar.gz echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile echo "export GOPATH=$HOME/go" >> /etc/profile diff --git a/zabbix/script/error.js b/zabbix/script/error.js new file mode 100644 index 0000000..a07d160 --- /dev/null +++ b/zabbix/script/error.js @@ -0,0 +1,41 @@ +try { + var params = JSON.parse(value); + var response; + request = new HttpRequest(), + data = { + "msg_type": "interactive", + "card": { + "type": "template", + "data": { + "template_id": "AAqBcOkbPmfUZ", + "template_version_name": "1.0.3", + "template_variable": { + "appName": "Zabbix", + "msg": params.Message, + }, + } + } + }; + + request.addHeader('Content-Type: application/json'); + + Zabbix.log(4, '[ Feishu Webhook ] Sending request.'); + + response = request.post("https://open.feishu.cn/open-apis/bot/v2/hook/48944500-477a-4647-a7e0-c56c43bee263", JSON.stringify(data)); + + if (request.getStatus() < 200 || request.getStatus() >= 300) { + var message = 'Request failed with status code ' + request.getStatus(); + + if (response) { + message += ': ' + response; + } + throw message + '. Check debug log for more information.'; + } + + + return 'OK'; +} +catch (error) { + Zabbix.log(3, '[ BrevisOne Webhook ] ERROR: ' + error); + throw 'Sending failed: ' + error; +} \ No newline at end of file diff --git a/zabbix/script/info.js b/zabbix/script/info.js new file mode 100644 index 0000000..3db4c4a --- /dev/null +++ b/zabbix/script/info.js @@ -0,0 +1,40 @@ +try { + var params = JSON.parse(value); + var response; + request = new HttpRequest(), + data = { + "msg_type": "interactive", + "card": { + "type": "template", + "data": { + "template_id": "AAqB1vicX1mY4", + "template_version_name": "1.0.0", + "template_variable": { + "appName": "Zabbix", + "msg": params.Messagae, + }, + } + } + }; + + request.addHeader('Content-Type: application/json'); + + Zabbix.log(4, '[ Feishu Webhook ] Sending request.'); + + response = request.post("https://open.feishu.cn/open-apis/bot/v2/hook/64bad1f3-3a41-4dca-9037-399067ffb252", JSON.stringify(data)); + + if (request.getStatus() < 200 || request.getStatus() >= 300) { + var message = 'Request failed with status code ' + request.getStatus(); + + if (response) { + message += ': ' + response; + } + throw message + '. Check debug log for more information.'; + } + + return 'OK'; +} +catch (error) { + Zabbix.log(3, '[ BrevisOne Webhook ] ERROR: ' + error); + throw 'Sending failed: ' + error; +} \ No newline at end of file