Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок, мониторинг системы на сервере

Лекция



Привет, Вы узнаете о том , что такое поддержка ubunutu, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое поддержка ubunutu, использование lamp, решение проблем возникающих из-за ошибок, мониторинг системы, поддержка сервера, бекапирование данных , настоятельно рекомендую прочитать все из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend) .

поддержка сервера – это комплекс сервисов, направленных на то, чтобы сервер постоянно, бесперебойно и продуктивно функционировал. Но базовой поддержке предшествует регулярная проверка, установка и настройка оборудования.

Проверка включает в себя диагностику системы, наличие свободного пространства на дисках, проверка и обновление программного обеспечения, а также загрузку процессоров. Устранения неполадок начинается с поиска причины сбоя. И непосредственно путем изменения параметров, настроек или программного обеспечения данный сбой ликвидируется.

Услуги обслуживания серверов включают в себя: установку операционных систем и драйверов, обновление, мониторинг работы и сервисное обслуживание серверов, настройка протоколов и сетевых служб.

Бесперебойная работа серверов зависит от аппаратного и программного обеспечения и системного администрирования. Профессиональный администратор или девопс не менее важен, чем качественное оборудование или надежное ПО. Более того, хороший администратор «выжмет» максимум производительности и из аппаратного, и из программного обеспечения, поможет сгладить их недостатки, предотвратит сбои.

Содержание

  • 1. Подключение к удаленному серверу через терминал
  • 2. Ошибки вызывающие отказ работы Apache Mysql Nginx PostFix Proftd
    • 2.1. нет ни с чем связи , например с терминалом , с http
    • 2.2. связь с ssh на 20 порту есть, но все остальное порты не работают.
    • 2.3. удаленная перезагрузка компьютера через терминал
    • 2.4 Решение проблемы «/var/run/mysqld/mysqld.sock не найден»
    • 2.5 Failed to start mysql.service: Unit mysql.service is masked.
    • 2.5 нехватка памяти и проверка свободной
  • 3.Запуск и перезагрузки демонов, процессов, компьютера из терминала Ubunutu
    • 3.1 запуск , остановка и перезагрузка процессов
    • 3.2 обычный запуск процессов
    • 3.3 Запуск в фоне процесса ,с отвязкой от терминала в Ubuntu,
  • 4. Работа с файловой системой
    • 4.1. какие есть в системе физические разделы, диски
    • 4.2 создание папки
    • 4.3 монтирование устройств
    • 4.4 постоянное автоматическое монтирование
    • 4.5. размонтироваиние
  • 6.Донастройка системы
  • 7.автомонтирование вшешних устройств
  • 5.Работа с пользователями
  • 6. КОНФИГУРИРОВАНИЕ ДЕМОНОВ И ПРОЦЕССОВ, настройка времени
    • 6.1 общие вопросы
    • 6.2 конфиг апача
    • 6.3 конфиг нжина
    • 6.4 пользовательский конфиг php.ini
  • 7.установка и обновление програм в ubunutu
  • 8. бесплатный антивирус в ubunutu
  • 9. мониторинг нагрузки
    • 9.1 отчет по нагрузке на сервер вычисляется через системную команду
    • 9.2 использование сетевого интефейса
    • 9.3 отчет по использовапнию памяти
    • 9.4 отчет от пинге сервера со стороны другого сервера
    • 9.5 отчет по логам апача, ково запросов, коды ответов, колво переданных байт
    • 9.6 просмотр системных нагрузок в режиме реального времени
  • 10. создание бекапов и контроль их выполнеия
  • 11. мониторинг и настройка безопасности
  • 12. Общая информация о системе
  • 13 .просмотр конфигурации железа

LAMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, широко используемый во Всемирной паутине. L

. LAMP назван по первым буквам входящих в его состав компонентов:

  • Linux — операционная система Linux;
  • Apache — веб-сервер;
  • MariaDB / MySQL — СУБД;
  • PHP — язык программирования, используемый для создания веб-приложений(помимо PHP могут подразумеваться другие языки, такие как Perl и Python).

Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок, мониторинг системы на сервере

Предположим, что вы уже настроили сервер и нужна его ежедневная поддержка. и восстановление после сбоев.

