Как установить Anchor CMS на CentOS 7 LAMP VPS
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
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, чтобы добавить мастер в качестве имени локального домена.
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
Если они не были включены, будет указано «функция включена», поэтому вам нужно будет перезапустить демон Icinga2. Но сначала вам нужно изменить владельца файлов в /etc/icinga2
каталоге, так как некоторые из них имеют неправильные разрешения после запуска мастера узлов. Все они должны иметь своего владельца и группу icinga
. Измените разрешения с помощью следующей команды:
sudo chown -R icinga:icinga /etc/icinga2/
Теперь вы можете перезапустить демон Icinga2.
sudo service icinga2 restart
Конфигурация клиента требует редактирования нескольких разных файлов.
/etc/icinga2/zones.conf
: Содержит конечные точки (серверы) и зоны, которые их содержат. Вот как серверы разделены. Убедитесь, что имена клиентов совпадают с именами серверов./etc/icinga2/icinga2.conf
: Вы принимаете команды и конфигурации от мастера, поэтому вам нужно внести незначительные изменения в этот файл, чтобы избежать дублирования определений команд.Во-первых, мы собираемся изменить zones.conf
файл, чтобы определить сервер и зону, в которой он находится, а также создать «глобальную» зону для определений команд, которые являются универсальными для ВСЕХ серверов, а не уникальными для каждого (например, проверки диска) ,
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
}
Важно знать, что на данный момент в каждой зоне может быть только 2 узла. Вы можете создать столько зон, сколько пожелаете, но если в каждой зоне более двух узлов, есть вероятность, что служба Icinga2 не будет работать должным образом. Это не проблема для клиента, если у вас уже нет 2 узлов в зоне clientZone
, и в этом случае вам нужно будет сделать другое имя зоны.
Теперь внесите изменения в /etc/icinga2/icinga2.conf
файл. Вы должны закомментировать строку include_recursive "conf.d"
.
sudo vi /etc/icinga2/icinga2.conf
...
//include_recursive "conf.d"
...
Проверьте конфигурацию, чтобы убедиться, что все отформатировано правильно.
sudo icinga2 daemon -C
Если у вас возникают проблемы с разрешениями, скорее всего, потому, что этот элемент принадлежит root:root
. Принято icinga:icinga
решать.
sudo chown -R icinga:icinga /etc/icinga2/
Есть и другие проблемы с конфигами, обычно информация, полученная из выходных данных sudo icinga2 daemon -C
команды, будет достаточно подробной, чтобы отследить их. Решение всех возможных проблем выходит за рамки данного руководства.
Если проверка прошла успешно, перезапустите сервис:
sudo service icinga2 restart
Вам нужно дать icinga
пользователю права sudo, чтобы эти команды можно было запускать. Эти разрешения sudo будут ограничены конкретным каталогом плагинов. Это можно просто положить в конец файла.
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!
Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.
При настройке нового сервера Linux рекомендуется обновить ядро системы и другие пакеты до последней стабильной версии. В этой статье
Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам
Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья
Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания
OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через
OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в
Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я
MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns
Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:
Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе
RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях
Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия
Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и
Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.
Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я
Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется
Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на
Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер
Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.
Изучение 26 методов анализа больших данных: часть 1
Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.
Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.
Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.
Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.
CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?
По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.
Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!
Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.
Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше