Ubuntu всякое

Обновление

apt update -y && apt full-upgrade -y && apt autoremove -y && apt autoclean -y && apt clean -y

Обновление через прокси-сервер

Для команды Apt требуется своя настройка прокси-сервера. Нужно создать новый файл с конфигурацией:

vi /etc/apt/apt.conf.d/00proxy.conf

Acquire::http::Proxy "http://10.128.2.51:8080/";
Acquire::https::Proxy "https://10.128.2.51:8080/";

SSH ограничить адрес или поменять порт

SSHd now uses socket-based activation Ubuntu 22.10 or later.

vi /lib/systemd/system/ssh.socket

ListenStream=IP1:22
ListenStream=IP2:2222

systemctl daemon-reload
systemctl restart ssh

netstat -tulpn

SFTP

useradd cdp
passwd cdp

mkdir -p /sftp_root/cdp/cdp
chown -R cdp:cdp /sftp_root/cdp/cdp

nano /etc/ssh/sshd_config
добавляем:

Port 2222

Match LocalPort 2222
        ChrootDirectory /sftp_root/%u
        AllowTCPForwarding no
        X11Forwarding no
        ForceCommand internal-sftp

Match User cdp, LocalPort 22
        DenyUsers cdp


service ssh restart

на 1 раз (до перезагрузки):
mount --bind /www/cdp/html /sftp_root/cdp/cdp

на постоянную:
vi /etc/fstab
добавить строку:
/www/cdp/html /sftp_root/cdp/cdp none rw,bind 0 0
перезагрузить сервер: reboot
поиск и проверка смонтированного:
findmnt

HAProxy

https://www.haproxy.com/blog/how-to-install-haproxy-on-ubuntu/

apt install --no-install-recommends software-properties-common
add-apt-repository ppa:vbernat/haproxy-2.4 -y
apt install haproxy=2.4.\*
haproxy -v

Добавить русскую локализацию на сервер

https://obu4alka.ru/rusificziruem-ubuntu-server-16-04-lts.html

Zabbix

https://bestmonitoringtools.com/how-to-install-zabbix-server-on-ubuntu/

apt install php7.4-fpm

add-apt-repository ppa:ondrej/nginx-mainline
apt install nginx-core nginx-common nginx nginx-full

Утилита zabbix_get, оказывается, не устанавливается вместе с сервером Zabbix, нужно установить отдельно:

apt install zabbix-get

Цветовая схема VIM

https://www.cyberciti.biz/faq/turn-on-or-off-color-syntax-highlighting-in-vi-or-vim/

для текущей сессии можно отменить или поменять цветовую схему так:

:syntax off
или
:syntax on
:

Прописать настройки на постоянку можно в файле в профиле пользователя:

vi ~/.vimrc

if !has('gui_running')
    set t_Co=256
endif
set termguicolors
colorscheme torte

:wq

echo "colorscheme torte" >> ~/.vimrc

Chrony, Timezone

apt install -y chrony
systemctl enable chrony
vi /etc/chrony/chrony.conf

server 172.31.2.22 iburst                                                                                                                                                                                         
server 172.31.2.23 iburst                                                                                                                                                                                         
server 10.197.2.16 iburst

timedatectl status
chronyc sources
chronyc sourcestats
chronyc tracking
date

timedatectl list-timezones | grep Amster
timedatectl set-timezone Europe/Amsterdam

Nginx

https://www.linuxcapable.com/how-to-install-upgrade-latest-nginx-mainline-stable-on-ubuntu-20-04/

add-apt-repository ppa:ondrej/nginx-mainline
apt update
apt install nginx-core nginx-common nginx nginx-full

MariaDB

https://mariadb.org/download/?t=repo-config

apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
add-apt-repository 'deb [arch=amd64,arm64,ppc64el,s390x] https://atl.mirrors.knownhost.com/mariadb/repo/10.6/ubuntu focal main'
apt update
apt install mariadb-server
apt install mariadb-client

mariadb --version

mysql_secure_installation

отдельный раздел под БД, смонтировать

https://disnetern.ru/move-mysqldb-new-hdd/
https://andreyex.ru/bazy-dannyx/baza-dannyx-mysql/kak-peremestit-katalog-dannyx-mysql-na-novoe-mesto-v-centos-i-ubuntu/

innodb – отдельные таблицы

https://ealebed.github.io/posts/2015/тюнинг-mysql-сервера-включение-опции-innodb_file_per_table/