Для удаленного доступа из среды Windows нужна специальная программа, т.н. SSH клиент.

Примером такой программы может служить putty , скачать который можно на официальном сайте http://www.putty.org/ .

В начале вам нужно будет узнать ip удаленного сервера и номер порта на котором должно быть все предварительно установленно включая SSH сервер .

Так жевам необходим заранее созданный пользователь с заданными логином и паролем для удаленного доступа и имеющий примелегии выполения от root.

Итак, приступим:

1. Подключение к удаленному серверу через терминал

Если вы подключаетесь через удаленного клиента, то запустите его , настройте соединение .
Если терминал обывает соединение при простое, то установить передачу пустой команды каждые пол минуты.

Если неверно отображается кирилица изменити настройки на UTF8 или скачайте более новый клиент с встроенное его поддержкой и настроенным на UTF8 изначально.

Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок, мониторинг системы на сервере

Если нет соединения ,то нужно проверить порт, ip, нет ли пробела или кирилицы в логине пароле, не блокировали или не удаляли ли
ползователя, не блокирует ли ваш антивирус браундмауер , роутер к соотвествующему порту и ip адресу.

например утилитой telnet.

Если вы входите локально с компьютера то достаточно запустить терминал нажав одновременно сочетание кнопок Ctrl+Alt+T

Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок, мониторинг системы на сервере

Вводите логин

пароль (при вводе пароля ничего не отображентся ни смещение курсора ни звездочек)

если вход выполне успешно то получите приветсвие от операционной системы.

Для того чтобы выполнять команды от root нужно запустить процесс sudo

войти под рутом sudo su

и подтвердить пароль

выйти из рута exit один раз

очистить экран терминале - clear

Для работы с файловой стстемой значительно упрощает и ускоряет работу с ней
удобный файловый менеджер с псевдографическим интерфесом Midnight Commander :

для запуска введите команду mc

Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок, мониторинг системы на сервере

Для копирования нужно просто выделелить нужное и оно уже все будет в буфере.

Для вставки нужно нажать правую кнопку мыши,
Для просмотра истории выполения команд или результатов - нажмите внизу справа стрелку вверх ,

прокрутка верх бегунока справа - текст вывода терминал после выполнения команд.

2. Ошибки вызывающие отказ работы Apache Mysql Nginx PostFix Proftd

2.1. тип : нет ни с чем связи , например с терминалом , с http ( ни один известный порт не прослушивается telnet на данном ид адресе), проверить доступ ко всем сервисам, если нет то реально проблема физическая со всем сервером. Вероятно выключен физически компьютер или нет интеренета на нем.

Для решения такой проблемы нужно посмотреть нет ли задолженности по оплате, в случае арендуемого сервера- писать или звонить в
их службу поддержки они или сами решт проблему воможно неможет стартунуть сервер их-ха ошибки на винчестере, или попровобовать получить доступ к роутеру и проверить если ли в нем перенаправленние портов на нужный ип, включен ли он, если интернет в помещении где установлен сервер, можно попустаться перезагрузить роутер.

2.2. тип проблем - связь с ssh на 20 порту (или другом, в зависимости от конфигурации) есть, но все остальное не работает.

Для решения таких проблем нужно после подключения через терминал посмотретьвсе нужные логи и попытаться сделать старт незапущенных демонов и процессов с повторным просмотром логов

2.3. только если ничего из вышенаписанного не помогло - общая перезагрузка компьютера (как это сделать написано ниже)

__________________________________________________________________________________

Часто причину ошибок можно найти в логах, почти все программы логируют ошибки в системный файл и свои папки находящиеся в /var/log .

Теперь рассмотрим типичные ошибки которые могут возникнуть у серверного програмного обеспечения.


