ИТ-заметки: субъективно
56 subscribers
23 photos
203 links
ИТ заметки по Network, Ops, DevOps

🔗 it.mxav.ru
Download Telegram
Как установить WordPress на Debian?

Чтобы установить WordPress (в качестве примера используется домен wp-site.test) на Linux Debian с самоподписанным сертификатом необходимо:
1. Обновить систему
apt update; apt upgrade

2. Устанавливаем необходимые пакеты
apt install nginx apache2 htop curl wget mariadb-server php php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip unzip php-mysql

3. Временно выключим и добавим в автозапуск сервисы
systemctl enable nginx apache2 mariadb; systemctl stop nginx apache2

4. Поправим порт в ports.conf на 8080, т.к. делаем связку nginx+apache2+php+mariadb и создадим виртуальный хост на apache2
nano /etc/apache2/ports.conf; nano /etc/apache2/sites-available/wp-site.test.conf
<VirtualHost 127.0.0.1:8080>
ServerName wp-site.test
ServerAlias www.wp-site.test
DocumentRoot "/var/www/wp-site.test"

<Directory "/var/www/wp-site.test/">
AllowOverride All
allow from all
Options -Indexes
#Options FollowSymLinks
</Directory>

<FilesMatch "\.ph(p[3-8]?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>

ErrorLog /var/www/log/apache2/wp-site.test-error.log
CustomLog /var/www/log/apache2/wp-site.test-access.log combined
<ifModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>

<IfModule php8_module>
php_flag session.cookie_httponly 1
php_flag session.cookie_secure 1
</IfModule>
</VirtualHost>

5. Создаем папки для логов
mkdir  /var/www/log/; mkdir  /var/www/log/apache2/; mkdir  /var/www/log/nginx/

6. Создаем папку для сайта и тестовый php-файл
 mkdir /var/www/wp-site.test/; echo '<?php phpinfo(); ?>' > /var/www/wp-site.test/index.php

7. Включаем редиректы на apache2 и проверяем конфигурацию
a2enmod rewrite; apache2ctl configtest

8. Включаем сайт
a2ensite wp-site.test.conf

9. Создаем сертификат и ключ для https-соединения
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/wp-site.test-selfsigned.key -out /etc/ssl/certs/wp-site.test-selfsigned.crt

Продолжение в следующем посте⤵️
#devops@itmxav
#linux@itmxav
10. Создаем виртуальный хост для nginx и прописываем конфиг
nano /etc/nginx/sites-available/wp-site.test
server {
listen 80;
server_name wp-site.test www.wp-site.test;
add_header Content-Security-Policy upgrade-insecure-requests;

return 302 https://wp-site.test$request_uri;
}

server {
listen 443 ssl;
server_name wp-site.test www.wp-site.test;
access_log /var/www/log/nginx/wp-site.test-access.log;
error_log /var/www/log/nginx/wp-site.test-error.log;

ssl_certificate /etc/ssl/certs/wp-site.test-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/wp-site.test-selfsigned.key;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
add_header Strict-Transport-Security 'max-age=15552000; includeSubDomains';
add_header Content-Security-Policy upgrade-insecure-requests;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:"убрать перенос"
EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:HIGH:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!SEED:!DSS:!CAMELLIA;
ssl_prefer_server_ciphers on;

client_max_body_size 200M;
keepalive_requests 100;
keepalive_timeout 30;

reset_timedout_connection on;
client_body_timeout 10;
send_timeout 2;
fastcgi_ignore_client_abort on;

location / {
fastcgi_ignore_client_abort on;
proxy_ignore_client_abort on;

proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#proxy_set_header Connection "";
proxy_connect_timeout 120;
proxy_send_timeout 120;
proxy_read_timeout 180;
}

location ~* \.(woff2|svg|png|jpg|jpeg|gif|css|js|pdf|doc|zip|rar|docx|avi|tiff|rtf|gz|gzip|mpg|mpeg|mp3|mp4|tgz|wav|wmv|wma|xls|xlsx|xml|bmp|ico||psd)$ {
root /var/www/wp-site.test/;
}
}

11. Включаем хост на nginx
ln -s "/etc/nginx/sites-available/wp-site.test" /etc/nginx/sites-enabled/wp-site.test

12. Проверяем конфиг
nginx -t

13. Задаем пароль root для mariadb
mysqladmin -u root password newpasstest

14. Заходим в СУБД
mysql -uroot -p

15. Создаем пользователя с паролем и базу данных для WordPress
CREATE DATABASE wptestdb;
CREATE USER 'wpuzer'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wptestdb.* TO 'wpuzer'@'localhost';
FLUSH PRIVILEGES;
quit;

16. Перезапускаем сервисы и проверяем работу сайта (надо в браузере зайти на URL)
systemctl restart apache2 nginx mariadb

17. Переходим в папку сайта и удаляем ненужное.
cd /var/www/wp-site.test/; rm index.php

18. Качаем сам WordPress
wget https://ru.wordpress.org/latest-ru_RU.zip;

19. Распаковываем скаченное и перемещаем в корень сайта
unzip latest-ru_RU.zip;mv wordpress/* ./

20. Удаляем ненужное
rm -r wordpress/; rm latest-ru_RU.zip

21. Ставим права на папку с файлами сайта
cd ..; chown www-data:www-data -R wp-site.test/; chmod g+s wp-site.test/

22. Переходим в браузере по URL домена и настраиваем WordPress. Например:
Имя - Тестовый сайт
Логин с паролем wp-user:4dveRElmfKjNrltN
Почта для восстановения
test@example.loc

#devops@itmxav
#linux@itmxav
#fasthowto@itmxav

😉 На сайте

🎬 На Youtube

🎬 На Rutube
Как выключить рекламу в utorrent?

Чтобы выключить рекламу:

1. Надо перейти в "Настройки -> Настройки программы (Ctrl+P) -> Дополнительно"
2. Переключаем все значения в false:

offers.left_rail_offer_enabled
offers.sponsored_torrent_offer_enabled
offers.content_offer_autoexec
offers.featured_content_badge_enabled
offers.featured_content_notifications_enabled
offers.featured_content_rss_enabled
bt.enable_pulse
distributed_share.enable
gui.show_plus_upsell
gui.show_notorrents_node

3. Перезагружаем программу

#разное@itmxav

😉 На сайте
Простая установка Docker

Если не хочется вручную ставить Docker, то можно скрипт использовать:

curl https://get.docker.com | sudo bash -

#devops@itmxav
#docker@itmxav

😉 На сайте
Ошибка Oxidized "Timeout::Error with msg execution expired" и Cisco Nexus

При сборе конфигурации Cisco Nexus через Oxidized может появиться ошибка "Timeout::Error with msg execution expired".

Чтобы её решить, в правилах для роли в Cisco Nexus необходимо добавить:
permit command terminal length 0

Примерный список правил для роли может выглядеть вот так:
NX(config-role)# rule 1 permit command show version
NX(config-role)# rule 2 permit command show inventory
NX(config-role)# rule 3 permit command show running-config
NX(config-role)# rule 4 permit command terminal length 0


#сети@itmxav
#cisco@itmxav

😉 На сайте
Обновление Oxidized c 0.26.3 до 0.29.1 на CentOS 7

Для обновления Oxidized c 0.26.3 до 0.29.1 на CentOS 7 необходимо обновить cmake > 3.0 и ruby > 3.0.

1. Обновляем cmake.
1.1 Создаем папки
# mkdir tmpdir; cd tmpdir/; mkdir tmpcmake; cd tmpcmake

1.2 Качаем cmake-3.6.2
# wget https://cmake.org/files/v3.6/cmake-3.6.2.tar.gz

1.3 Удаляем установленный cmake
# yum remove cmake -y

1.4 Распаковываем с переходим в папку cmake
# clear;tar -zxvf cmake-3.6.2.tar.gz; cd cmake-3.6.2

1.5 Устанавливаем и проверяем версию
# ./bootstrap --prefix=/usr/local
# make
# make install; cmake --version

2. Теперь обновляем ruby.
2.1 Создаем папки
# cd ~/tmpdir; mkdir tmpruby; cd tmpruby; 

2.2 Устанавлиаем доп.пакеты и качаем ruby 3.0.4 (для версии выше могут потребоваться дополнительные зависимости)
#yum groupinstall "Development Tools"; yum install openssl-devel; wget http://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.4.tar.gz

2.3 Распаковываем с переходим в папку ruby
# tar -xzvf ruby-*; cd ruby-3.0.4

2.4 Устанавливаем и проверяем версию
# ./configure
# make
# make install; ruby -v

3. Теперь обновляем сам gem и oxidized
# gem update --system
# gem install oxidized-web oxidized

#linux@itmxav

😉 На сайте
Не запускается MongoDB на виртуальной машине Proxmox

Недавно наткнулся на с проблему с MongoDB. После установки сервис никак не хотел запускаться.
Полез посмотреть в логи, а там:

kernel: traps: mongod[xxxxxx] trap invalid opcode ip:xxxxxx

В других машинах всё нормально отрабатывает и запускается.
Ествественно, начал информацию искать через поиск и вот здесь нашлось решение.
Залез посмотреть какой CPU выбран для этой машины - x86-64-v2-aes.
Поменял на x86-64-v3, перезапустился и всё завелось.
Часто предлагают поставить host, но если на узлах Proxmox разные CPU, то могут быть проблемы с живой миграцией.
Хоть узлы и одинаковые, но всё же отказался от этой идеи.
На тему CPU моделей в Proxmox можно почитать здесь.

#бд@itmxav
#mongodb@itmxav

😉 На сайте
Как установить Graylog 5.2?

❗️ Репозитории из РФ недоступны.
❗️ Все действия происходят под рутом.

Для запуска нужны MongoDB, Opensearch и сам #Graylog 5.2.

1. Устанавливаем MongoDB
Сначала устанавливаем дополнительные пакеты
apt update; apt install gnupg software-properties-common apt-transport-https ca-certificates build-essential libjpeg-dev libpng-dev libtiff-dev curl wget pwgen
Ставим ключ
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | gpg  --dearmor -o /etc/apt/trusted.gpg.d/mongodb-server-7.0.gpg
Прописываем репозиторий
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-7.0.list
Ставим mongodb
apt update; apt install mongodb-org
Закидываем в автозапуск и запускаем mongod
systemctl enable mongod
systemctl start mongod; systemctl status mongod
Если это всё происходит на виртуальной машине Proxmox и не запускается MongoDB, то здесь описывал проблемы и возможное решение.

2. Устанавливаем Opensearch
Opensearch форк Elastacsearch, потому что были изменения в лицензиях Elastacsearch и некоторым разрабочикам это не понравилось.
Ставим ключ
curl -fsSL https://artifacts.opensearch.org/publickeys/opensearch.pgp | gpg --dearmor -o /etc/apt/trusted.gpg.d/opensearch.gpg
Прописываем репозиторий
echo "deb https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | tee /etc/apt/sources.list.d/opensearch-2.x.list
Обновляемся и прописываем пароль для установки (лучше сохранить его или в окружении добавить):
apt update
export OPENSEARCH_INITIAL_ADMIN_PASSWORD=XXXXXXX
Ставим Opensearch
apt install opensearch
Далее надо поправить конфиг под Graylog
nano /etc/opensearch/opensearch.yml
cluster.name: graylog52
node.name: ${HOSTNAME}
path.data: /var/lib/opensearch
path.logs: /var/log/opensearch
discovery.type: single-node
network.host: 0.0.0.0
#или 127.0.0.1
action.auto_create_index: false
plugins.security.disabled: true
И ещё конфиг
nano /etc/opensearch/jvm.options
-Xms4g
-Xmx4g
sysctl -w vm.max_map_count=262144
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
Закидываем в автозапуск и запускаем opensearch
systemctl daemon-reload
systemctl enable opensearch.service
systemctl start opensearch.service; systemctl status opensearch.service
Проверяем работу
curl -X GET http://localhost:9200 -u ‘admin:admin’
Должна вернуться информация о версии, названии и т.п.

3. Устанавливаем Graylog
Качаем
wget https://packages.graylog2.org/repo/packages/graylog-5.2-repository_latest.deb
И устанавливаем
dpkg -i graylog-5.2-repository_latest.deb
apt update && apt install graylog-server
Далее надо сделать password_secret и root_password_sha2
Для password_secret
pwgen -N 1 -s 96
Для root_password_sha2
echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
И теперь настраиваем конфиг Graylog’a
nano /etc/graylog/server/server.conf
is_leader = true
node_id_file = /etc/graylog/server/node-id
password_secret = PASSWORD_PWGEN
root_password_sha2 = PASSWORD_ROOT_SHA2
bin_dir = /usr/share/graylog-server/bin
data_dir = /var/lib/graylog-server
plugin_dir = /usr/share/graylog-server/plugin
http_bind_address = IP_ADDRESS:9000
stream_aware_field_types=false
elasticsearch_hosts = http://127.0.0.1:9200
disabled_retention_strategies = none
allow_leading_wildcard_searches = false
allow_highlighting = false
output_batch_size = 500
output_flush_interval = 1
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
processbuffer_processors = 5
outputbuffer_processors = 3
processor_wait_strategy = blocking
ring_size = 65536
inputbuffer_ring_size = 65536
inputbuffer_processors = 2
inputbuffer_wait_strategy = blocking
message_journal_enabled = true
message_journal_dir = /var/lib/graylog-server/journal
lb_recognition_period_seconds = 3
mongodb_uri = mongodb://localhost/graylog
mongodb_max_connections = 1000
Закидываем в автозапуск и запускаем graylog
systemctl daemon-reload
systemctl enable graylog-server.service
systemctl start graylog-server.service; systemctl status graylog-server.service

😉 На сайте
Когда-то делал заметку на сайте про поиск хостов по пингам. Сейчас немного поправил команды, чтобы не было повторений при отправке нескольких пакетов и результат был отсортирован.

echo 10.126.0.{1..20} | xargs -n1 -P0 ping -c1 | grep "bytes from" | grep 10.126.0 | awk {'print $4'} | sort | uniq | sed 's/.\{1\}$//'

Вообще есть удобный сайт по расшифровке команд. Там подтягивается информация из манов и описывается что есть что.
Например, вот здесь есть расшифровка команд выше.

#linux@itmxav

😉 На сайте
Сделал копию страницы itmxav.github.io - it.mxav.ru/bkpgh/ и добавил кнопки "backup" для скачивания скриптов напрямую (например, wget, curl), если вдруг GH недоступен.
Так глядишь и дойдут руки выложить ещё что-то по конфигам/скриптам 😊
Вылетел и не поднимается OSD в Ceph+Proxmox

Столкнулся с ситуацией, что один OSD в Ceph вылетел, хотя сам диск виден. После выяснения обстоятельств оказалось, что человек случайно ногой зацепил диск в стойке, когда менял провода, и потом вставил его назад. Ceph работает в связке с Proxmox. Попытки поднять OSD оказывались печалью и путь /dev/sdX, после возвращения диска, изменился на другой.
Т.к. ресурсы были, то можно было пойти «стандартным» маршрутом пересоздания OSD:

1. Диск отмечен как Out.
2. Удаляем OSD. В разделе Ceph(главное не ошибиться с OSD)→More→Destroy
3. Далее выбираем узел → Disks→Выбираем нужный диск и стираем его «Wipe Disk»
4. После в разделе Ceph добавляем диск как новый OSD.
Естественно, будет перебалансировка ресурсов в фоне.

#ceph@itmxav
#proxmox@itmxav

😉 На сайте
Ошибка %ADJ-3-RESOLVE_REQ на Cisco 3560-X


На одной из Cisco 3560-X в логи сыпались постоянно ошибки:

%ADJ-3-RESOLVE_REQ: Adj resolve request: Failed to resolve xx.xx.xx.xx VlanXX

Т.к. на Cisco нет какой-то сложной конфигурации, то помогло:

no ip cef optimize neighbor resolution 

Некоторые писали, что это может быть баг на конкретной железке. Некоторые писали, что может вырасти нагрузка на ЦП, по умолчанию включен параметр. В моем случае нагрузка не изменилась и ошибки ушли.

#сети@itmxav
#cisco@itmxav

😉 На сайте
Защита от простых наплывов запросов в Nginx

Часто, когда сайт начинает становится более популярным, всякие нехорошие люди (ботов люди создают) пытаются его положить наплывом запросов.
Можно попытаться защититься стандартными решениями на Nginx. В качестве ответов сервера здесь выдается 444 код (закрывает соединение без отправки данных), но можно ставить тот, который посчитаете нужным.

1. Когда в запросах идут левые заголовки, то можно оставить только нужные, а по остальным не отвечать:
if ($request_method !~ ^(GET|POST|HEAD)$ ) {
return 444;
}

2. Если запросы идут внешне нормальные, но с разными http_referer (например, с взломанных сайтов), то можно вести черные список при помощи map.
2.1 Перед разделом server в vhost создаем map
map $http_referer $bad_referer {
default 0;
"~https://example.com" 1;
}

Аналогично example.com можно добавлять в новой строке и другие http_referer.
2.2 В разделе server создаем условие на проверку
if ($bad_referer) { 
return 444;
}

Если в http_referer указан https://example.com, то он будет получать 444 от Nginx.

3. Если нужно ограничить количество запросов от IP-адресов, но некоторые адреса надо исключить, то можно применять limit_req со списком исключений (geo+map).
3.1 Формируем список перед разделом server в vhost
geo $limited_net {
default 1;
192.168.1.0/24 0;
}

Сеть 192.168.1.0/24 будет в исключениях.
3.2 Создаем map c $binary_remote_addr
map $limited_net $addr_to_limit {
0 "";
1 $binary_remote_addr;
}

$binary_remote_addr - параметр в Nginx, который отвечающий за адрес клиента.
3.3 Перед разделом server создаем условия по запросам. В данном случае создаем зону reqtest, где возможно отправлять с одного IP 10 запросов в секунду.
limit_req_zone $addr_to_limit zone=reqtest:10m rate=10r/s;

3.4 В location ставим limit_req с возможностью всплеска 50:
limit_req zone=reqtest burst=50;

Если нужно без задержек обрабатывать всплески, то надо добавить nodelay после burst. Если запросы выше всплеска, то будут отбрасываться.

4. Если надо ограничить количество одновременных запросов от IP-адреса, то можно применить limit_conn.
4.1 Перед разделом server создаем зону.
limit_conn_zone $binary_remote_addr zone=conntest:10m;

4.2 В разделе server указываем условия одновременных подключений. В данном примере 30.
limit_conn conntest 30;

Конечно, это всё защита не от серьезного DDOS'a, но в блокировке всяких мутных ботов может помочь. Плюс хорошо бы ещё добавить fail2ban для выявления и блокирования странных запросов в логах.

#devops@itmxav

😉 На сайте
Быстрая сортировка и удаление повторяющихся строк через терминал Linux

Короткая заметка, чтобы можно было быстро найти.
Иногда надо быстро отсортировать строки через терминал в Linux и убрать повторения.
Здесь хорошо может помочь конвейерные способы
cat file.txt | sort | uniq

или
sort file.txt | uniq

Или sort через параметр -u
sort -u file.txt


#linux@itmxav

😉 На сайте
❗️Новости

Добавил теги к заметкам. Текущие теги можно посмотреть в закрепленном сообщении.

Хорошего дня 😊
Запросы с User-Agent claudebot

В последнее время много запросов с User-Agent "claudebot" прилетает от разных IP.
Если загуглить, то Claudebot, возможно, относится к конторе Anthropic, которая работает по теме AI, хотя с РФ не дружит.
Может просто совпадение.
Зачем этот сканер нужен остается загадкой, но на всякий случай его можно заблокировать.

#devops@itmxav

😉 На сайте
Блокирование ботов по User-Agent в Nginx

Короткая заметка, чтобы можно было быстро найти.
Недавно касался темы ботов. Самый простой вариант заблокировать ботов по User-Agent в Nginx
if ($http_user_agent ~* (GPTBot|claudebot|GeedoProductSearch|GeedoBot|Amazonbot|Bytespider|SeopultContentAnalyzer|SeekportBot|DataForSeoBot|Barkrowler|BLEXBot|SemrushBot|MJ12bot|AhrefsBot|bingbot|DotBot|PetalBot|LinkpadBot|SputnikBot|statdom.ru|MegaIndex.ru|WebDataStats|Jooblebot|Baiduspider|BackupLand|NetcraftSurveyAgent|openstat.ru|thesis-research-bot|fidget-spinner-bot|facebookexternalhit)){
return 444;
}

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

#devops@itmxav

😉 На сайте
Сбор конфигурации Zelax в Oxidized

Столкнулся с ситуацией, что для коммутаторов Zelax 30ХХ, на данный момент, нет модели в Oxidized.
В качестве тестового примера можно закоментить лишнее в ios.rb и назвать файл типа zlx.rb в папке model, потому что синтаксис необходимых команд схож.
В router.db можно добавить
NameRouter:zlx:cisco:IPAddress

В config можно добавить:
groups:
cisco:
username: usernameZLX
password: passwordZLX
model_map:
cisco: zlx

Конечно, пользователь на Zelax был создан заранее с нужным уровнем и нужными разрешенными командами, как в Cisco.
В тестовом варианте конфиг собрался. Может модель скоро и в официальном репозитории Oxidized появится.

#сети@itmxav
#devops@itmxav

😉 На сайте
Ведение записей в Telegram

Когда так или иначе обрабатываешь много информации, то часто надо делать заметки для себя. Возникает потребность в каком-нибудь приложении, чтобы записи можно быть открыть на смартфоне и на компьютере под разными операционными системами. Конечно, таких приложений много, и платных, и бесплатных: Google Keep, Evernote, Simplenote и т. д. Если есть возможность держать сервер, то можно, например, Nextcloud приспособить или сделать свой небольшой сайт в стиле ToDo-листа.

Пробовал разные варианты, но остановился всё же на Telegram, потому что он отвечал на мои критерии:
- Кроссплатформенность. Поддерживает разные операционки и можно даже через браузер зайти, если потребуется.
- Очень прост в управлении. Пишешь просто сообщение, а если задача выполнена или сообщение стало неактуально — удаляешь сообщение.
- Можно организовать многопользовательский режим. Просто добавить ещё человека и совместно обсуждать темы. Можно и без этого обойтись, но приятный момент.
- Можно передавать файлы.
- Можно делать отложенные сообщения. Некий аналог напоминалок в календаре.
- Можно общаться в рамках тем и поднять старое сообщение, если потребуется.
- Есть возможности закрепления тем и сообщений.
- Можно вести видеотрансляции через obs или просто созваниваться там же, где записи делаются. Конечно, эта функциональность необязательна, но приятный момент.

Думаю, что уже понятно как организовать такое в Telegram, но всё же кратко опишу:
1. Создаем группу и называем её как-то.
2. Переходим в редактирование группы и тыкаем включить темы. По умолчанию они выключены.
3. Дальше нажимаем в группе на круглую кнопку создать тему.
4. Называем тему и пишем сообщения по этой теме. Так можно создавать много тем.

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

#разное@itmxav

🔗 На сайте
Zelax не отправляет логи в Graylog

Наткнулся на ситуацию, когда логи с оборудования Zelax не появляются в Graylog.

Сначала надо настроить Zelax. В документации почему-то информация по настройке Syslog'а yt подходит и настраивается немного иначе:
1. Включаем info-center
info-center enable

2. Указываем источника для канала
info-center source debug level 7 prefix on channel 2

Пояснения:
level Х - уровень сообщений (0 - emergencies, 1 - alerts, 2 - critical, 3 - errors, 4 - warnings, 5 - notifications, 6 - informational, 7 - debugging);
channel X - номер канала, где часть каналов уже определена:
channel 0 - передача сообщений уровня debugging в консоль;
channel 1 - передача сообщений уровня debugging в терминальный монитор;
channel 2 - зарезервирован под передачу на Syslog-сервер;
channel 3 - передача debugging trap в буфер;
channel 4 - передача сообщений уровня warning в память (logsdram);
channel 5 - передача сообщений уровня critical в память (lognvram).
3. Направляем вывод на сервер Graylog
info-center loghost IP_ADDRESS facility local7 channel 2

Пояснения:
IP_ADDRESS - адрес сервера;
facility - категория сообщения для сервера;
channel X - номер канала, который должен совпадать с предыдущей настройкой.

И, вроде, должно всё заработать. По анализатору трафика видно, что все пакеты доходят, но почему-то отображения логов нет.
Момент заключается в том, что Graylog не обрабатывает полученные пакеты, пока в Zelax не будет установлены параметры времени.
Настраиваем:
ntp enable
ntp server IP_ADDRESS_SERVER
clock timezone MSK add 3 0


Странно. На Cisco, Huawei, Eltex, HPE таких моментов нет и Graylog сам фиксирует время, главное чтобы данные пришли, а здесь нет 😐

#zelax@itmxav
#сети@itmxav

🔗 На сайте
Быстрый поиск файлов в Linux, содержащих определенный текст

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

grep -iRl "нужный_текст" ./


Главное не потерять точку перед /, а то поиск будет производиться от корня.

#linux@itmxav

🔗 На сайте