Zabbix- सर्वर (FreeBSD, PostgreSQL, Nginx) को कैसे स्थापित / स्थापित करें

"जल्द या बाद में, हर सिस्टम एडमिनिस्ट्रेटर के जीवन में, एक पल आता है जब आँखें और हाथ अब सभी सर्वरों पर नज़र रखने के लिए पर्याप्त नहीं होते हैं, तब कुछ समस्याएं होती हैं, और उन्हें हल करने के लिए मैं वास्तव में जानना चाहता हूं कि" पहले "क्या हुआ था"। और यह यहाँ है कि वे बचाव में आते हैं - महान और भयानक निगरानी प्रणाली। ”( सी ) ज़नफ़
मेरे लिए यह स्थिति उत्पन्न हो गई है, हर चीज पर नज़र रखना हमेशा असंभव है, स्क्रिप्ट का एक गुच्छा लिखना भी एक विकल्प नहीं है, लेकिन आपको विभिन्न क्रैश का तुरंत जवाब देने में सक्षम होना चाहिए, कुछ मापदंडों का इतिहास रखना चाहिए, और बस "सुंदर" ग्राफिक्स के सभी प्रकार मेरे दिल में हैं। इसलिए, मैंने एक निगरानी प्रणाली लगाने का फैसला किया। ज़ाबिक्स का चयन किया गया था। हब पर ज़ैबिक्स का उपयोग करने के लिए कुछ व्यंजनों हैं, लेकिन स्थापना विषय को कवर नहीं किया गया है। मैं मूल होने का दिखावा नहीं करता, वर्णित विधि काफी तुच्छ है और इंटरनेट और आधिकारिक प्रलेखन से जानकारी एकत्र करता है। So. मेरी और दोस्तों की मदद करने के लिए:
PostgreSQL DBMS के साथ Zabbix 1.8 के लिए इंस्टॉलेशन विकल्प और Nginx + PHP-FPM के माध्यम से वेब थूथन।
UPD: संस्करण zabbix 3.4 के लिए अपडेट किया गया

इस गाइड में, सभी घटक एक सर्वर पर स्थापित किए जाते हैं। यदि आवश्यक हो, तो आप डेटाबेस के साथ एक अलग सर्वर का उपयोग कर सकते हैं, वेब इंटरफ़ेस के लिए एक अलग सर्वर और स्वयं zabbix सर्वर। इस स्थिति में, zabbix सर्वर को डेटाबेस से कनेक्ट करने की आवश्यकता होगी, और वेब इंटरफ़ेस को डेटाबेस और zabbix सर्वर से कनेक्ट करने की आवश्यकता होगी।

1. FreeBSD स्थापित करें। (mc, bash, और बाकी स्वाद के लिए)


2. zabbix- सर्वर स्थापित करें


प्रारंभ में, मैंने SQLite पर स्थापित करने का प्रयास किया, लेकिन यह माना कि सिस्टम में 3.0.0 से ऊपर का SQLite नहीं है, हालाँकि। स्रोत से /configure सब कुछ सामान्य रूप से परिभाषित है। समाधान sqlite3.h हेडर फ़ाइल में था, जो वहां नहीं था जहां इसे खोजा गया था। लेकिन मैंने परेशान नहीं किया क्योंकि ज़ैबिक्स साइट पर, प्रलेखन का कहना है कि संस्करण ज़ैबिक्स 1.8 SQLite का समर्थन नहीं करता है। मैंने PostgreSQL का उपयोग करने का फैसला किया, बस इसलिए कि मैंने इसके साथ MySQL के साथ अधिक काम किया।
सीडी / यूएसआर / पोर्ट / नेट-एमजीएमटी / ज़ैबिक्स-सर्वर
साफ स्थापित करें (Postgresql का चयन करें)

3. PostgreSQL स्थापित करें

zabbix- सर्वर द्वारा स्थापित पोस्टग्रेज-क्लाइंट के समान संस्करण।
हम संस्करण को देखते हैं:
pkg_info | grep postgr
Postgresql-client-9.5.9 PostgreSQL डेटाबेस (क्लाइंट)
सीडी / यूएसआर / पोर्ट / डेटाबेस / पोस्टग्रैक्स्ल 95-सर्वर /
साफ स्थापित करें

Postgresql_enable = "YES" को /etc/rc.conf में जोड़ें

4. इसके बाद, zabbix- सर्वर के लिए आधार बनाएं:


मेरे पास एक वेबमॉर्ड ऑपरेशन त्रुटि थी, उसे डेटाबेस के अधिकारों की कमी थी, क्योंकि मैंने डेटाबेस और टेबल्स को पहले उपयोगकर्ता pgsql से बनाया, और उसके बाद ही मैंने उपयोगकर्ता zabbix शुरू किया। मैंने उसे पूरी टेबल दी और वेबमॉर्ड कमाया। इस लेख में, मैंने इस क्षण को ध्यान में रखा।
su pgsql
/ usr / स्थानीय / बिन / initdb -D / usr / स्थानीय / pgsql / डेटा

और /usr/local/etc/rc.d/postgresql प्रारंभ करें
su pgsql
psql -d template1
psql> डेटाबेस zabbix बनाएं;
psql> पासवर्ड 'tmppassword' के साथ USER zabbix बनाएँ (zababixer के लिए एक उपयोगकर्ता बनाएं)
Psql> DATABASE zabbix पर zabbix पर सभी PRIVILEGES;
psql> \ q
सीडी / यूएसआर / स्थानीय / शेयर / zabbix34 / सर्वर / डेटाबेस / पोस्टग्रैसक्ल /
बिल्ली स्कीमा। एससीएल | psql -U zabbix zabbix
psql -U zabbix zabbix <images.sql
psql -U zabbix zabbix <data.sql

(संस्करण 1.8 में आदेश अलग था। पहले data.sql फिर images.sql)

5. zabbix- सर्वर कॉन्फ़िगर करें:


cp /usr/local/etc/zabbix34/zabbix_server.conf.sample/usr/local/etc/zabbix34/zabbix_server.conf

आपको निर्दिष्ट करना होगा:
Dbuser = zabbix, Dbpassword = tmppassword (डेटाबेस से जुड़ने के लिए उपयोगकर्ता)
DBSocket = / tmp / .s.PGSQL.5432 या Dbport = 5432 (डिफ़ॉल्ट रूप से mybqq के लिए है)

मैं एक सॉकेट के माध्यम से एक कनेक्शन का उपयोग करता हूं (क्योंकि मेरे पास एक ही मशीन पर सब कुछ है)। शेष को वैसे ही छोड़ दिया जाता है।
लाइन को zabbix_server_enable = "YES" को /etc/rc.conf में जोड़ें और शुरू करें
गूंज 'zabbix_server_enable = "YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/zabbix_server प्रारंभ

6. ज़ैबिक्स-फ्रंटेंड (वेबमॉर्ड) स्थापित करें:


सीडी / यूएसआर / पोर्ट / नेट-एमजीएमटी / ज़ैबिक्स-फ्रंटेंड
साफ स्थापित करें

PGSQL विकल्प चुनें
• FPM और Postgresql के समर्थन के साथ PHP स्थापित करें

UPD: वर्तमान पोर्ट इसे एक वेबमॉर्ड पर निर्भरता के रूप में रखते हैं, लेकिन अगर आपके पास कुछ गलत है तो:
सीडी / यूएसआर / पोर्ट / लैंग / php5
स्थापना रद्द करें (यदि पहले से स्थापित है लेकिन विभिन्न मापदंडों के साथ)
कॉन्फिग इंस्‍टॉल को साफ करें (PHP_FPM चुनें)
सीडी / यूएसआर / पोर्ट / लैंग / php5- एक्सटेंशन
कॉन्फिग इन्स्टॉल को स्वच्छ बनाएं (Postgresql का चयन करें)

यहां हम सॉकेट के माध्यम से भी काम करेंगे (यदि नहीं, तो सब कुछ छोड़ दें जैसा कि है), कॉन्फ़िगरेशन: /usr/local/etc/php-fpm.conf, संपादित करें:
सुनो = /tmp/php-fpm.sock

लाइन 'php_fpm_enable = "YES को फ़ाइल' /etc/rc.conf 'में जोड़ें और शुरू करें

इको 'php_fpm_enable = "YES"' >> /etc/rc.conf
सेवा php-fpm शुरू

हम जाँच करते हैं:
sockstat | grep php

वेब थूथन आमतौर पर अपाचे के माध्यम से कॉन्फ़िगर किया गया है, लेकिन मैंने इसे नगनेक्स पर किया था। कम संसाधन खाने से विन्यास सरल है। मुझे लगता है कि वह अपाचे से भी बदतर इस काम का सामना करेंगे।
सीडी / यूएसआर / बंदरगाहों / www / nginx
साफ स्थापित करें

Config /usr/local/etc/nginx/nginx.conf संपादित करें। मुझे यह मिला:
http {
mime.types शामिल करें;
default_type एप्लिकेशन / ऑक्टेट-स्ट्रीम;
# बेचैनी
log_format मुख्य '$ Remote_addr - $ Remote_user [$ time_local] "$ request"'
'$ स्थिति $ body_bytes_sent "$ http_referer"'
'"$ http_user_agent" "$ http_x_forwarded_for"';
# वेब सर्वर तक पहुँचने का प्रयास करना
access_log /var/log/nginx/access.log मुख्य;
पर भेज देना;
Keepalive_timeout 65;
# संपीड़न चालू करें
gzip पर;
सर्वर {
80 सुनो;
server_name ZABBIX_SERVER_IP_OR_NAME; # नीचे के बारे में
# एक्सेस लॉग केवल zabbix-server'a webmord पर
access_log /var/log/nginx/zabbix.access.log मुख्य;
#Mord फ़ाइलें फ़ोल्डर
स्थान / {
रूट / यूएसआर / लोकल / www / ज़ैबिक्स;
index index.html index.php;
}
error_page 500 502 503 504 / 50x.html;
स्थान = / 50x.html {
root / usr / लोकल / www / nginx-dist;
}
# हम Nginx और PHP-FPM के दोस्त हैं
स्थान ~ \ .php $ {
रूट html;
fastcgi_pass unix: /tmp/php-fpm.sock; # या 127.0.0.1:9000 अगर php-fpm कॉन्फिग को ठीक नहीं किया गया
fastcgi_param SCRIPT_FILENAME / usr / स्थानीय / www / zabbix $ fastcgi_script_name;
fastcgi_param QUERY_STRING $ query_string;
fastcgi_params शामिल करें;
}
# Zabbix फ़ाइलों तक पहुँच प्राप्त करें
स्थान ~ * / (?: api | conf | शामिल हैं) / {
वापसी 301 ht_p: //zabbix.local/index.php;
}

}

Server_name के बारे में। पहले मैंने लोकलहोस्ट को वहां छोड़ दिया। सब कुछ काम किया, लेकिन जब मैंने कॉलम (उदाहरण के लिए, मेजबानों की एक सूची) के आधार पर छाँटने की कोशिश की, तो URL लोकलहोस्ट से बनाया गया था। मैं zabbix कॉन्फिग्स और कोड्स में लंबे समय तक चढ़ने के लिए इस रेक से जूझता रहा, लेकिन कोई फायदा नहीं हुआ। मैंने एक लेख लिखते समय इस पैरामीटर पर ध्यान आकर्षित किया और इसने काम किया। क्या कोई समझा सकता है कि ऐसा क्यों, अगर मुश्किल नहीं है? :)
मैंने लॉग फ़ाइलों में पथ भी बदले हैं, इसलिए हम लॉग फ़ाइलों के लिए एक निर्देशिका बनाते हैं:
mkdir / var / log / nginx
chown www: www / var / log / nginx

हम /etc/rc.conf में nginx_enable = "YES" लाइन लिखते हैं और शुरू करते हैं:
/usr/local/etc/rc.d/nginx प्रारंभ

इसके बाद, ब्राउज़र में ht_p: // zabbix_server_ip पर जाएं और विज़ार्ड का उपयोग करके इंस्टॉलेशन जारी रखें:
चरण 3 पर, PHP मापदंडों की जाँच की जाती है, उन्हें फ़ाइल /usr/local/etc/php.ini में ठीक किया जाता है
यदि फ़ाइल मौजूद नहीं है, तो आप इसे php.ini.development या php.ini.production से कॉपी कर सकते हैं
मैं नियम:
memory_limit = 128M
post_max_size = 20M
upload_max_filesize = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = "एशिया / इरकुत्स्क"

Php-fpm को पुनः आरंभ करने के बाद
/usr/local/etc/rc.d/php-fpm पुनः आरंभ करें

चरण 4 में, PostgreSQL का चयन करें और zabbix डेटाबेस (हमारे मामले में, zabbix \ tmppassword) तक पहुंचने के लिए उपयोगकर्ता और पासवर्ड दर्ज करें। हम सर्वर का पता लोकलहोस्ट, tk छोड़ते हैं। PostgreSQL को वेबमॉर्ड के रूप में एक ही मशीन पर स्थापित किया गया है, और डिफ़ॉल्ट रूप से स्थानीयहोस्ट से कनेक्शन स्वीकार करता है। UPD1: वेबमॉर्ड के लिए सॉकेट के माध्यम से भी PostgreSQL से कनेक्ट करने के लिए, लोकलहोस्ट के बजाय हम लिखते हैं / tmp / (.PGSQL.5432 के साथ फ़ोल्डर का पथ)। या फ़ाइल /usr/local/www/zabbix/conf/zabbix.conf.php में हम $ DB ["SERVER"] = '/ tmp' लिखते हैं; अब (वैकल्पिक) tcp / ip कनेक्शन को PostgreSQL पूरी तरह से अक्षम किया जा सकता है।
चरण 7 में, विन्यास डाउनलोड करने के लिए क्लिक करें और डाउनलोड की गई सामग्री के साथ फाइल /usr/local/www/zabbix/conf/zabbix.conf.php बनाएं।

सुरक्षा मुद्दों पर ध्यान नहीं दिया गया है। मूल रूप से यह कॉन्फ़िगरेशन फ़ाइलों तक पहुंच को प्रतिबंधित कर रहा है, विशेष रूप से जहां पासवर्ड स्थित हैं, वेब सर्वर को फ़ोल्डर्स तक पहुंच और बाहर से डेटाबेस तक पहुंच को प्रतिबंधित करता है। यदि कॉन्फ़िगरेशन में सकल दोष हैं (लगभग सभी कॉन्फ़िगरेशन डिफ़ॉल्ट रूप से उपयोग किए जाते हैं), तो कृपया मुझे इस पर इंगित करें।
ज़ैबिक्स-एजेंट स्थापित करने और डिवाइस की निगरानी को ध्यान में रखते हुए इस ज्ञापन के दायरे से परे है।
पुनश्च: मेरे पास उपयोग किए गए घटकों के कॉन्फ़िगरेशन और रखरखाव पर बहुत अनुभव और ज्ञान नहीं है, इसलिए मुझे टिप्पणियों और सिफारिशों पर खुशी होगी।

Source: https://habr.com/ru/post/In139165/


All Articles