Ошибка MySQL вида got 20 : проверь дастаточно ли свободного места на жестких дисках(должнно быть больше 5%) если нет, то почистить ненужное бекапы /var/www/backup/*, папку /tmp

Ошибка занят порт- видимо другое или такое же приложение запущено и заняло прослушку данного порта.

проверить утилитой netstat -tpln

Ошибка MySQL нет сокета-файла... попробовать сначала несколько раз перезагрузить демон, проверить права на данный файл-сокет, прочитать внимательно логи и если ничегоне помогло, попробовать его создать , но не вручную, а специальной утилитой.

Ошибка запуска любого сервиса также может быть из-за нехватки места в разделе /tmp или на всем жостком диске.

Ошибка запуска Apache 2.2 - вероятно нет домена в DNS, проверить оплачены ли днс-записи, если нет, то отлючить из конфига домен . Так же причиной не запуска apache может быть синтаксическая ошибка файла конфигураций , для тестирования синтаксиса

можно выполнить команду : apachectl -t

2.4 Решение проблемы «/var/run/mysqld/mysqld.sock не найден»

Работая с реляционной базой данных MySQL, можно столкнуться с проблемой: при старте демона(сервиса)mysqld возвращается сообщение об ошибке:

ERROR 2002 (HY000): Can't connect
to local MySQL server through
socket '/var/run/mysqld/mysqld.sock' (2)

Эта же ошибка в логах выглядит так:

[ERROR] Can't start server : Bind on unix socket: No such file or directory
[ERROR] Do you already have another mysqld server running on socket: /var/run/mysqld/mysqld.sock ?

Иначе говоря, MySQL демон не может подключиться к Unix-сокету. А такое может произойти по двум причинам:

  1. кто-то уже занял сокет;
  2. MySQL не может получить доступ к сокету.

Для проверки первого варианта можно попробовать узнать: а не занимает ли кто-то этот файл.

sudo lsof /var/run/mysqld/mysqld.sock

В результате получаем нечто подобное:

COMMAND PID  USER   FD   TYPE  DEVICE     SIZE/OFF NODE NAME
mysqld  1299 mysql  6u   unix  0xf6546840 0t0      7877 /var/run/mysqld/mysqld.sock

где видно, кто занял файл. Или же

...
lsof: status error on /run/mysqld/mysqld.sock: No such file or directory
...

-- файл отсутствует.

В первом случае все ясно -- либо так и надо, либо отключаем приложение, занявшее сокет.
Во втором случае стоит создать сокет и/или сделать его доступным mysql, для этого выполняем:

sudo mkdir /var/run/mysqld
sudo mkfifo /var/run/mysqld/mysqld.sock
sudo chown -R mysql /var/run/mysqld

Построчно:

  1. создаем папку, в которой должен лежать файл сокета;
  2. создаем сам сокет командой mkfifo (хотя сокет -- это тоже файл, создавать его можно только специальной программой -- mkfifo);
  3. устанавливаем владельцем папки /var/run/mysqld пользователя mysql.

После чего MySQL уже должен нормально работать.

2.5 Failed to start mysql.service: Unit mysql.service is masked. может появится при переходе с mysql на mariadb

The following has fixed the problem.

1.rm -r /var/lib/mysql*		# удаляем все настройки баз данных (можно попробовать пропутить этот шаг. т к после этого вы потеряете все базы данных)
2. mysql_install_db -u mysql	# создание новой базы данных
3.systemctl unmask mysql.service	# активирует  сервис для  systemd
4. service mysql start		# старт сервиса.


2.5 нехватка памяти
проверка свободной 
 /proc/meminfo
или 
free -m

free -m | sed -n -e '3p' | grep -Po "\d+$" реальный размер без учта кеша (но наверное неправильно)
очистка кеша файловой системы в памяти
разово sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

в кроне */15 * * * * root sync && echo 3 > /proc/sys/vm/drop_caches
в конфиге
sudo sysctl -w vm.drop_caches=3 (но это эффекта не даст, т к система бз кешей можт тормозить)

3.Перезагрузки демонов, процессов, компьютера из терминала Ubunutu

3.1 запуск, остановка и перезагрузка процессов

перезагрузить apache: service apache2 restart или stop или start
перезагрузить nginx: service nginx restart
перезагрузить ftp-сервер: service proftpd restart
перезагрузка почтового сервера service postfix restart

перезагрузка PHP 7.0 если он работает в режиме FPM/FastCGI service php7.0-fpm restart

не спешите перезагружать сервер баз данных т к при работающих соединениях пользлвателей возможно некорректное завершение
работы и база может испоттится ьез возможности ее восстановления.
лучше предварительно попытаться всех польователей выгрузить, остановив apache, а потом только рестарт мускула.
перезагрузить mysql : service mysql restart

если не перезапускает по демону, то можно попробовать по процессу например так /etc/init.d/apache2 restart

Если доступ серверу баз данных есть а другие юзеры немогут подключиться к нему или сильно тормозит, то можно посмотреть что выполнят в данный момент сервер баз данных SHOW PROCESSLIST, KILL 4. завершить по ид процесс. Эти команды запустить непосредственно в mysql, не в терминале.

Чтобы посмотреть конкретный запрос можно или включить полное логирование запросов или в базу данных или в текстовый файл, или включить в настройках логирование медленно выполняющихся запросов , например тех, котрые выполяются более 5 секунд.

посмотреть(выгрузить) что сейчас запущено и нагрузку: htop - аналог диспетчера задач windows в линуксе.
kill ид выгрузить немедленно процесс с ид

перезагрузить компьютер немедленно- команда: reboot

3.2 обычный запуск процессов

путь_к_приложению параметры [> куда вывести вывод]

пример компиляции и установки программ из исходников

1. tar -xvf .tar.gz - распокавать архив
2. cd <имя_пакета>* перейти в нужную папку

3. ./autogen.sh

4. make

3.3 Запуск в фоне процесса , с отвязкой от терминала в Ubuntu,

(при этом будет закрытие окна терминала без закрытия открытой программы)

способ 1.
1. nodejs /var/www/site/public_html/socket.js > /dev/null
2. нажать cntr+ Z ( получить доступ к командой строке)
3. disown -h %1 (jотключение действия сигнала SIGHUP)
4. bg 1 (переводит задачу в фоновый режим)
5. закрыть терминал
способ 2
$ nohup program > /dev/null &
закрыь терминал
способ 3
program & exit
закрыь терминал
способ 4.
$ program &
$ disown
закрыь терминал
рекомендую или второй или первый способ для запуска приложения в фоне.
если в первом методе не работакт cntr+Z то попробуйте Ctrl-Alt-F7

4. Работа с файловой системой в линукс


Для всех операций с созданием файла каждая программа имеет umask для

понижения максимально дозволеных прав например - 002


Нужно не забывать, что все файлы созданные под рутом, недоступны остальным, поэтому нужно изменять права
перед выходом, на них


Изменить привелегии на все файлы в текущей папке: find ./ -type f -exec chmod 777 {} \;
Изменить привеленгии на все папки в текущей папке: find ./ -type d -exec chmod 777 {} \;

создать пустой файл в текущей папке: >name.file

отправить на почту содежимое файла(для удобного просмотра): mail -s "hello" мояпочта@mail.ru <
/etc/php7.0/файл.

Так же важны команды статического и динамического монтирования , форматирования, проверки дисков.

С монтированием все просто. Допустим, вам нужно подключить новый винчестер для хранения резервных копий или флешнакопитель - флешку или CDRoom.

Если вы раньше использовали ОС Windows, то вы, скорее всего, привыкли к дискам с именами (C:), (D:) и т.д.

В ОС Ubuntu Linux все иначе. Если в Windows для каждого раздела винчестера, CD-привода, флешки или картридера, назначалась определенная буква, к примеру (E:), то в Linux содержимое всех подключаемых и внутренних дисков отображается в виде папок, которые монтируются (подключаются) в корень файловой системы (/)

В Linux подключение диска в основную файловую систему называется монтирование.

Список всех смонтированных устройств можно узнать командой mount

для выполнения ручного монтирования (например внутреннего нового винчестера )можно сделать следующее:

1. узнайте какие у вас физически есть разделы, диски

Узнаем имена разделов.  cat /proc/partitions или  blkid или fdisk -l или lsblk

sdb sda это физические диски цифры - это разделы

2. создайте пустую папку, через которую будет доступ к данному разделу(это и будет монтированине), назначте ей необходимые права доступа

3. выполните монтирование например sudo mount /dev/sdb5 /folder_for_disk2 (монтирование через имена устройств)

Предположим, мы не знаем, какая файловая система на диске. К счастью, в большинстве случаев вполне можно положиться на автоматическое определение системы.

$ sudo mount /dev/md0 /mnt/raid0 -t auto -o rw,nls=utf8,noatime

$ mount
....
/dev/md0 on /mnt/raid0 type ext3 (rw,noatime,nls=utf8)

4. если нужно постоянное автоматтическое монтирование то внесите соотвествующие изменения в файл /etc/fstab такое монтирование называется -монтированием через универсально уникальный идентификатор (UUID).

4.1 Узнаем UUID разделов, для этого sudo blkid
Создаем каталоги для монтирования:
4.2 sudo mkdir /mnt/Shared /mnt/Tr5775Net8Gb
4.3 Открываем от имени администратора файл /etc/fstab, содержащий информацию о всех монтируемых при загрузке разделах: sudo nano /etc/fstab
4.4 Добавляем в конец файла,
для NTFS:
UUID="77A62DEF5CCCCC7C" /mnt/Shared ntfs rw,nls=utf8,gid=plugdev,umask=0002 0 0


для FAT и FAT32:

UUID="3E3B-F557" /mnt/TrendNet8Gb vfat rw,exec,codepage=866,nls=utf8,gid=plugdev,umask=0002,nofail,users 0 0
4.5 Монтируем только что вписанные разделы диска:
sudo mount -a
4.5. размонтироваиние 

umount <точка монтирования|устройство>

Таким образом, чтобы отмонтировать наш новый раздел, мы можем ввести:


 
$ umount /mnt

или:


 
$ umount /dev/hdb1
пример монтирования в кроне при загрузкесистемы 


@reboot mount /dev/sdb5 /disk2

4.6.Донастройка системы

Теперь диски стали подключаться автоматически, но так как это делается от имени root, у нас пропала возможность на подключенных дисках давать права на общий доступ, чтобы восстановить эту возможность добавим настройку в Samba:
sudo gedit /etc/samba/smb.conf
добавим в секцию [global]:
usershare owner only = false

4.7 статическое монтирование

a) смотрим список разделов и нам нужно готовый раздел смонтировать в определеную папку

lsblk


NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
└─sda1 8:1 0 931,5G 0 part /some/backupdisk
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot/efi
└─nvme0n1p2 259:2 0 476,4G 0 part /

b)редактируем /etc/fstab

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
#
# / was on /dev/nvme0n1p2 during installation
UUID=11c05bbc-ecad-499d-9622-b717260e3833 / ext4 errors=remount
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=111A-4D70 /boot/efi vfat umask=0077 0 1
/swapfile none swap sw
/dev/sda1 /some/backupdisk ext4 defaults 0 0
добавили

проверили и обновили с помощью комманды - mount -a

c) если ошибка ошибка
wrong fs type, bad option, bad superblock on /dev/sda, missing codepage or helper program, or other error.

значит или не создан раздел, нужно создать (ВНИМАНИЕ создание раздела уничтожит данные, делайте все внимательно!)

fdisk /dev/sda 

и дальше нужно отвечать на вопросы

Добро пожаловать в fdisk (util-linux 2.34).
Изменения останутся только в памяти до тех пор, пока вы не решите записать их.
Будьте внимательны, используя команду write.

Устройство не содержит стандартной таблицы разделов.
Создана новая метка DOS с идентификатором 0x11c106e0.

Команда (m для справки):

...

выбираем первичный p

номер 1-4 ...1

начало и конечц сектора

w - записываем информацию 
создаем файловую систему mkfs.ext4 /dev/sda1

или если испорченый раздел, то выполняем

тогда нужна проверка fsck /dev/sda1

4.8 автомонтирование вшешних устройств

На данный момент Ubuntu Linux выполняет автоматическое монтирование всех обнаруженных подключаемых устройств (внешние винчестеры, флешки, фотоаппараты и т.д.)в корень файловой системы в директорию /media/. Об этом говорит сайт https://intellect.icu . Например, если вы вставите флешку с меткой «Flash_card», то система смонтирует ее в каталог /media/Flash_card. В любом случае вам не надо задумываться куда и как монтировать внешние носители, т.к. они автоматически становятся доступны на панели рабочего стола в меню «Переход».

5.Работа с пользователями в линукс

При создании юзера:

useradd userlogin

и при испольщовании команды usermod -p пароль должен быть уже зашифрованный,

поэтому пароль установить и изменять лучше через:

passwd userlogin

При создании юзера для FTP (PROFTPD ) его нужно

в конфиге ftp /etc/proftpd/proftpd.conf разрешить


Order deny,allow
AllowUser ftplogin
AllowUser userftplogin

и пользователя добавить шелл в usermod Shell: /bin/sh , но запретить терминал в usermod

Пример всех действий для создания фтп-юзера из командной строки

useradd userftplogin

passwd userftplogin

usermod -g www-data userftplogin (первичная, основная группа)

usermod -G www-data userftplogin (дополительные группы)

usermod -d /var/www/siteuser/ userftplogin

Вот и все. пробум залогиниться, если есть пробеы то проверям все , ип, пароль, порт и даные о юзере.

Посмотреть главную группу getent group userftplogin

Посмотреть все группы groups userftplogin

Тонкости. для юзера может быть только одна главная группа и много дополнительных.
Создать и добавить юзера в группу

useradd -G www-data ftplogin

useradd -G sudo userlogin


изменить юзера с добавлением в root группу

usermod -aG sudo login

Сделать супер юзером без редактирования файла sudoes:

gpasswd -a login sudo

Изменить домашнюю директорию

usermod -d /home/homediruser/ username

информация о юзере:

finger userlogin (предварительно нужно установить )


6. КОНФИГУРИРОВАНИЕ ДЕМОНОВ И ПРОЦЕССОВ, настройка времени

редактировать крон: crontab -e крон для каждого юзера свой кроме когда от рута
в кронтабе вконце должна быть пустая строка

скачать ресурс из интернеа в текущюю папку: wget
отправить запрос любым методом: curl

добавить модуль апач: a2enmod headers вручную не лазить в конфиг для этого
добавить модуль php: php5enmod gd (php5enmod mcrypt)вручную не лазить в конфиг для этого
не изменять вручную конфиг sudo только через утилиту иначе потерятся доступ к sudo

Для серверов фтп и мускл - отключение ip6, resolve ip, включение и проброс пассивных портов.
для мускула нужно запустить и проверить что он запущен () процесс 1 для эвентов.
почтовый сервер - настройка DKIM


php_value upload_max_filesize 50M
php_value post_max_size 50M и тд

посмотреть и изменить время: date

синхронизировать время с атомными часами

ntpdate -s ntp.ubuntu.com
или установть утилиту самоминхронизации
apt-get install ntp


настройки php могут быть в главном конфике в папке /ets/php/7.0/php.ini
или в user.ini в корне директории - зависит от ностроек (если глобальный конфиг используется тои пхп как модуль апача ) то можно переопрелятт насройки пхп из конфигурациооного файла апача.
если php настроен как fpm , то настройки пхп возможны только из конфигов пхп

Конфигурации под каждый домен(хост) луше разбить на отдельные файлы

/etc/apache2/sites-enabled/host1.com.cfg


примерно с таким содержимым (если nginx как прокси для статическог содержимого)


ServerAdmin decode@mail.ru
ServerName host1.com
DocumentRoot /var/www/host1.com/public_html/
ServerAlias host1.com


Options -MultiViews
AllowOverride All

ErrorLog /var/www/host1.com/logs/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel info

CustomLog /var/www/host1.com/logs/access.log combined

после изменений конфигурации нужно перетестировать конфиги 
с помощью команды apachectl configtest и только после этого перезапускать


для nginx настройки зранятся в файлах :

/etc/nginx/sites-enabled/host1.com.nginx.conf
upstream stream1 {
# Адрес back-end'a
server localhost:8282;
}

server {
listen 80;
server_name host1.com www.host1.com ;

access_log /var/www/host1.com/logs/nginx_access.log;
error_log /var/www/host1.com/logs/nginx_error.log;
....
# rewrite ^ https://host1.com$request_uri? permanent;.


# Перенаправление на back-end
location / {
proxy_pass http://stream1;
include /etc/nginx/proxy_params;
}

client_max_body_size 300m;
client_body_buffer_size 128k;
proxy_connect_timeout 75s;
proxy_send_timeout 360s;
proxy_read_timeout 1200s;

# Статическиое наполнение отдает сам nginx

location ~* \.(css|ico|swf|js|jpeg|jpg|bmp|gif)$ {
root /var/www/host1.com/public_html/public;

access_log off;
}
}

поисле изменений конфигурации нужно тоже ее перетестировать с помощью команды 
service nginx configtext  
и только после этого перезапутить и проверить чт онастройки вступили в силу и сайты на сервере работают



Если на сервере несколько ip то нужно в конфигах 
nginx  или apache (смотря что слушает внешний 80ый или 443 порт)

иметь отдельные секции не только под хосты но и под ip

 listen  ip.ip.ip.ip1:80
{
....
}


 а во втором
 listen ip.ip.ip.ip2:80
{
}


если php становлен как fpm то настройки пользовательские могут быть в корне домена и иметь примерно следущее содержимое

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;

max_execution_time = 300
max_input_time = 600
;max_input_nesting_level = 64
max_input_vars = 100000
memory_limit = 128M

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

error_reporting = E_ALL
display_errors = On
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

file_uploads = On
;upload_tmp_dir =
upload_max_filesize = 12M
max_file_uploads = 20
post_max_size= 12M
;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;


default_socket_timeout = 60

в файле .user.ini

пнри этом нужно предварительно разрешить в настройках главного конфига php.ini поддержку таких файлов, его название

и срок перечитки (т.к. он кешироется по умолчанию на мин 10)

и только после этого можно перезапустить php

service php7-fpm restart

7.установка и обновление програм в ubunutu

1. обновление индекса и самих пакетов apt-get update +sudo apt-get upgrade
2. обновление системы do-release-upgrade,опасно, поэтому, перед этим лучше сделать бэкап всего
всего.
3. установка без компилиции apt-get install новыйпакет
4. удаленние apt-get remove имяпакета

Если не может обновиться или установиться,то, возможно , испорчен пакет при предыдущей установке,

можно попробовать форсированную установку.

если не может подключаться к репозиториям- попробовать добавить резервный ДНС 8.8.8.8 в конфиге apt.

8. бесплатный антивирус в ubunutu

установка
apt-get install clamav

примерная настройка в кроне

00 1 * * * freshclam --quiet -l /var/logs/clam-update.log
10 1 * * * clamscan --move=/etc/clamav/virus_found -r /var/www -i > /var/www/antivirus.log &&
mail -s "antivirus daily" ---@mail.ru < /var/www/logs/antivirus.log
30 3 * * * mail -s "Result Scan $(date)" ---@mail.ru < /var/logs/antivirus.log

логи обновления /var/www/clam-update.log
логи проверки /var/www/antivirus.log
зараженные файлы перемещаются в спец папку /virus_found, папка должна быть заранее создана т обладать достаточными правами


самое важное не перезагружать лишний раз, особенно сервер баз данных т.к. он может разрушить базу.
в очень крайнем случае остановить сначала апач, чтобы небыло коннекта к базе данных, а потом пытаться с ним
что то делать.
все остальное можно свободно перезагружать, но после перезагрузки могут появлятся новые ошибки
поэтому сначала лучше устранить причину их возникновения.

Примечания

=========================
изменить размер tmp (tmpfs) налету

Смотрим, сколько места у нас сейчас:

$ df -h /tmp
Filesystem Size Used Avail Use% Mounted on
tmpfs 1000M 64K 999M 1% /tmp
Изменяем размер так:

# mount -o remount,size=2G /tmp
Теперь стало получше:

df -h /tmp
Filesystem Size Used Avail Use% Mounted on
tmpfs 2.0G 64K 2.0G 1% /tmp

9. мониторинг нагрузки сервера

мотиторить можно двумя способами

или мгновенно на текущий момент времени , онлайн

или логирование и потом просмотрю логов за большой интервал времени сутки, неделю, месяц

сначала рассмотрим логирование на основе журналов и уже ранее собранной информации

можно установить различные утилиты для сбора и анализа нагрузки на сервер по разлиным параметра

(так де можно написать самому такие скрипты)

примеры параметров за которыми можно наблюдать

9.1 отчет по нагрузке на сервер вычисляется через системную команду

uptime или  /proc/loadavg

Load Average. Средняя загрузка — это среднее значение загрузки системы за некоторый период времени. Средняя загрузка, как правило, отображается в виде трех значений, которые представляют собой усредненные величины за последние 1, 5 и 15 минут.

пример load average: 0.09, 0.05, 0.01

в php ее значения можно получить array sys_getloadavg ( void )

затем заносим через определенные интервалы времени в базу данных . например раз в минуту или 5 минут

и строим график

Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок, мониторинг системы на сервере

анализ данных о нагруженности процессора

Если загрузка Вашей системы превышает 1.00 на интервале в одну минуту, все в порядке. Если же загрузка превышает 1.00 на пяти- или 15-минутном интервале, Вам следует начать принимать меры (конечно, Вам следует также принимать во внимание количество ядер в Вашей системе).

Команда cat /proc/cpuinfo выводит информацию обо всех процессорах в вашей системе. Чтобы узнать количество ядер, «скормите» ее вывод утилите grep:

~$ cat /proc/cpuinfo | grep 'cpu cores'
cpu cores	: 8
cpu cores	: 8
cpu cores	: 8
cpu cores	: 8


. Располагая двумя процессорами(ядрами), можно (теоретически) одновременно выполнять в два раза большее число программ. Это означает, что средняя нагрузка 2.00 (на двухпроцессорном компьютере) будет эквивалентна средней нагрузке 1.00 (на однопроцессорном компьютере). 

если у вас 4 ядра то для вас  load average  со значением 3-4 будут примелемыми
На многоядерных процессорах значение LA взаимосвязано с количеством процессоров.  Использование на 100% отображается как 1.00 на одноядерной системе, 2.00 на двухъядерной, 4.00 на четырех и так далее.

Аналогия транспортного потока

Одноядерный процессор похож на дорогу с одной полосой движения. Представьте себе, что Вы управяете движением машин по мосту. Иногда, Ваш мост загружен настолько сильно, что машинам приходится ждать в очереди чтобы проехать по нему. Вы хотите дать людям понять, как долго им придется ждать чтобы перебраться на другую сторону реки. Хорошим способом сделать это будет показать как много машин ждут в очереди в конкретный момент времени. Если машин в очереди нет, подъезжающие водители будут знать, что они сразу смогут проехать по мосту. В противном случае, они будут понимать, что придется ждать своей очереди.
Итак, Управляющий Мостом, какую систему обозначений Вы будете использовать? Как насчет такой:
  • 0.00 означает, что на мосту нет ни одной машины. Фактически, значения от 0.00 до 1.00 означают отсутствие очереди. Подъезжающая машина может воспользоваться мостом без ожидания;
  • 1.00 означает, что на мосту находится как раз столько автомобилей, сколько он может вместить. Все еще идет хорошо, но, в случае увеличения потока машин, возможны проблемы;
  • Значения, превышающие 1.00 означают наличие очереди на въезде. Насколько большой? Например, значение 2.00 показывает, что в очереди стоит столько же автомобилей, сколько движется по мосту. 3.00 означает, что мост полностью занят и в очереди ожидает в два раза больше машин, чем он может вместить. И так далее.

 

Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок, мониторинг системы на сервереload average = 1.00
Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок,

продолжение следует...

Продолжение:


Часть 1 Поддержка и ежедневное использование LAMP Linux (Ubunutu), решение проблем возникающих из-за ошибок, мониторинг системы на
Часть 2 top – команда выдачи данных об активности процессов в Ubuntu

См.также

В заключение, эта статья об поддержка ubunutu подчеркивает важность того что вы тут, расширяете ваше сознание, знания, навыки и умения. Надеюсь, что теперь ты понял что такое поддержка ubunutu, использование lamp, решение проблем возникающих из-за ошибок, мониторинг системы, поддержка сервера, бекапирование данных и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

создано: 2016-02-10
обновлено: 2021-09-19
132759



Рейтиг 10 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)