Встановіть 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, яке вже було налаштовано. Вам потрібно буде зробити це за допомогою 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, щоб додати master як локальне доменне ім’я.
sudo vi /etc/hosts
...
$masterIP icinga2master icinga2master.example.com
Цей крок потрібно виконати на майстер Icinga2. Вам потрібно буде ініціалізувати його як головний, а потім згенерувати запит на підписання сертифіката, який ваш клієнт використовуватиме для спілкування.
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. Цей посібник покаже вам
Використання іншої системи? Vanilla forum — це програма з відкритим вихідним кодом, написана на PHP. Це повністю настроюваний, простий у використанні та підтримує зовнішній вигляд
Використання іншої системи? Mattermost — це автономна альтернатива службі обміну повідомленнями Slack SAAS з відкритим кодом. Іншими словами, з Mattermost ви бл
Панель керування Plesk має дуже гарну інтеграцію для Lets Encrypt. Lets Encrypt є одним із єдиних постачальників SSL, які надають сертифікати повністю
Lets Encrypt — це центр сертифікації, який надає безкоштовні сертифікати SSL. cPanel створив чітку інтеграцію, щоб ви і ваш клієнт
Використання іншої системи? Concrete5 — це CMS з відкритим вихідним кодом, яка пропонує багато відмінних і корисних функцій, які допомагають редакторам легко створювати вміст.
Використання іншої системи? Review Board — це безкоштовний інструмент з відкритим кодом для перегляду вихідного коду, документації, зображень та багато іншого. Це веб-програмне забезпечення
У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію HTTP для веб-сервера Nginx, що працює на CentOS 7. Вимоги Щоб почати, вам знадобиться
Використання іншої системи? GoAccess — це аналізатор веб-журналів з відкритим вихідним кодом. Ви можете використовувати його для аналізу журналів у режимі реального часу в терміналі або
YOURLS (Your Own URL Shortener) — програма для скорочення URL-адрес і аналізу даних із відкритим вихідним кодом. У цій статті ми розглянемо процес встановлення
Використання іншої системи? Вступ ArangoDB — це відкрита база даних NoSQL з гнучкою моделлю даних для документів, графіків і ключів-значень. це є
Вступ Каталог /etc/ відіграє важливу роль у функціонуванні системи Linux. Причина цього в тому, що майже кожна конфігурація системи
Багато системних адміністраторів керують великою кількістю серверів. Якщо потрібно отримати доступ до файлів на різних серверах, увійти на кожен окремо бл
У цьому посібнику буде описано процес встановлення ігрового сервера Half Life 2 на систему CentOS 6. Крок 1: Встановлення необхідних умов Щоб налаштувати ou
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше