пятница, 7 апреля 2017 г.

Observium - установка и настройка

Документ без названия

1. Install the packages we need to run Observium (For Ubuntu versions 16.04 and later):

aptitude install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp php-pear snmp graphviz subversion mysql-server mysql-client rrdtool fping imagemagick whois mtr-tiny nmap ipmitool
apt-get install libvirt-bin

2.

mkdir -p /opt/observium && cd /opt
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
cd observium
cp config.php.default config.php

3.

mysql -u root -p

CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY 'password';

4.

nano config.php

### настройки подключения к БД (из п. 7)
$config['db_host'] = "localhost";
$config['db_user'] = "observium";
$config['db_pass'] = "password";
$config['db_name'] = "observium";

### список сетей для сканирования
$config['nets'][] = "172.22.0.0/16";
$config['nets'][] = "192.168.10.0/24";

5. Setup the MySQL database and insert the default schema:

./discovery.php -u

6. Create the directory Observium will store its logs in:

mkdir logs

7. Создайте каталог для хранения RRDs в и установить правильное владение:

mkdir rrd
chown www-data:www-data rrd

8. Проверка версии apache

apt-cache policy apache2

9. Для версии Apache 2.4

nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /opt/observium/html
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/observium/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
</VirtualHost>

10.

apt-get install php5-mcrypt

11. Включите модуль php mcrypt:

php5enmod mcrypt

12.

a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php5 a2enmod rewrite
apache2ctl restart (/etc/init.d/apache2 restart)

13.

cd /opt/observium

14. Добавляем учетную запись Observium (10 – уровень)

./adduser.php <username> <password> <level>

15. Настройка отправки сообщений на соответствующем сетевом оборудовании

на cisco

snmp-server enable traps
snmp-server community stc RO
snmp-server host 192.168.43.85 v2c

на HP

snmp-server enable
snmp-server community stc manager restricted
snmp-server host 192.168.43.85 all stc

16.

./add_device.php server1 public v2c

17. Добавляем первый хост для мониторинга:

nano /etc/hosts

192.168.1.30 server1

18. След. скрипты необходимы для обзора и запроса данных:

./discovery.php -h all
./poller.php -h all

19. Установка snmp сервера и стандартных mib:

apt-get install snmpd snmp snmptt

20.

nano /etc/apt/sources.listnano /etc/apt/sources.list

deb http://httpredir.debian.org/debian jessie main contrib non-free
deb-src http://httpredir.debian.org/debian jessie main contrib non-free
deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

21.

apt-get update
apt-get install snmp-mibs-downloader

22. погрузятся свежие MIB файлы из репозитария

download-mibs

23.

nano /etc/snmp/snmp.conf

mibs :BRIDGE-MIB:Q-BRIDGE-MIB:IP-MIB:IF-MIB
#mibs +ALL - включает поиск по всем MIB файлам

24.

apt-get install python-mysqldb (для /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1)

25. Далее в папке /etc/cron.d/ создаем файл observium с содержимым:

# Run a complete discovery of all devices once every 6 hours
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
# Run automated discovery of newly added devices every 5 minutes
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
# Run multithreaded poller wrapper every 5 minutes
*/5 * * * * root /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1
# Run housekeeping script daily for syslog, eventlog and alert log
13 5 * * * root /opt/observium/housekeeping.php -ysel
# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
47 4 * * * root /opt/observium/housekeeping.php -yrptb

*******************************

Смотрим дерево мибов

snmptranslate -Tp

Все параметры, которые можно получить от устройства по протоколу SNMP, можно увидеть с помощью команды:

snmpwalk -c public -v2c 10.0.0.1

где 10.0.0.1 - ip адрес устройства

---------------------

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

mysql -u root -p

SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;

Loganalyser - установка и настройка

Документ без названия

1. Проверяем работает ли syslog

service syslog status

ответ

rsyslog.service - System Logging Service

2. Основной конфигурационный файл демона rsyslogd

/etc/rsyslog.conf

3. устанавливаем Rsyslog с дополнительными пакетами, которые в дальнейшем будут необходимы:

apt-get install rsyslog rsyslog-mysql mysql-server mysql-client

4.

/etc/rsyslog.d/mysql.conf

$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,p@ssw0rD

*.* — запись всех логов в базу
ommysql — модуль, с помощью которого rsyslog будет писать в MySQL
Syslog — имя базы
rsyslog — пользователь, которому предоставлен доступ писать в базу Syslog
p@ssw0rD — пароль пользователя rsyslog