Алгоритм включения опции innodb_file_per_table следующий:

  • останавливаем сервисы, использующие базу данных (apache, zabbix, sphinxsearch и т. д.);
  • делаем резервную копию (дамп) базы данных;
  • удаляем базу данных;
  • останавливаем MySQL-сервер;
  • в конфиге /etc/mysql/my.cnf удаляем параметр innodb_data_file_path и добавляем параметр innodb_file_per_table;
  • удаляем файлы /var/lib/mysql/ibdata, /var/lib/mysql/ib_logfile0, /var/lib/mysql/ib_logfile1 и т. д.;
  • запускаем MySQL-сервер;
  • создаем базу данных;
  • восстанавливаем данные из резервной копии;
  • проверяем наличие файлов с расширением *.ibd для каждой таблицы;
  • запускаем остановленные в первом пункте сервисы.
mysqldump --user=root --password=PASSWORD zabbix | gzip > ./zabbix.sql.gz

cd /etc/mysql/mariadb.conf.d/
vi 50-server.cnf
[mysqld]
innodb-file-per-table = 1

mysql -uroot -p
PASSWORD
mysql> create database zabbix character set utf8 collate utf8_bin;
zcat ./zabbix.sql.gz | mysql zabbix -uroot -pPASSWORD

partitioning

https://bestmonitoringtools.com/zabbix-partitioning-tables-on-mysql-database/

PHP

apt install php7.4
apt install php7.4-fpm

vi /etc/php/7.4/fpm/php-fpm.conf
ll /etc/php/7.4/fpm/pool.d/


PHP 8.1
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php8.1
apt install php8.1-fpm

apt install php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-redis php8.1-intl -y

vi /etc/php/8.1/fpm/php.ini
upload_max_filesize = 32M 
post_max_size = 48M 
memory_limit = 256M 
max_execution_time = 600 
max_input_vars = 3000 
max_input_time = 1000

vi /etc/php/8.1/fpm/pool.d/www.conf
user = username 
group = username 
listen.owner = username
listen.group = username

Zabbix Agent

wget https://repo.zabbix.com/zabbix/4.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_4.4-1+focal_all.deb
dpkg -i zabbix-release_4.4-1+focal_all.deb
apt-get update
apt-get install zabbix-agent

Zabbix proxy

wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb
apt update
apt install zabbix-proxy-mysql zabbix-sql-scripts zabbix-agent

shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'localhost' identified by '<password>';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> quit;

cat /usr/share/doc/zabbix-sql-scripts/mysql/proxy.sql | mysql zabbix -uzabbix -p <password>

vi /etc/zabbix/zabbix_proxy.conf
DBHost=127.0.0.1
DBName=zabbix
DBUser=zabbix
DBPassword=<password>
Server=<zbx_server_ip>
Hostname=<Hostname>
EnableRemoteCommands=1
ProxyOfflineBuffer=168
ConfigFrequency=600
StartPollers=50
StartPollersUnreachable=10
StartPingers=20
StartHTTPPollers=10
CacheSize=200M
HistoryCacheSize=200M
HistoryIndexCacheSize=200M
Timeout=15
LogSlowQueries=3000
TLSConnect=psk
TLSPSKIdentity=<TLSPSKIdentity>
TLSPSKFile=/etc/zabbix/<TLSPSKIdentity>.psk

vi <TLSPSKIdentity>.psk <-- paste psk 

systemctl restart zabbix-proxy
systemctl enable zabbix-proxy

vi /etc/zabbix/zabbix_agentd.conf
Server=<zbx_server_ip,zbx_proxy_ip,127.0.0.1>
ServerActive=<zbx_server_ip,zbx_proxy_ip,127.0.0.1>
Hostname=<Hostname>
UnsafeUserParameters=1
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=<TLSPSKIdentity>
TLSPSKFile=/etc/zabbix/<TLSPSKIdentity>.psk

vi <TLSPSKIdentity>.psk <-- paste psk 

systemctl restart zabbix-agent
systemctl status zabbix-agent
systemctl enable zabbix-agent

apt install snmp

Docker

https://docs.docker.com/engine/install/ubuntu

Для начала удаляем старые версии:

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

Добавляем репозиторий docker:

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

Устанавливаем docker + docker-compose:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Увеличить размер раздела диска в Ubuntu

https://winitpro.ru/index.php/2023/02/21/uvelichit-razdel-diska-ubuntu

echo 1>/sys/class/block/sda/device/rescan
cfdisk
lsblk
vgdisplay
pvresize /dev/sda3
lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
df -h