मैं जानना चाहूंगा कि मेरे डॉकर कंटेनर लॉग को एल्क सर्वर पर अग्रेषित करने का सबसे आसान तरीका क्या है, अब तक मैंने इंटरनेट पर खोज करने के बाद जो समाधान आजमाए हैं, वे बिल्कुल भी काम नहीं करते हैं ।
मूल रूप से मेरे पास एक डॉकर छवि है जिसे मैं डॉकर-कंपोज़ का उपयोग करके चलाता हूं, यह कंटेनर स्थानीय रूप से कुछ भी लॉग नहीं करता है (यह विभिन्न सेवाओं से बना है लेकिन उनमें से कोई भी लॉगस्टैश या जो भी हो) लेकिन मुझे लॉगिंग दिखाई देती है docker logs -tf imageName
या docker-compose logs
. चूंकि मैं कंपोज़ के साथ कंटेनर शुरू कर रहा हूं, इसलिए मैं इसका उपयोग नहीं कर सकता (या कम से कम मुझे नहीं पता कि कैसे) --logs-driver
डॉकर का विकल्प।
इस प्रकार मैं सोच रहा था कि क्या कोई मुझे इस बारे में थोड़ा बता सकता है कि उदाहरण के लिए एल्क कंटेनर में लॉग कैसे अग्रेषित किया जाए ।
अग्रिम धन्यवाद,
सादर
समाधान:
मैडीडी के लिए धन्यवाद मैं अपने मुद्दे को निम्नलिखित तरीके से हल करने के लिए प्राप्त कर सकता हूं, उल्लेख करें कि मैंने मूल एल्क-स्टैक-इन-कंटेनरों का उपयोग किया था जो मैडीडी ने अपनी पोस्ट में सुझाया था ।
पहले मैं अपडेट करता हूं docker-compose.yml
लॉगिंग संदर्भ के लिए प्रविष्टियां जोड़ने के लिए मेरे कंटेनर की फ़ाइल जैसा कि मैडीडी ने मुझे बताया,मैंने प्रति सेवा एक प्रविष्टि शामिल की, मेरे डॉकर-रचना का एक स्निपेट इस तरह दिखता है
version: '2' services: mosquitto: image: ansi/mosquitto ports: - "1883:1883" # Public access to MQTT - "12202:12202" #mapping logs logging: driver: gelf options: gelf-address: udp://localhost:12202 redis: image: redis command: redis-server --appendonly yes ports: - "6379:6379" # No public access to Redis - "12203:12203" #mapping logs volumes: - /home/dockeruser/redis-data:/data logging: driver: gelf options: gelf-address: udp://localhost:12203
दूसरे, मुझे लॉग को अग्रेषित करने में सक्षम होने के लिए प्रति सेविस एक अलग पोर्ट नंबर का उपयोग करना पड़ा ।
अंत में, मैंने अपना एल्क कंटेनर अपडेट किया docker-compose.yml
प्रत्येक यूपीडी पोर्ट को मैप करने के लिए फ़ाइल जहां मैं अपने लॉग को उस लॉग को भेज रहा था जिसे लॉगस्टैश सुनता है
logstash: build: logstash/ command: logstash -f /etc/logstash/conf.d/logstash.conf volumes: - ./logstash/config:/etc/logstash/conf.d ports: - "5000:5000" - "12202:12201/udp" #mapping mosquitto logs - "12203:12201/udp" #mapping redis logs
इस विन्यास और की प्रविष्टि जोड़ने gelf {}
में logstash.conf
इसे काम किया, डॉकर सेवा के आईपी पते को ठीक से स्थापित करना भी महत्वपूर्ण है ।
सादर!