LINUX.ORG.RU

Сообщения NARUTO

 

fluentd считывать данные передавать в elasticsearch

Форум — General

Добрый день. Нужно настроить fluentd со следующими условиями:

Вычитывались все файлы с расширением .log из каталога /var/log/ Вычитанные логи должны помечаться тегом task07., где * - путь к файлу, вида var.log.file.log Все вычитанные логи и помеченные тегом task07.* должны перенаправляться в elasticsearch Логи должны сохраняться в индекс task07.filename-*, где *- это дата в формате ГГГГ-ММ-ДД, а filename - имя файла источника без расширения. tag сообщений должен быть записан в поле @log_name

Написал следующий конфиг в fluentd:

<source>
 @type tail
 path /var/log/*.log
 read_from_head true
 tag task07.*
 <parse>
  @type none
 </parse>
</source>

<filter task07.*>
 @type record_transformer
 enable_ruby true
 <record>
  service_name ${tag_parts[3]}
 </record>
</filter>

<match task07.*>
 @type rewrite_tag_filter
 <rule>
  key path
  pattern /.+/
  tag task07.$1
 </rule>
</match>


<match *.**>
 @type copy
 <store>
  type elasticsearch
  host localhost
  port 9200
  include_tag_key true
  index_name ${tag}-%Y-%m-%d
  tag_key @log_name
  flush_interval 10s
 </store>
</match>

В результате когда выполняю запрос curl http://localhost:9200/task07.*/_search?pretty=true, получаю след. ответ:

{
  "took": 29,
  "timed_out": false,
  "_shards": {
    "total": 0,
    "successful": 0,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": {
      "value": 0,
      "relation": "eq"
    },
    "max_score": 0,
    "hits": []
  }
}

Как понимаю при корректной отработке fluentd, запрос в elasticsearch должен в ответе выдать что-то в этом роде:

 {
        "_index": "task07.auth-2021-03-10",
        "_type": "_doc",
        "_id": "bnj7HHgB9Qf_JJn5P4Ah",
        "_score": 1,
        "_source": {
          "message": "Mar 10 16:31:35 b9dd4778dfa96af54d794e8f08ff2396 sshd[15110]: Received disconnect from 1.251.239.18 port 59042:11: Bye Bye [preauth]",
          "@log_name": "task07.var.log.auth.log"
        }
}

Можете объяснить какие ошибки были допущены в моем конфиге fluentd, что в результате не получается добиться нужного результата.

 ,

NARUTO
()

Приложение теряет доступ к каталогу после того как в него смонтировали другой каталог

Форум — General

Добрый день. Есть облако на базе приложения nextcloud, оно работает на сервере где стоит apache, также есть сервер где крутиться база данных mariadb и сервер где работает glusterfs. На сервере где крутиться glusterfs создан том «nextcloud» который является хранилищем данных для этого приложения, также в этом томе лежит вся база данных. На сервере где крутиться БД в каталог /var/lib/mysql смонтирован том «nextcloud» с glusterfs. На сервере где стоит apache в каталог /var/www/nextcloud-data смонтирован том «nextcloud» который находиться на glusterfs. До монтирования владельцем каталога /var/www/nextcloud-data является www-data:www-data, но после того как него монтирую том «nextcloud» владельцем становится gluster.

sudo ls -ld /var/www/nextcloud-data
drwxr-xr-x 2 www-data www-data 4096 Aug 28 12:38 /var/www/nextcloud-data
df -h
Filesystem             Size  Used Avail Use% Mounted on
udev                   956M     0  956M   0% /dev
tmpfs                  198M  812K  197M   1% /run
/dev/vda2              9.8G  4.1G  5.4G  43% /
tmpfs                  986M     0  986M   0% /dev/shm
tmpfs                  5.0M     0  5.0M   0% /run/lock
tmpfs                  986M     0  986M   0% /sys/fs/cgroup
10.130.0.9:/nextcloud   10G  689M  9.4G   7% /var/www/nextcloud-data
tmpfs                  198M     0  198M   0% /run/user/1000
sudo ls -ld /var/www/nextcloud-data
drwxrwx--- 10 gluster ssl-cert 4096 Aug 28 10:31 /var/www/nextcloud-data

В результате когда пытаюсь пройти авторизацию на облаке получаю ошибку «Невозможно создать или записать в каталог данных /var/www/nextcloud-data»

Если делаю chown www-data:www-data /var/www/nextcloud-data после того как в него смонтирован том «nextcloud», то получаю ошибку о том что нет доступа к базе данных, из-за того что на сервере где крутиться БД где том «nextcloud» смонтирован в каталог /var/lib/mysql, владелец изменяется с mysql на www-data.

Как можно решить данную проблему, чтобы каталог /var/www/nextcloud-data после монтирования в него другого тома, он сохранял владельцем www-data.

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

 , , ,

NARUTO
()

Нет доступа к вэб-интерфйесу freeipa

Форум — Admin

Добрый день. На виртуальной машине с ubuntu 2204lts установил docker и в нем запустил контейнер для freeipa с доступом из вне согласно инструкции с сайта docker.

 docker run -ti -h ipa.test.sslip.io -v /var/lib/ipa-data:/data:Z  -p 53:53/udp -p 53:53     -p 80:80 -p 443:443 -p 389:389 -p 636:636 -p 88:88 -p 464:464     -p 88:88/udp -p 464:464/udp -p 123:123/udp -v /sys/fs/cgroup:/sys/fs/cgroup  --sysctl net.ipv6.conf.all.disable_ipv6=0  freeipa/freeipa-server:rocky-9-4.10.1  ipa-server-install -U --realm=TEST.SSLIP.IO --ds-password=password --admin-password=password1 --no-ntp
 docker ps -a
CONTAINER ID   IMAGE                                   COMMAND                  CREATED        STATUS        PORTS                                                                                                                                                                                                                                                                                                                                                                                                                     NAMES
467ebecb99a2   freeipa/freeipa-server:rocky-9-4.10.1   "/usr/local/sbin/ini…"   19 hours ago   Up 19 hours   0.0.0.0:53->53/tcp, :::53->53/tcp, 0.0.0.0:80->80/tcp, 0.0.0.0:53->53/udp, :::80->80/tcp, :::53->53/udp, 0.0.0.0:88->88/udp, :::88->88/udp, 0.0.0.0:88->88/tcp, :::88->88/tcp, 0.0.0.0:389->389/tcp, :::389->389/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:123->123/udp, :::443->443/tcp, :::123->123/udp, 0.0.0.0:464->464/tcp, :::464->464/tcp, 0.0.0.0:636->636/tcp, 0.0.0.0:464->464/udp, :::636->636/tcp, :::464->464/udp   nervous_goldwasser
 ping ipa.test.sslip.io
PING ipa.test.sslip.io (158.160.70.96) 56(84) bytes of data.
64 bytes from ipa.test.sslip.io (158.160.70.96): icmp_seq=1 ttl=63 time=0.603 ms
64 bytes from ipa.test.sslip.io (158.160.70.96): icmp_seq=2 ttl=63 time=0.240 ms
64 bytes from ipa.test.sslip.io (158.160.70.96): icmp_seq=3 ttl=63 time=0.217 ms
64 bytes from ipa.test.sslip.io (158.160.70.96): icmp_seq=4 ttl=63 time=0.307 ms
64 bytes from ipa.test.sslip.io (158.160.70.96): icmp_seq=5 ttl=63 time=0.221 ms
64 bytes from ipa.test.sslip.io (158.160.70.96): icmp_seq=6 ttl=63 time=0.236 ms
64 bytes from ipa.test.sslip.io (158.160.70.96): icmp_seq=7 ttl=63 time=0.260 ms
^C
--- ipa.test.sslip.io ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 6131ms
rtt min/avg/max/mdev = 0.217/0.297/0.603/0.127 ms
cat /etc/hosts
# Your system has configured 'manage_etc_hosts' as True.
# As a result, if you wish for changes to this file to persist
# then you will need to either
# a.) make changes to the master file in /etc/cloud/templates/hosts.debian.tmpl
# b.) change or remove the value of 'manage_etc_hosts' in
#     /etc/cloud/cloud.cfg or cloud-config from user-data
#
127.0.1.1 epdtkkq4qnp06c4a53vi.auto.internal epdtkkq4qnp06c4a53vi
127.0.0.1 localhost
158.160.70.96 ipa.test.sslip.io
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Когда на физической машине открываю браузер и в адресной строке набираю адрес 158.160.70.96 и enter, адрес преобразуется в ipa.test.sslip.io/ipa/ui, а вместо стандартного окна приглашения freeipa отображается «Не удается получить доступ к сайтуПроверьте, нет ли опечаток в имени хоста ipa.test.sslip.io. Если все правильно, воспользуйтесь инструментом «Диагностика сетей Windows». DNS_PROBE_FINISHED_NXDOMAIN». На виртуальной машине открыл в ufw все нужные порты

 sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
53                         ALLOW       Anywhere
80                         ALLOW       Anywhere
88                         ALLOW       Anywhere
389                        ALLOW       Anywhere
443                        ALLOW       Anywhere
22                         ALLOW       Anywhere
123                        ALLOW       Anywhere
464                        ALLOW       Anywhere
636                        ALLOW       Anywhere
53 (v6)                    ALLOW       Anywhere (v6)
80 (v6)                    ALLOW       Anywhere (v6)
88 (v6)                    ALLOW       Anywhere (v6)
389 (v6)                   ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
22 (v6)                    ALLOW       Anywhere (v6)
123 (v6)                   ALLOW       Anywhere (v6)
464 (v6)                   ALLOW       Anywhere (v6)
636 (v6)                   ALLOW       Anywhere (v6)

Можете сказать в чем еще может быть проблема, сам новичок в работе с docker and freeipa поэтому не могу понять что работает не так.

Если нужно сделать чтобы в nginx работала авторизация через учётки которые будут созданы в freeipa, лучше поставить nginx-ldap-auth и nginx на саму систему или же для каждого поднять отдельный контейнер в докер.

 , , , ,

NARUTO
()

проблема с считыванием переменной

Форум — Admin

Добрый день. При реализации скрипта столкнулся с проблемой, нужно реализовать функцию которая будет в зависимости от входящих параметров выполнять определенные действия. Если на вход скрипта поступает параметр -p or –proc то на экран должно отобразиться содержимое директории /proc, а если есть второй параметр например cpuinfo, то при выполнении скрипта ./script.sh -p cpuinfo выведит на экран содержимое файла. Текст фнукции

proc () {
  if [ "$1" = "-p" ]
   then
         ls /proc
    elif [ "$2" != " " ]
    then
           cat /proc/"$2"
    else
          exit
fi
}

В таком ввиде когда запускаю скрипт

./script.sh -p

не отрабатывает команда ls которая выдать листининг директории /proc и выдает ошибку «cat /proc это каталог», а если запустить скрипт с двумя переменными

./script.sh -p cpuinfo

после выполнения выводиться содержимое файла /proc/cpuinfo.

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

./script.sh -p и ./script.sh --proc,а также с двумя параметрами
./script.sh -p($1) $2(любой файл в директории /proc) и ./script.sh --proc($1) $2

Можете сказать где мог допустить ошибку и как добавить реализацию для –proc

По сути нужно написать скрипт который будет выполнять мониторинг ресурсов сервера, в скрипте должны быть функции: помощь (выводит список опций скрипта); работа с директорией работа с процессором работа с памятью и т.д. Каждая функция должна выполняться с «-» и «–» например:

./scpript.sh -h or ./script.sh --help
./script.sh -p or ./script.sh --proc
и т.д.

Подскажите как лучше сделать в каждой функции сделать цикл

while getopts ":h:p:m" arg; do
case $arg in
-h ) command
-m) command
esac
done

Или же в каждой функции сделать проверку на ввод параметров, а уже в главной функции(main) сделать цикл while который будет проверять в каком в виде введен первый параметр с («-» или «–») и выполнял соответствующие функции.

while getopts ":h:p:m" arg; do
case $arg in
-h ) command
--help) command
-m) command
--memory) command
и т.д.
esac
done

Перемещено hobbit из general

 , , , ,

NARUTO
()

Переменная оболочки

Форум — General

Добрый день. Столкнулся с такой задачей: При входе пользователя user в систему (non-interactive login shell) у него должна быть определена переменная KEY3, равная local. Обратите внимание - данная переменная должна быть локальной, а не переменной окружения.

Так понимаю локальная переменная это та, которая объявляется в текущей сессии, но как объявить ее заранее не могу понять. Может есть совет как решить данный вопрос.

 , , ,

NARUTO
()

NAT нет выхода в инетернет из локальной сети

Форум — General

Добрый день. Не получается предоставить доступ в интернет из локальной сети. Ситуация такова: есть две ВМ host1 and host2, host1 имеет только один интерфейс eth0 и два адреса публичный (34.240.13.199) и приватный (10.151.30.57), а host2 имеет интерфейс eht0 и только приватный адрес (10.151.30.19). К вм host2 можно получиь доступ только через host1. Нужно реализовать следующие действия:

  1. на вм host1 настроить NAT и выпустить host2 в интернет;
  2. настроить проброс портов таким образом чтобы при подключении по ssh на host1 по порту 2222 подключался к host2.

Для реализации выполнил следующее:

sudo nano /etc/sysctl.conf
net.ipv4.ip_forward=1 // снял комментарий 
sudo sysctl -p

После начал добавлять правила iptables:

sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -i eth0 -s 10.151.30.19 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth0 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.151.30.19 -o eth0 -j SNAT --to-source 34.240.13.199
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 2222 -j DNAT --to-destination 10.151.30.19:22
sudo iptables -t nat -A POSTROUTING -d 10.151.30.19 -p tcp -m tcp --dport 22 -j SNAT --to-source 10.151.30.57
sudo iptables -A INPUT -p tcp -m multiport --dports 22, 9060 -j ACCEPT

После ssh подключения через putty к 34.240.13.199 порт 2222, доступ к машине был получен и смог на нее войти. После чего выполнил команду ping 8.8.8.8 и тут оказалсь что NAT не работает и у меня нет доступа в инет из локальной сети.

Попробовал это испарвить выполнив команду
sudo ip route add default via 10.151.30.57 dev eth0

после чего получил ошибку RTNETLINK answers: File exists

Также добавил dns сервера 8.8.8.8 и 8.8.4.4 в файл 
sudo nano /etc/systemd/resolved.conf

после выполнил команду
sudo systemctl restart systemd-resolved

Можете сказать как исправить ситуацию чтобы из локальной сети был доступ в интернет. Может быть нужно добавить еще какие-то правила в iptables.

Перемещено Dimez из linux-org-ru

 , , ,

NARUTO
()

RSS подписка на новые темы