Архивы Windows - Заметки Эникейщика https://7d3.ru/wiki/category/wndows Или Рутинная Работа Системного Администратора Fri, 12 Nov 2021 12:19:01 +0000 ru-RU hourly 1 https://wordpress.org/?v=7.1.4 [VirtualBox][Docker] VERR_NEM_INIT_FAILED https://7d3.ru/wiki/1168 https://7d3.ru/wiki/1168#respond Fri, 12 Nov 2021 12:19:01 +0000 https://7d3.ru/?p=1168 cmd as Adminixtrator [crayon-6aedb68c61c23361518710/]    

Сообщение [VirtualBox][Docker] VERR_NEM_INIT_FAILED появились сначала на Заметки Эникейщика.

]]>
cmd as Adminixtrator

VirtualBox:
PS C:\WINDOWS\system32> bcdedit /set hypervisorlaunchtype off
Docker:
PS C:\WINDOWS\system32> bcdedit /set hypervisorlaunchtype auto

 

 

Сообщение [VirtualBox][Docker] VERR_NEM_INIT_FAILED появились сначала на Заметки Эникейщика.

]]>
https://7d3.ru/wiki/1168/feed 0
RC-servers 1.7 — список серверов https://7d3.ru/wiki/1165 https://7d3.ru/wiki/1165#respond Sat, 15 May 2021 14:49:42 +0000 https://7d3.ru/?p=1165 1.7 Добавлено поле Local Server Name исправлено экранирование при редактировании сервера исправлено масштабирование при редактировании свойств сервера Скачать

Сообщение RC-servers 1.7 — список серверов появились сначала на Заметки Эникейщика.

]]>
1.7

  1. Добавлено поле Local Server Name
  2. исправлено экранирование при редактировании сервера
  3. исправлено масштабирование при редактировании свойств сервера

Скачать

Сообщение RC-servers 1.7 — список серверов появились сначала на Заметки Эникейщика.

]]>
https://7d3.ru/wiki/1165/feed 0
[AWS][Microsoft SQL] file to retrieve data for this request https://7d3.ru/wiki/1086 https://7d3.ru/wiki/1086#respond Mon, 23 Mar 2020 11:44:03 +0000 https://7d3.ru/?p=1086 Проблема: Пытаюсь перенести базу Microsoft SQL Server  на инстанс AWS-RDS. При restore получаю ошибку «file to retrieve data for this request, Permission denied» Решение: Надо положить бэкап-файл на S3 Создать S3 Bucket в том же регионе, что и БД Создать новую RDS OptionsGroup с опцией SQLSERVER_BACKUP_RESTOR. Добавить роль IAM, чтобы БД могла лезть в S3 […]

Сообщение [AWS][Microsoft SQL] file to retrieve data for this request появились сначала на Заметки Эникейщика.

]]>
Проблема: Пытаюсь перенести базу Microsoft SQL Server  на инстанс AWS-RDS. При restore получаю ошибку «file to retrieve data for this request, Permission denied»

Решение: Надо положить бэкап-файл на S3

  1. Создать S3 Bucket в том же регионе, что и БД
  2. Создать новую RDS OptionsGroup с опцией SQLSERVER_BACKUP_RESTOR. Добавить роль IAM, чтобы БД могла лезть в S3
  3. Заменить OptionsGroup инстанса
  4. Подключиться к БД исполнить скрипт восстановления (restore) BD
    exec msdb.dbo.rds_restore_database 
    	@restore_db_name='database_name', 
    	@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name.extension',
    	@with_norecovery=0|1,
    	[@kms_master_key_arn='arn:aws:kms:region:account-id:key/key-id'],
    	[@type='DIFFERENTIAL|FULL'];

    или сокращенно
    exec msdb.dbo.rds_restore_database 
    	@restore_db_name='database_name', 
    	@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name.extension';

    Проверить статус: exec msdb.dbo.rds_task_status;

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html

Сообщение [AWS][Microsoft SQL] file to retrieve data for this request появились сначала на Заметки Эникейщика.

]]>
https://7d3.ru/wiki/1086/feed 0
[WIN] SAM file https://7d3.ru/wiki/1077 https://7d3.ru/wiki/1077#respond Sat, 21 Dec 2019 13:36:45 +0000 https://7d3.ru/?p=1077 Задача: сбросить пароль администратора WINDOWS, добавить пользователя в группу администраторов Решение: грузимся с линукса. [crayon-6aedb68c62214883254370/] [crayon-6aedb68c6221c381798755/] Далее редактируем необходимого пользователя chntpw  /media/win/Windows/System32/config/SAM -u user2 Или в интерактивном режиме chntpw  -i /media/win/Windows/System32/config/SAM [crayon-6aedb68c62220515232438/]  

Сообщение [WIN] SAM file появились сначала на Заметки Эникейщика.

]]>
Задача: сбросить пароль администратора WINDOWS, добавить пользователя в группу администраторов

Решение: грузимся с линукса.

sudo apt install chntpw
#смотрим, где наш диск с виндой
sudo fdisk -l
sudo mkdir /media/win
#монтируем
sudo mount /dev/sdс1 /media/win

chntpw -l /media/win/Windows/System32/config/SAM

| RID -|---------- Username ------------| Admin? |- Lock? --|
| 01f7 | DefaultAccount                 |        | dis/lock |
| 03e9 | user                           |        |          |
| 03ea | user2                          | ADMIN  |          |
| 01f8 | WDAGUtilityAccount             |        | dis/lock |
| 01f4 | Администратор                  | ADMIN  | dis/lock |
| 01f5 | Гость                          |        | dis/lock |

Далее редактируем необходимого пользователя
chntpw  /media/win/Windows/System32/config/SAM -u user2

Или в интерактивном режиме
chntpw  -i /media/win/Windows/System32/config/SAM

Loaded hives: </media/win/Windows/System32/config/SAM>

  1 - Edit user data and passwords
  2 - List groups
      - - -
  9 - Registry editor, now with full write support!
  q - Quit (you will be asked if there is something to save)

 

Сообщение [WIN] SAM file появились сначала на Заметки Эникейщика.

]]>
https://7d3.ru/wiki/1077/feed 0
[COMODO] Comodo internet security premium исключить директорию из сканирования https://7d3.ru/wiki/1027 https://7d3.ru/wiki/1027#respond Tue, 18 Jun 2019 18:59:43 +0000 https://7d3.ru/?p=1027 Сообщение [COMODO] Comodo internet security premium исключить директорию из сканирования появились сначала на Заметки Эникейщика.

]]>

Сообщение [COMODO] Comodo internet security premium исключить директорию из сканирования появились сначала на Заметки Эникейщика.

]]>
https://7d3.ru/wiki/1027/feed 0
[WIN7] WindowsUpdate 80070003 https://7d3.ru/wiki/922 https://7d3.ru/wiki/922#respond Wed, 08 Aug 2018 16:41:53 +0000 https://7d3.ru/?p=922 sfc /scannow снести C:\Windows\SoftwareDistribution запустить обновление снова

Сообщение [WIN7] WindowsUpdate 80070003 появились сначала на Заметки Эникейщика.

]]>
sfc /scannow

снести C:\Windows\SoftwareDistribution

запустить обновление снова

Сообщение [WIN7] WindowsUpdate 80070003 появились сначала на Заметки Эникейщика.

]]>
https://7d3.ru/wiki/922/feed 0
[ZABBIX] SQL DB2 cash windows https://7d3.ru/wiki/805 https://7d3.ru/wiki/805#respond Sat, 05 May 2018 01:04:05 +0000 https://7d3.ru/?p=805 дополнение к https://7d3.ru/wiki/776. Теперь у нас имеется db2 + виндовый сервак. Поэтому юзаем powershell + zabbix Создаем VIEW на BD. Zabbix не преобразует пустое значение в 0 (когда вью ничего не вернула). Поэтому, надо написать такую вьюху, которая возвращала бы 0 вместо «нет результатов» Пример: [crayon-6aedb68c62459422835516/] Наша вьюха: [crayon-6aedb68c62461310179294/] Можно сразу задать application и description […]

Сообщение [ZABBIX] SQL DB2 cash windows появились сначала на Заметки Эникейщика.

]]>
дополнение к https://7d3.ru/wiki/776.

Теперь у нас имеется db2 + виндовый сервак. Поэтому юзаем powershell + zabbix

  1. Создаем VIEW на BD. Zabbix не преобразует пустое значение в 0 (когда вью ничего не вернула). Поэтому, надо написать такую вьюху, которая возвращала бы 0 вместо «нет результатов»
    Пример:
    CREATE OR REPLACE VIEW mon.events_distinct_customer_platform AS
    WITH event_distinct_customer_platform_a(platform, "COUNT") AS (
    основной SELECT
    )
    SELECT s.platform,
    COALESCE(( SELECT a."COUNT"
    FROM event_distinct_customer_platform_a a
    WHERE a.platform::text = s.platform), 0) AS "COUNT"
    FROM ( дополнительный SELECT с необходимыми значениями для заббикса) s(platform);

    Наша вьюха:
    CREATE OR REPLACE VIEW mon.events_distinct_customer_platform AS
    WITH event_distinct_customer_platform_a(platform, "COUNT") AS (
    SELECT ep.value,
    count(DISTINCT e.customer_id) AS count
    FROM auth.event e
    JOIN auth.event_param ep ON e.id = ep.event_id
    WHERE ep.param = 'platform' AND e.creation > CURRENT TIMESTAMP - 5 MINUTE WITH ur
    GROUP BY ep.value
    )
    SELECT s.platform,
    COALESCE(( SELECT a."COUNT"
    FROM event_distinct_customer_platform_a a
    WHERE a.platform = s.platform), 0::bigint) AS "COUNT"
    FROM ( VALUES ('WEB'), ('ANDROID'), ('IOS')) s(platform);

    Можно сразу задать application и description для discovery zabbix. Тогда вьюха будет выглядеть так
    CREATE OR REPLACE VIEW mon.events_distinct_customer_platform AS
    WITH event_distinct_customer_platform_a(platform, "COUNT") AS (
    SELECT ep.value,
    count(DISTINCT e.customer_id) AS count
    FROM auth.event e
    JOIN auth.event_param ep ON e.id = ep.event_id
    WHERE ep.param = 'platform' AND e.creation > CURRENT TIMESTAMP - 5 MINUTE WITH ur
    GROUP BY ep.value
    )(
            SELECT
                'Applications_name',
                'WEB',
                COUNT(*),
                'описание для айтема WEB'
            FROM
                event_distinct_customer_platform_a
            WHERE
                platform = 'WEB'
        UNION SELECT
                'Applications_name',
                'ANDROID',
                COUNT(*),
                'описание для айтема ANDROID'
            FROM
                event_distinct_customer_platform_a
            WHERE
                platform = 'ANDROID'
         UNION SELECT
                'Applications_name',
                'IOS',
                COUNT(*),
                'описание для айтема IOS'
            FROM
                event_distinct_customer_platform_a
            WHERE
                platform = 'IOS'
    
        )
  2. на standby сервере DB или ином другом устанавливаем драйвер и каталогизируем базу.
    db2 catalog tcpip node <NODE_NAME> remote <SERVER_NAME> server <PORT> SYSTEM <SERVER_NAME> OSTYPE WIN
    db2 catalog DB <DATABASE_NAME> AS <DATABASE_ALIAS> AT NODE <NODE_NAME>
    db2 catalog system odbc data source <DATABASE_NAME>
    <NODE_NAME> - имя ноды
    <DATABASE_NAME> - имя базы данных
    <SERVER_NAME> - имя сервера, где расположена база
    <PORT> - порт (по умолчанию 50000)
  3. Проверяем подключение и сохраняем пароль в Data Sources (ODBC)
  4. Скрипт исполнения запроса.  D:\scripts\zabbix\get_data.ps1
    get_data.ps1
    #Author: CTAPOMAK
    
    #Params
    #-view mon.events_distinct_customer_platform
    
    param ( $view = "ERROR" )
    
    if ($view -eq "ERROR"){
      echo("view param not found")
      exit
    }
    
    function Get-ODBC-Data{
       param([string]$query=$(throw 'query is required.'))
       $conn = New-Object System.Data.Odbc.OdbcConnection
       $conn.ConnectionString = "DSN=DB_NAME;"
       $conn.open()
       $cmd = New-object System.Data.Odbc.OdbcCommand($query,$conn)
       $ds = New-Object system.Data.DataSet
       (New-Object system.Data.odbc.odbcDataAdapter($cmd)).fill($ds) | out-null
       $conn.close()
       $ds.Tables[0]
    }
    
    function Set-ODBC-Data{
       param([string]$query=$(throw 'query is required.'))
      $conn = New-Object System.Data.Odbc.OdbcConnection
      $conn.ConnectionString= "DSN=DB_NAME;"
      $cmd = new-object System.Data.Odbc.OdbcCommand($query,$conn)
      $conn.open()
      $cmd.ExecuteNonQuery()
      $conn.close()
    }
    
    function get_data{
      $query = "SELECT * FROM $view"
      #создаем лок файл
      ([int][double]::Parse((Get-Date -UFormat %s))) > $lockFile
      $result = Get-ODBC-Data -query $query
      $result|  ConvertTo-Csv  -NoType -delimiter "|"| Select-Object -Skip 1 | Foreach-Object {$_ -replace '^"', ''}| Foreach-Object {$_ -replace '"$', ''}| Foreach-Object {$_ -replace '"\|"', '|'} > $extractFile
      #удаляем лок файл
      Remove-Item $lockFile
    }
    
    $extractFile="$view.stat"
    $lockFile="$view.lock"
    
    if((Test-Path $lockFile) -eq "True") {
      $date_now=[int][double]::Parse((Get-Date -UFormat %s))
      $date_stats=Get-Content $lockFile
      if([string]::IsNullOrWhiteSpace($date_stats)){
        $date_stats=0
      }
      $date_rusult=$date_now - $date_stats
      if($date_rusult -gt 1200){
        get_data
      }else{
        echo "work"
        exit
      }
    }else{
      get_data
    }

     
  5. скрипт возвращает возможные значения айтемов. D:\scripts\zabbix\stat_items.ps1
    stat_items.ps1
    #Author: CTAPOMAK
    
    #Params
    #-view mon.events_distinct_customer_platform
    
    param ( $view = "ERROR" )
    
    if ($view -eq "ERROR"){
      echo("view param not found")
      exit
    }
    
    $extractFile="D:\scripts\zabbix\$view.stat"
    
    if((Test-Path $extractFile) -eq "True") {
      echo '{"data":['
      $text=""
      foreach ($item in get-content $extractFile){
        $item = $item.Split("|")
        #echo $item[0];
    	$text=$text+'{"{#APPLICATIONNAME}":"'+$item[0]+'", "{#ITEMNAME}":"'+$item[1]+'", "{#DESCRIPTIONNAME}":"'+$item[3]+'"},'
      }
      echo $text.TrimEnd(",")
      echo "]}"
    }else{
      echo "ERROR: $extractFile not found"
    }
  6. скрипт возвращает значения айтемов. D:\scripts\zabbix\stat_items_data.ps1
    stat_items_data.ps1
    #Author: CTAPOMAK
    
    #Params
    #-view mon.events_distinct_customer_platform -itemname WEB
    
    param ( $view = "ERROR", $itemname = "ERROR" )
    
    if ($view -eq "ERROR"){
      echo("view param not found")
      exit
    }
    if ($itemname -eq "ERROR"){
      echo("itemname param not found")
      exit
    }
    
    get-content D:\scripts\zabbix\$view.stat | Select-String "\|$itemname\|" | %{($_ -split "\|")[2]}
  7. Шедулер
  8. Zabbix. Настройка описана в основной статье. Повторять не имеет смысла. Есть одно лишь отличие — мы добавили во вьюху описание айтема и наименование приложения. Скрипт отдает для них переменные
    {#APPLICATIONNAME} {#ITEMNAME} {#DESCRIPTIONNAME}
    их можно использовать при создании прототипов item. APPLICATIONNAME необходимо добавлять в поле New application prototype

Сообщение [ZABBIX] SQL DB2 cash windows появились сначала на Заметки Эникейщика.

]]>
https://7d3.ru/wiki/805/feed 0
[ZABBIX] Создание прототипов метрик по предустановленным значениям https://7d3.ru/wiki/788 https://7d3.ru/wiki/788#respond Wed, 11 Apr 2018 11:40:21 +0000 http://7d3.ru/?p=788 Идем в Шаблон -> Discovery rules -> Create Здесь мы будем перечислять возможные значения переменной (значения item-ов) [crayon-6aedb68c6270b025103470/] где #MSNAME — название новой переменной, которую мы будем использовать при прототипировании ite-ов { \»{#MSNAME}\»:\»product\»} — перечисление возможных значений Если значения хранятся в БД: db.odbc.discovery[count_of_triggers_on_hostid,{$ZABBIX_CONNECTION}] [crayon-6aedb68c62713112965003/] переходим в Item prototypes 1 proc.num[java,rmcp,all,{#MSNAME}] Если значения хранятся в БД: […]

Сообщение [ZABBIX] Создание прототипов метрик по предустановленным значениям появились сначала на Заметки Эникейщика.

]]>
  • Идем в Шаблон -> Discovery rules -> Create
  • Здесь мы будем перечислять возможные значения переменной (значения item-ов)
    system.run["echo '{\"data\":[ { \"{#MSNAME}\":\"ruble-transfer\"}, { \"{#MSNAME}\":\"product\"}, { \"{#MSNAME}\":\"widget\"} ]}'"]

    где #MSNAME — название новой переменной, которую мы будем использовать при прототипировании ite-ов
    { \»{#MSNAME}\»:\»product\»} — перечисление возможных значений

    Если значения хранятся в БД:
    db.odbc.discovery[count_of_triggers_on_hostid,{$ZABBIX_CONNECTION}]

    SELECT hosts.hostid as HOSTID, hosts.host as HOST FROM public.hosts_groups hgroups
    left join public.groups groups on hgroups.groupid = groups.groupid
    left join public.hosts hosts on hgroups.hostid = hosts.hostid
    where groups.name = 'Linux Servers';
  • переходим в Item prototypes 1
    proc.num[java,rmcp,all,{#MSNAME}]
    Если значения хранятся в БД:
    db.odbc.select[count_of_triggers_on_{#HOST},{$ZABBIX_CONNECTION}]
    SELECT count(*)
    from public.triggers triggers
    left join (select distinct(itemid), triggerid from public.functions group by triggerid, itemid) functions on triggers.triggerid = functions.triggerid
    left join public.items items on functions.itemid = items.itemid
    where triggers.value = 1 and triggers.status = 0 and items.hostid = {#HOSTID};
  • Также добавляем прототип триггера
  • Сообщение [ZABBIX] Создание прототипов метрик по предустановленным значениям появились сначала на Заметки Эникейщика.

    ]]>
    https://7d3.ru/wiki/788/feed 0
    [ZABBIX] SQL Postgress cash https://7d3.ru/wiki/776 https://7d3.ru/wiki/776#respond Wed, 11 Apr 2018 11:27:54 +0000 http://7d3.ru/?p=776 Бывают случаи, когда требуется собирать несколько значений из одной таблицы или вьюхи. При этом, сам селект долго отрабатывает и грузит сервер. К сожалению, заббикс в текущей реализации не умеет забирать несколько значений из селекта. Для решения этой проблемы мне видятся два подхода: — забирать данные скриптом, а потом использовать zabbix-sender — забирать данные скриптом в […]

    Сообщение [ZABBIX] SQL Postgress cash появились сначала на Заметки Эникейщика.

    ]]>
    Бывают случаи, когда требуется собирать несколько значений из одной таблицы или вьюхи. При этом, сам селект долго отрабатывает и грузит сервер. К сожалению, заббикс в текущей реализации не умеет забирать несколько значений из селекта.
    Для решения этой проблемы мне видятся два подхода:
    — забирать данные скриптом, а потом использовать zabbix-sender
    — забирать данные скриптом в файл, а заббикс читает эти данные
    Далее я покажу реализацию второго подхода.

    1. Создаем VIEW на BD. Zabbix не преобразует пустое значение в 0 (когда вью ничего не вернула). Поэтому, надо написать такую вьюху, которая возвращала бы 0 вместо «нет результатов»
      Пример:
      CREATE OR REPLACE VIEW mon.events_distinct_customer_platform AS
      WITH event_distinct_customer_platform_a(platform, "COUNT") AS (
      основной SELECT
      )
      SELECT s.platform,
      COALESCE(( SELECT a."COUNT"
      FROM event_distinct_customer_platform_a a
      WHERE a.platform::text = s.platform::text), 0::bigint) AS "COUNT"
      FROM ( дополнительный SELECT с необходимыми значениями для заббикса) s(platform);

      Наша вьюха:
      CREATE OR REPLACE VIEW mon.events_distinct_customer_platform AS
      WITH event_distinct_customer_platform_a(platform, "COUNT") AS (
      SELECT ep.value,
      count(DISTINCT e.customer_id) AS count
      FROM auth.event e
      JOIN auth.event_param ep ON e.id = ep.event_id
      WHERE ep.param::text = 'platform'::text AND e.creation > (now() - '00:01:00'::interval)
      GROUP BY ep.value
      )
      SELECT s.platform,
      COALESCE(( SELECT a."COUNT"
      FROM event_distinct_customer_platform_a a
      WHERE a.platform::text = s.platform::text), 0::bigint) AS "COUNT"
      FROM ( VALUES ('WEB'::character varying), ('ANDROID'::character varying), ('IOS'::character varying)) s(platform);
    2. на standby сервере DB или ином другом.
      sudo mkdir /opt/script/
      sudo chown postgres:zabbix /opt/script/
      sudo chmod 775 /opt/script/
      sudo -u zabbix bash
    3. Сохранение пароля подключения к БД. vim /opt/script/.pgpass
      servername-db1:5432:БАЗА:ЛОГИН:ПАРОЛЬ

      chmod 0600 /opt/script/zabbix/.pgpass
    4. Скрипт исполнения запроса. vim /opt/script/zabbix/get_data.sh
      get_data.sh
      #!/bin/bash
      #Author: CTAPOMAK
      view="${1}"
      echo $PATH
      function get_data() {
      echo $(date "+%s") > /opt/script/zabbix/${view}.lock
      echo "$(/opt/rh/rh-postgresql95/root/usr/bin/psql -X -A -t -h servername-db1 -d dbname -U dbuser_zabbix -c "select * from MON.${view};")" > /opt/script/zabbix/${view}.stat;
      rm /opt/script/zabbix/${view}.lock
      }
      #если лок существует
      if (test -f /opt/script/zabbix/${view}.lock)
      then
      date_now=$(date "+%s")
      date_stats=$(cat /opt/script/zabbix/${view}.lock)
      date_rusult=$[$date_now - ${date_stats:-0}]
      if [ $date_rusult -gt 1200 ]
      then
      get_data
      else
      echo "work"
      exit
      fi
      else
      get_data
      fi

       
    5. крипт возвращает возможные значения айтемов. vim /opt/script/zabbix/stat_items.sh
      stat_items.sh
      #!/bin/bash
      #Author: CTAPOMAK
      #file_name="/opt/script/zabbix/имявьюхи.stat"
      file_name="/opt/script/${1}.stat"
      echo "{\"data\":["
      text=""
      while read line
      do
      text="${text}{\"{#SYSTEMNAME}\":\"$(echo $line | awk -F'|' '{ print $1 }')\"},"
      done <<< "$(cat $file_name)"
      echo "$( echo "$text" | sed 's/.$//')"
      echo "]}"
      #{
      # "data":[
      #
      # { "{#SYSTEMNAME}":"ANDROID"},
      # { "{#SYSTEMNAME}":"WEB"},
      # { "{#SYSTEMNAME}":"IOS"}
      #
      # ]
      #}
    6. crontab -e. Файл кеша именуется название_вьюхи.stat
      ### global vars for connection to db
      PGPASSFILE=/opt/script/zabbix/.pgpass
      #PATH=$PATH:/opt/rh/rh-postgresql95/root/usr/bin
      LD_LIBRARY_PATH=/opt/rh/rh-postgresql95/root/lib64
      PGDATA=/var/opt/rh/rh-postgresql95/lib/pgsql/data
      #название вьюхи
      * * * * * /opt/script/zabbix/get_data.sh название_вьюхи

       
    7. Zabbix. Под каждый сервер создаем свой темплейт с названием Templ_App_SQL_имяПриложения
    8. идем в Discovery rules и создаем правило. Здесь задается значение переменной, которая будет перебираться для создания item-ов. Например, перемененная {#SYSTEMNAME} = WEB. ANDROID, IOS
      Name: events_distinct_customer_platform — по имени вьюхи
      Type: Zabbix agent
      Key: system.run[«sh /opt/script/stat_items.sh events_distinct_customer_platform»]
      Update interval (in sec): 3600 — чем больше, тем лучше
      Keep lost resources period (in days): 30 — удаление, если не найдено
    9. внутри этого правила переходим на Item prototypes и создаем прототип элемента данных
      Name: events_distinct_customer_platform_{#SYSTEMNAME}
      Type: Zabbix agent
      Key: system.run[«grep -E ‘^{#SYSTEMNAME}\|’ /opt/script/events_distinct_customer_platform.stat | awk -F’|’ ‘{ print $2 }'»]
      Update interval (in sec): 60
      History storage period (in days): 30
      Trend storage period (in days): 365
      Applications: название группы элементов данных для вывода в графане
    10. Trigger prototypes. Для этого типа item-ов создаем два тригера. Первый сравнивает среднее значение за последние 5 минут со средним от средних значений за 5 минут 7, 14, 21, 28 дней назад. Второй сравнивает среднее значение за 5 минут и среднне значение за 5 минут 30 минут назад. Для обоих триггеров задается два порога 9-21 и 21-9
      1)Name: EVENTS_distinct_customer_{#SYSTEMNAME}
      Expression:

    (
    (
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m)}
    /
    (
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,7d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,14d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,21d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,28d)}
    )/4
    )
    )>2
    
    or
    
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m)}
    /
    (
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,7d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,14d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,21d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,28d)}
    )/4
    )
    )<0.5
    )
    and (
    ({Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].time(0)}>=90000)
    and
    ({Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].time(0)}<=210000)
    )
    )
    or
    (
    (
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m)}
    /
    (
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,7d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,14d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,21d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,28d)}
    )/4
    )
    )>4
    
    or
    
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m)}
    /
    (
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,7d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,14d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,21d)}+
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,28d)}
    )/4
    )
    )<0.25
    )
    and (
    ({Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].time(0)}>210000)
    and
    ({Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].time(0)}<90000)
    )
    )

    Description

    Количество уникальных пользователей в онлайне по {#SYSTEMNAME} в сравнении с прошлой неделей выросло или снизилось
    в 2 раза (9-21) или
    в 4 раза ночью (21-9).

    Текущее значение: {ITEM.VALUE}
    2)Name: EVENTS_distinct_customer_{#SYSTEMNAME}
    Expression:

    (
    (
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m)}
    /
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,30m)}
    )>2
    
    or
    
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m)}
    /
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,30m)}
    )<0.5
    )
    and (
    ({Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].time(0)}>=90000)
    and
    ({Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].time(0)}<=210000)
    )
    )
    or
    (
    (
    
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m)}
    /
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,30m)}
    )>4
    
    or
    
    (
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m)}
    /
    {Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].avg(5m,30m)}
    )<0.25
    )
    and (
    ({Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].time(0)}>210000)
    and
    ({Templ_App_SQL:system.run["grep '{#SYSTEMNAME}' /opt/script/events_distinct_customer_platform.stat | awk -F'|' '{ print $2 }'"].time(0)}<90000)
    )
    )

     

     

    Description

    Количество уникальных пользователей в онлайне по {#SYSTEMNAME} в сравнении с данными 30 минут назад выросло или снизилось

    в 2 раза днем (9-21) или
    в 4 раза ночью (21-9).

    Текущее значение: {ITEM.VALUE}

    Идем в Monitoring — Latest data и проверяем получает ли заббикс данные

    Сообщение [ZABBIX] SQL Postgress cash появились сначала на Заметки Эникейщика.

    ]]>
    https://7d3.ru/wiki/776/feed 0
    [Apache] Настройка Basic аутентификации в Apache https://7d3.ru/wiki/746 https://7d3.ru/wiki/746#respond Wed, 18 Oct 2017 11:44:57 +0000 http://7d3.ru/?p=746 [crayon-6aedb68c62d02555052868/] Результат: [crayon-6aedb68c62d0a878115181/] Добавляем блок в виртуалхосты *.80, *.443 [crayon-6aedb68c62d0e478846870/]

    Сообщение [Apache] Настройка Basic аутентификации в Apache появились сначала на Заметки Эникейщика.

    ]]>

    htpasswd -c /etc/httpd/conf.d/.htpasswd userlogin # Create Password File for Authentication
    New password:
    Re-type new password:
    Adding password for user userlogin

    Результат:

    cat/etc/httpd/conf.d/.htpasswd
    userlogin:$apr0$bq4Tro0n$oYAo1u3KVwmeyV0CWgbIk/

    Добавляем блок в виртуалхосты *.80, *.443
    <Directory “/var/www/html”>
    AuthType Basic
    AuthName “Authentication Required”
    AuthUserFile /etc/httpd/conf.d/.htpasswd
    Require valid-user
    </Directory>

    Сообщение [Apache] Настройка Basic аутентификации в Apache появились сначала на Заметки Эникейщика.

    ]]>
    https://7d3.ru/wiki/746/feed 0