5. Перегружаем rsyslog

service rsyslog restart

6. Проверяем базу:

mysql -u rsyslog -p

show databases;
use Syslog;
show tables;
select * from SystemEvents limit 2 \G

7.

nano /etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514
# provides TCP syslog reception (если нужен TCP)
$ModLoad imtcp
$InputTCPServerRun 514

8. Переходим к настройке Loganalyzer. В качестве веб-сервера используем Apache, поэтому установим его и пакеты необходимые для работы LogAnalyzer-а:

apt-get install apache2 libapache2-mod-php5 php5-mysql php5-gd

9. Скачиваем последний Loganalyzer, распаковываем его, ставим необходимые права на конфигурационные скрипты:

mkdir /var/www/loganalyzer  (папка для вэб-сервера)
mkdir /tmp/loganalyzer
cd /tmp/loganalyzer  (скачиваем сюда)
tar zxvf loganalyzer-4.1.5.tar.gz
mv loganalyzer-4.1.5/src/* /var/www/html/loganalyzer
mv loganalyzer-4.1.5/contrib/* /var/www/html/loganalyzer

9.

 

service apache2 restart

10. 

chmod +x /var/www/html/loganalyzer/configure.sh /var/www/html/loganalyzer/secure.sh
chown -R www-data:www-data /var/www/html/loganalyzer

среда, 13 апреля 2016 г.

Розница 2.1.
Испортился файл "1cv8u.pfl", поэтому у Вас создаётся при каждом запуске новое рабочее место.
В Win8, например, он находится по адресу: "C:\Users\<Пользователь>\AppData\Local\1C\1Cv82\1cv8u.pfl".

Вобщем закройте 1С, сделайте, на всякий случай, резервную копию сломанного файла.
Замените содержимое (при помощи блокнота) на: 
Код
{
{""},
{
{"Universal",
{"ClientID",
{"#",fc01b5df-97fe-449b-83d4-218a090e681e,88888888-0000-0000-0000-000000000000},""},
{
{""}
}
},
{""}
}
}


Вместо "88888888-0000-0000-0000-000000000000" можете подставить CLSID нужного рабочего места или оставить как есть, остальное не менять, сохранить. Затем запустить Розницу, выбрать рабочее место с вставленным CLSID'ом, настроить это рабочее место (в т.ч. торговое оборудование). Для порядка, удалить кучу ненужных насозданных рабочих мест. 
Готово.

понедельник, 1 декабря 2014 г.

Скрипт PowerShell, отслеживающий свободное место на диске и удаляющий старые файлы.

Решил освоить PowerShell. Подвернулась подходящая задача - необходимо настроить на сервере очистку жесткого диска в зависимости от свободного места. Будем удалить старые файлы в определенном каталоге (старые бэкапы).

Скрипт:

$d = "d:\1" // объявляю переменную, в данном случае путь к каталогу
cd $d // перехожу в каталог
psdrive | ForEach-Object {if ($_.free -gt 10000000000 -and $_.name -eq "d"){ls $d | Sort-Object LastWriteTime -descending | select LastWriteTime, name -last 2| ForEach-Object {Remove-item $_.name -whatif}}} //  см. ниже

// psdrive - показать все диски
// | - передать данные дальше по конвееру
// ForEach-Object - перебираем диски по порядку
// if ($_.free -gt 10000000000 -and $_.name -eq "d") - находим диск D, у которого меньше 10Gb
// ls $d - (ls, dir в данном случае псевдонимы основной команды get-childitem) получаем список файлов и каталогов внутри данного
// Sort-Object LastWriteTime -descending - сортируем объекты по времени последнего изменения в обратном понятке
// select LastWriteTime, name -last 2 - выбираем последнии две записи, выводим поля время и имя
// Remove-item $_.name - удаляем файлы с этими именами
// -whatif - симулируем данный скрипт для проверки

Данный скрипт сохранил с расширением .ps1. Запуск данного файла осуществляю через .bat файл с таким содержимым:

powershell.exe d:\psdrive01.ps1

Файл с расширением .bat запускаю через планировщик заданий.

Есть еще один нюанс при запуске. По умолчанию выполнение сценариев PowerShell в системе запрещено. Т.к. в скриптах может находится вредоносный код, который может нанести вред системе. По соображениям безопасности скрипты PowerShell должны быть подписаны цифровой подписью, такой подход называется политика выполнения. new 6 Notepad 2011 06 08 15 29 19 thumb PowerShell. Выполнение скриптов запрещено для данной системы
Для тестирования скриптов можно отключить проверку выполнения для локальный скриптов. Для этого запускаем консоль PowerShell от имени администратора и вводим команду:
Set-ExecutionPolicy RemoteSigned
new 6 Notepad 2011 06 08 15 30 08 thumb PowerShell. Выполнение скриптов запрещено для данной системы

Подтверждаем изменение политики выполнения – [Y] Да.
Теперь все ЛОКАЛЬНЫЕ сценарии PowerShell будут выполняться без подписи и сценарий загруженные из интернета с цифровой подписью надежного издателя.

четверг, 15 августа 2013 г.

Автоматический запуск профиля пользователя на терминальном сервере.

В моей работе появилась необходимость автоматического запуска 1С со специальной обработкой на терминальном сервере.
Эту задачу можно выполнить в несколько этапов:

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


2. Заданий несколько, и надо их запускать под разными пользователями, то задача усложняется. Запустить с разных ярлыков по одному адресу под разными пользователями не получится, придется дать конкретному серверу необходимое количество IP адресов (или обращаться к нему по имени :) ) .

3. Для пользователя, под которым будет запускать сеанс 1c с обработкой добавляем нужную строку:

"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /S "SERVER\Base" /N Admin /P password /RunModeOrdinaryApplication /Execute "C:\обработка.epf" 


4. Создаем bat файл для автозагрузки.

mstsc с:\UT.rdp

5. Добавляем в планировщик (при включении компьютера) созданный bat файл.


понедельник, 18 марта 2013 г.

Обновление конфигурации базы 1С из командной строки.

В продолжение предыдущего поста.
Следующая задача для меня встала: создание пакетного файла для обновления конфигурации нескольких баз 1С.

Запуск одной строкой обновления конфигурации и базы не получилось. Сделал это последовательно двумя строкими:

start "" /wait  "C:\Program Files\1cv82-eletech\8.2.14.528\bin\1cv8.exe" CONFIG /F F:\roznica /N adm /P 123 /UpdateCfg "D:\BASE Temlpates\1c\1c\Accounting\2_0_45_5\1cv8.cf" - обновление конфигурации
start "" /wait  "C:\Program Files\1cv82-eletech\8.2.14.528\bin\1cv8.exe" CONFIG /F F:\roznica /N adm /P 123 /UpdateDBCfg - обновление базы


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

"D:\Distr 1C\update.bat" Base1




******************************************************************************

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

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

for {%переменная|%%переменнаяin (множество) do команда [ПараметрыКоманднойСтроки]

Mifile.txt - файл названия баз.









Пример:
for /F "usebackq delims=;" %%i in ("D:\Distr 1C\Myfile.txt") do "D:\Distr 1C\update.bat" %%i



delims=xxxЗадает набор разделителей. Заменяет набор разделителей по умолчанию, состоящий из пробела и символа табуляции.
usebackqЗадает возможность использования кавычек для имен файлов в параметре МножествоИменФайлов. Задает исполнение строки, заключенной в обратные кавычки, как команды, а строки в одиночных кавычках — как команды в символьной строке.



понедельник, 11 марта 2013 г.

Как выгрузить базу 1С при помощи командной строки.

В процессе работы появилась задача единовременно произвести выгрузку с нескольких баз 1С.
Единственным решением я посчитал - создание bat файла с ключами запуска 1С.
 И в него добавил следующее:

"C:\Program Files\1cv82-eletech\8.2.14.528\bin\1cv8.exe" CONFIG /F F:\roznica /N adm /P 123 /DumpIB E:\%date%-name.dt

Из выше написанного следует:

- C:\Program Files\1cv82\8.2.14.528\bin\1cv8.exe - этот запуск самого 1С
- CONFIG - в режиме конфигуратора
- /F - путь до файловой базы
- /N - имя пользователя, под которым разрешено выгружать базу
- /P - пароль пользователя
- E:\name.dt - куда выгружать базу


Далее переименовываем это файл с расширением .bat
В результате мы таким образом можем организовать бэкап и в конце получим файлы вида 18.01.2012-name.dt

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

start "" /wait 

/wait
Запускает приложение с ожиданием окончания его работы.


Конечный вид содержимого bat файла следующий:


start "" /wait  "C:\Program Files\1cv82-eletech\8.2.14.528\bin\1cv8.exe" CONFIG /F F:\roznica /N adm /P 123 /DumpIB E:\%date%-name.dt


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


И можно вставлять в планировщик