Инсталирайте Plesk на CentOS 7
Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни
Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Моделът главен клиент е по-сигурен поради различни причини . Той също така позволява по-разпределено наблюдение, като позволява на проверките да се променят на един сървър и да се разпространяват към други. Той също така дава едно централизирано място за промени.
Например: Да приемем, че имате 4 различни уеб сървъра с балансирано натоварване. Ако знаете, че ще имате скок на натоварването (може би продажба или нещо, за което очаквате много активност), може да искате да увеличите нивата, при които високото използване на процесора предупреждава системните администратори. Ако използвате проверки на NRPE, ще трябва да отидете на всеки сървър и да промените /etc/nrpe.d/common_commands.cfg
документа на всеки от тях. В модела главен клиент можете просто да промените техните дефиниции на хоста в /etc/icinga2/repository.d/hosts/
папката, след което да презаредите Icinga. Проверките ще се разпространят до всеки сървър и ще бъдат взети автоматично. Можете също така да добавяте проверки много лесно, ��ато модифицирате /etc/icinga2/repository.d/services/
файловете и те автоматично ще се разпространяват и разпознават, стига плъгините да съществуват на клиентските сървъри.
icinga2master.example.com
.icinga2client.example.com
.Някои от това ръководство ще отразяват инструкциите за инсталиране, изброени по-горе, но това трябва да се направи на клиентската машина, а не на сървърната машина.
Добавете репото "ICINGA" към клиентската система, за да инсталирате пакетите Icinga.
sudo cat > /etc/yum.repos.d/ICINGA-release.repo << 'EOF'
[icinga-stable-release]
name=ICINGA (stable release for epel)
baseurl=http://packages.icinga.org/epel/$releasever/release/
enabled=1
gpgcheck=1
gpgkey=http://packages.icinga.org/icinga.key
EOF
Инсталирайте необходимите пакети.
# CentOS 6
sudo yum -y install icinga2 mysql-server mysql icinga2-ido-mysql nagios-plugins-disk nagios-plugins-load nagios-plugins-procs nagios-plugins-ssh nagios-plugins-users nagios-plugins-swap nagios-plugins-ping icingacli
# CentOS 7
sudo yum -y install icinga2 mariadb-server mysql icinga2-ido-mysql nagios-plugins-disk nagios-plugins-load nagios-plugins-procs nagios-plugins-ssh nagios-plugins-users nagios-plugins-swap nagios-plugins-ping icingacli
CentOS 7 използва MariaDB вместо MySQL, така че необходимите пакети са малко по-различни. Стартирайте услугите и ги настройте да стартират при стартиране.
sudo chkconfig icinga2 on
sudo service icinga2 start
Задайте услугата MySQL да стартира при стартиране и я стартирайте сега, за да можем да я защитим.
# CentOS 6
sudo chkconfig mysqld on
sudo service mysqld start
#CentOS 7
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
Защитете инсталацията на MySQL/MariaDB. И CentOS 6, и 7 използват една и съща команда.
sudo mysql_secure_installation
По време на процеса отговорете на въпросите, както е показано:
Enter current password for root (enter for none): Enter
Set root password? [Y/n]: Y
New password: $newRootPassword
Re-enter new password: $newRootPassword
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]: Y
Reload privilege tables now? [Y/n]: Y
Отбележете, $newRootPassword
че ще ви трябва няколко пъти и е трудно да нулирате.
Трябва да създадете icinga
потребителско име и да импортирате схемата в базата данни. Това се прави по същия начин и на CentOS 6, и на 7.
sudo mysql -u root -p
>CREATE DATABASE icinga;
>GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY '$someIcingaPassword';
>exit
След това импортирайте схемата в базата данни, която току-що създадохте.
sudo mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
Ще трябва да въведете $newRootPassword
паролата за MySQL/MariaDB, която сте използвали по време на mysql_secure_installation
командата по-горе, а не тази, $someIcingaPassword
която току-що създадохте - тази се използва по-късно.
Активирайте ido
модула (база данни).
sudo icinga2 feature enable ido-mysql
Ще трябва да редактирате /etc/icinga2/features-enabled/ido-mysql.conf
файла, за да добавите информацията за базата данни. Можете да направите това със следната команда.
sudo vi /etc/icinga2/features-enabled/ido-mysql.conf
В този файл намерете редовете, които са коментирани (започнете с //
).
//user = "icinga"
//password = "icinga"
//host = "localhost"
//database = "icinga"
... и ги редактирайте с помощта на потребителя/паролата, който току-що създадохте.
user = "icinga"
password = "$someIcingaPassword"
host = "localhost"
database = "icinga"
Уверете се, че сте декоментирали редовете, като премахнете първите две наклонени черти.
След това рестартирайте услугата, за да вземете промените.
sudo service icinga2 restart
Ще трябва да добавите връзка между клиентския сървър и Icinga2 master, който вече е конфигуриран. Ще трябва да направите това, като използвате Firewalld на CentOS 7 или IPTables в CentOS 6 или 7.
# CentOS 6
sudo vi /etc/sysconfig/iptables
...
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5665 -j ACCEPT
...
#Icinga2 Master
-A OUTPUT -p tcp -m state --state NEW -m tcp --dport 5665 -j ACCEPT
sudo iptables restart
# CentOS 7
sudo firewall-cmd --add-port=5665/tcp --permanent
sudo firewall-cmd --reload
Сега редактирайте файла hosts, за да добавите главния като име на локален домейн.
sudo vi /etc/hosts
...
$masterIP icinga2master icinga2master.example.com
Тази стъпка трябва да се направи на Icinga2 master. Ще трябва да го инициализирате като главен, след което да генерирате заявка за подписване на сертификат, която вашият клиент ще използва за комуникация.
sudo icinga2 node wizard
Това ще стартира съветника за възел, който ще зададе няколко въпроса. Екранът ще изглежда както следва, а отговорите, които ще дадете, са изброени.
Welcome to the Icinga 2 Setup Wizard!
We'll guide you through all required configuration details.
Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: n
Starting the Master setup routine...
Please specify the common name (CN) [icinga2-master1.localdomain]: icinga2master.example.com
Checking for existing certificates for common name 'icinga2master.example.com'...
Certificates not yet generated. Running 'api setup' now.
information/cli: Generating new CA.
information/base: Writing private key to '/var/lib/icinga2/ca/ca.key'.
information/base: Writing X509 certificate to '/var/lib/icinga2/ca/ca.crt'.
information/cli: Generating new CSR in '/etc/icinga2/pki/icinga2master.example.com.csr'.
information/base: Writing private key to '/etc/icinga2/pki/icinga2master.example.com.key'.
information/base: Writing certificate signing request to '/etc/icinga2/pki/icinga2master.example.com.csr'.
information/cli: Signing CSR with CA and writing certificate to '/etc/icinga2/pki/icinga2master.example.com.crt'.
information/cli: Copying CA certificate to '/etc/icinga2/pki/ca.crt'.
Generating master configuration for Icinga 2.
information/cli: Adding new ApiUser 'root' in '/etc/icinga2/conf.d/api-users.conf'.
information/cli: Enabling the 'api' feature.
Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
information/cli: Created backup file '/etc/icinga2/zones.conf.orig'.
Please specify the API bind host/port (optional):
Bind Host []: <hit enter>
Bind Port []: <hit enter>
information/cli: Created backup file '/etc/icinga2/features-available/api.conf.orig'.
information/cli: Updating constants.conf.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
Done.
Now restart your Icinga 2 daemon to finish the installation!
След това рестартирайте Icinga2, за да вземете промените.
sudo service icinga2 restart
Сега, когато е главен, можете да го използвате, за да генерирате низа на заявката за подписване на сертификат.
sudo icinga2 pki ticket --cn icinga2client.example.com
Ще получите някакъв низ $pkiString
. Копирайте този низ, тъй като ще ви трябва на клиента.
Стартирайте съветника за възел, за да генерирате сертификатите и да се свържете с главния.
sudo icinga2 node wizard
Ще се появи страница, подобна на горната. Тази страница е показана по-долу с включени отговори.
Welcome to the Icinga 2 Setup Wizard!
We'll guide you through all required configuration details.
Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]: Y
Starting the Node setup routine...
Please specify the common name (CN) [icinga2client.example.com]:
Please specify the master endpoint(s) this node should connect to:
Master Common Name (CN from your master setup): icinga2master.example.com
Do you want to establish a connection to the master from this node? [Y/n]: Y
Please fill out the master connection information:
Master endpoint host (Your master's IP address or FQDN): icinga2master.example.com
Master endpoint port [5665]: 5665
Add more master endpoints? [y/N]: N
Please specify the master connection for CSR auto-signing (defaults to master endpoint host):
Host [icinga2master.example.com]: icinga2master.example.com
Port [5665]: 5665
information/cli: Created backup file '/etc/icinga2/pki/icinga2client.example.com.key.orig'.
information/cli: Created backup file '/etc/icinga2/pki/icinga2client.example.com.crt.orig'.
information/base: Writing private key to '/etc/icinga2/pki/icinga2client.example.com.key'.
information/base: Writing X509 certificate to '/etc/icinga2/pki/icinga2client.example.com.crt'.
information/cli: Fetching public certificate from master (icinga2master.example.com, 5665):
Certificate information:
Subject: CN = icinga2master.example.com
Issuer: CN = Icinga CA
Valid From: Jan 10 21:08:37 2017 GMT
Valid Until: Jan 7 21:08:37 2032 GMT
Fingerprint: FE 72 AB F3 18 A5 12 E0 0C 5D 94 8B 96 C4 57 3B 00 5C E0 04
Is this information correct? [y/N]: Y
information/cli: Received trusted master certificate.
Please specify the request ticket generated on your Icinga 2 master.
(Hint: # icinga2 pki ticket --cn 'icinga2client.example.com'): $pkiString
information/cli: Requesting certificate with ticket '$pkiString'.
warning/cli: Backup file '/etc/icinga2/pki/icinga2client.example.com.crt.orig' already exists. Skipping backup.
information/cli: Writing signed certificate to file '/etc/icinga2/pki/icinga2client.example.com.crt'.
information/cli: Writing CA certificate to file '/etc/icinga2/pki/ca.crt'.
Please specify the API bind host/port (optional):
Bind Host []: <enter key>
Bind Port []: <enter key>
Accept config from master? [y/N]: Y
Accept commands from master? [y/N]: Y
information/cli: Disabling the Notification feature.
Disabling feature notification. Make sure to restart Icinga 2 for these changes to take effect.
information/cli: Enabling the Apilistener feature.
warning/cli: Feature 'api' already enabled.
information/cli: Created backup file '/etc/icinga2/features-available/api.conf.orig'.
information/cli: Generating local zones.conf.
information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
information/cli: Created backup file '/etc/icinga2/zones.conf.orig'.
information/cli: Updating constants.conf.
information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
information/cli: Updating constants file '/etc/icinga2/constants.conf'.
Done.
Now restart your Icinga 2 daemon to finish the installation!
Продължете и рестартирайте Icinga2, за да вземете промените.
sudo icinga2 restart
Това може вече да е направено, но трябва да се уверите, че командите и функциите на API са активирани.
sudo icinga2 feature enable command
sudo icinga2 feature enable api
If they weren't enabled, it will say "feature enabled", so you'll need to restart the Icinga2 daemon. But first, you need to change ownership of the files in the /etc/icinga2
directory, as some of them have the wrong permissions after running the node wizard. They should all have their owner and group set to icinga
. Change the permissions by using the following command:
sudo chown -R icinga:icinga /etc/icinga2/
Now, you can restart the Icinga2 daemon.
sudo service icinga2 restart
The client configuration requires editing a few different files.
/etc/icinga2/zones.conf
: Contains the endpoints (servers) and zones that contain them. This is how the servers are partitioned. Make sure the client names match the server names./etc/icinga2/icinga2.conf
: You are accepting commands and configs from the master, so you need to do a minor edit on this file to avoid duplicate command definitions.First, we're going to modify the zones.conf
file to define the server and the zone it's in, as well as creating a "global" zone for command definitions that are universal to ALL servers, instead of unique to each (such as disk checks).
sudo vi /etc/icinga2/zones.conf
object Zone clientZone {
endpoints = [ "icinga2master.example.com" ]
}
object Zone "global-templates" { # Add global templates zone
global = true
}
object Endpoint NodeName {
host = "$icinga2clientIP"
}
object Zone ZoneName {
endpoints = [ NodeName ]
parent = clientZone
}
It is important to know, there can only be 2 nodes per zone at the moment. You can make as many zones as you wish, but if there are more than 2 nodes per zone there is a chance that the Icinga2 service will not work properly. This is not a problem on the client, unless you already have 2 nodes in the zone clientZone
, in which case you will need to make another zone name.
Now, make the modification in the /etc/icinga2/icinga2.conf
file. You need to comment out the line include_recursive "conf.d"
.
sudo vi /etc/icinga2/icinga2.conf
...
//include_recursive "conf.d"
...
Verify config to ensure that everything is formatted correctly.
sudo icinga2 daemon -C
If you get permissions problems, it's likely because the item is owned by root:root
. Chown to icinga:icinga
to resolve.
sudo chown -R icinga:icinga /etc/icinga2/
There are other issues with the configs, generally the information given from the output of the sudo icinga2 daemon -C
command will be verbose enough to track them down. Addressing every potential issue that arises is outside the scope of this guide.
If the verification succeeds, go ahead and reload the service:
sudo service icinga2 restart
You'll need to give the icinga
user sudo permissions so that the commands can be run. These sudo permissions will be restricted to the specific plugin directory. This can just be put at the end of the file.
sudo vi /etc/sudoers
...
Defaults:icinga !requiretty
icinga ALL=(ALL) NOPASSWD: /usr/lib64/nagios/plugins/
Сега конфигурацията на клиента е официално завършена. Не трябва да правите повече модификации, всички проверки на услугата ще се конфигурират на главния и ще се разпространят надолу към клиента. Ще трябва обаче да инсталирате всички допълнителни плъгини, от които може да се нуждаете. Плъгините могат да бъдат написани и с помощта на python, perl, BASH, PHP и други скриптови езици.
Ще трябва да се върнете към главния, за да конфигурирате клиента, така че да може да бъде свързан. Има няколко стъпки, които трябва да се предприемат:
repository.d
.Конфигурацията на хоста ще бъде въведена във /etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
файла.
sudo vi /etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
object Host "icinga2client.example.com" {
import "satellite-host"
address = "$icinga2clientIP"
vars.os = "Linux"
}
sudo chown icinga:icinga /etc/icinga2/repository.d/hosts/icinga2client.example.com.conf
Сега хостът съществува в конфигурацията на клиента, но трябва да бъде поставен в зона. Тази зона ще бъде в /etc/icinga2/repository.d/zones
папката със същото име като името на зоната, за да се улесни проследяването.
sudo vi /etc/icinga2/repository.d/zones/clientZone.conf
object Zone "clientZone" {
endpoints = [ "icinga2client.example.com" ]
parent = "icinga2master.example.com"
}
След това трябва да добавите global-templates
зоната.
sudo vi /etc/icinga2/repository.d/zones/global-templates.conf
object Zone "global-templates" {
global = true
}
Накрая добавете клиентската крайна точка, така че масивът от крайни точки "clientZone" да се попълни, когато се изпълнява.
sudo vi /etc/icinga2/repository.d/endpoints/icinga2client.example.com.conf
#Change values to match the host you're adding
object Endpoint "icinga2client.example.com" {
host = "$icinga2clientIP"
}
За да сте сигурни, че няма проблеми с разрешенията, продължете и променете отново собственика/групата.
sudo chown -R icinga:icinga /etc/icinga2
Проверете промените в конфигурацията, за да сте сигурни, че няма повече проблеми.
sudo icinga2 daemon -C
Ако проверката е успешна, продължете с презареждането.
sudo service icinga2 restart
Ако посетите вашия уебсайт Icinga2, ще видите, че сървърът става достъпен.
Може да срещнете грешки относно „командата не е намерена“ или „проверката не е дефинирана“. Това е мястото, където зоната на глобалните шаблони влиза в игра. Ще трябва да копирате конфигурацията във /etc/icinga2/conf.d/
файлове и да ги поставите във /etc/icinga2/zones.d/global-templates/
файлове. Например, за да създадете команда "check_software", ще трябва да направите следното.
sudo mkdir /etc/icinga2/zones.d/global-templates
sudo vi /etc/icinga2/zones.d/global-templates/commands.conf
object CheckCommand "check_software" {
import "plugin-check-command"
command = [ "/usr/bin/sudo", PluginDir + "/software_service_check.sh" ]
}
В software_service_check.sh
досието ще трябва да съществува в /usr/lib64/nagios/plugins
папката на клиента .
След това добавете проверката на услугата във /etc/icinga2/repository.d/hosts/services.conf
файла.
sudo vi /etc/icinga2/repository.d/hosts/services/services.conf
apply Service "Check Software Service" {
import "mail-service"
check_command = "check_software" # This check command is the same name as the one you defined in global-templates/commands.conf
assign where host.vars.client_endpoint # This will apply to every client server. If you need it to be more restrictive, you should look into custom variables
}
Ще трябва отново да промените разрешенията.
sudo chown -R icinga:icinga /etc/icinga2
След това проверете отново конфигурацията.
sudo icinga2 daemon -C
Накрая, ако успее, презаредете:
sudo service icinga2 restart
Честито! Сега използвате Icinga2 в модел главен-клиент и вече можете да избегнете необходимостта да използвате несигурните проверки на NRPE!
Използване на различна система? Plesk е собствен контролен панел за уеб хост, който позволява на потребителите да администрират своите лични и/или клиентски уебсайтове, бази данни
Squid е популярна, безплатна програма за Linux, която ви позволява да създадете уеб прокси за препращане. В това ръководство ще видите как да инсталирате Squid на CentOS, за да ви обърне
Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте
VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате
Icinga2 е мощна система за наблюдение и когато се използва в модел главен-клиент, тя може да замени необходимостта от проверки на базата на NRPE. Главният клиент
Използване на различна система? Apache Cassandra е безплатна система за управление на база данни NoSQL с отворен код, която е проектирана да осигури мащабируемост, висока
Използване на различна система? Microweber е CMS и онлайн магазин с отворен код за плъзгане и пускане. Изходният код на Microweber се хоства на GitHub. Това ръководство ще ви покаже
Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca
Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място
Контролният панел на Plesk разполага с много приятна интеграция за Lets Encrypt. Lets Encrypt е един от единствените доставчици на SSL, които предоставят пълно сертификати
Lets Encrypt е сертифициращ орган, посветен на предоставянето на SSL сертификати безплатно. cPanel изгради чиста интеграция, така че вие и вашият клиент
Използване на различна система? Concrete5 е CMS с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и
Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер
В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва
YOURLS (Your Own URL Shortener) е приложение за съкращаване на URL адреси и анализ на данни с отворен код. В тази статия ще разгледаме процеса на инсталиране
Използване на различна система? Въведение ArangoDB е NoSQL база данни с отворен код с гъвкав модел на данни за документи, графики и ключ-стойности. то е
Въведение Директорията /etc/ играе критична роля в начина, по който функционира една Linux система. Причината за това е, че почти всяка системна конфигурация
Много системни администратори управляват големи количества сървъри. Когато файловете трябва да бъдат достъпни на различни сървъри, влизането във всеки от тях поотделно ок
Този урок ще обхване процеса на инсталиране на сървър за игри Half Life 2 на CentOS 6 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou
Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.
Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.
Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.
Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…
Тъй като науката се развива с бързи темпове, поемайки много от нашите усилия, рискът да се подложим на необяснима сингулярност също нараства. Прочетете какво може да означава сингулярността за нас.
Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.
Прочетете блога, за да разберете различни слоеве в архитектурата на големи данни и техните функционалности по най-простия начин.
В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.
Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече