Thursday, February 14, 2008

SNMP - закрытие доступа к public на Solaris 10

В отчете XSpider'а своего сервера под Solaris 10 имеется "некритичная уязвимость" c рекомендацией "Закрыть доступ к учетной записи public в snmp."

Сегодня все же решил заняться ею. Делаем проверку при помощи snmpget:
- Получить описание системы c localhost
# snmpget -v 2c -c public localhost system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: SunOS my_server_name 5.10 Generic_118822-25 sun4u
- Узнать когда SNMP-агент был инициирован последний раз
# snmpget -v 2c -c public localhost system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (146645223) 16 days, 23:20:52.23

Установил коммент в /etc/snmp/conf/snmpd.conf у строчки #system-group-read-community public
и рестартовал сервис snmp
# /etc/rc3.d/S76snmpdx stop
# /etc/rc3.d/S76snmpdx start

И повторяем проверку - ответы такие же .... хм....
Ну да , все правильно, ведь проверку делаю с localhost, а нужно со стороны ... Поэтому устанавливаю net-snmp на другой хост с Linux.

[root@centest RPMS]# rpm -Uvh lm_sensors-2.8.7-2.40.5.i386.rpm
warning: lm_sensors-2.8.7-2.40.5.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:lm_sensors ########################################### [100%]
[root@centest RPMS]# rpm -Uvh lm_sensors-devel-2.8.7-2.40.5.i386.rpm
warning: lm_sensors-devel-2.8.7-2.40.5.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:lm_sensors-devel ########################################### [100%]
[root@centest RPMS]# rpm -Uvh net-snmp-5.1.2-11.EL4.11.i386.rpm
warning: net-snmp-5.1.2-11.EL4.11.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:net-snmp ########################################### [100%]
[root@centest RPMS]# rpm -Uvh net-snmp-utils-5.1.2-11.EL4.11.i386.rpm
warning: net-snmp-utils-5.1.2-11.EL4.11.i386.rpm: V3 DSA signature: NOKEY, key ID 443e1821
Preparing... ########################################### [100%]
1:net-snmp-utils ########################################### [100%]

Стартовал демон snmp

[root@centest init.d]# /etc/init.d/snmpd start
Starting snmpd: [ OK ]

Проверил доступ к проблемному серверу - он есть
[root@centest init.d]# snmpget -v 2c -c public my_server_name system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (3715) 0:00:37.15

Итак, public все еще открыт .... из man snmpd.conf узнаю о файлике /etc/sma/snmp/snmpd.conf, в котором в строке rocommunity public добавляю 127.0.0.1 так, что стало
rocommunity public 127.0.0.1
Т.е. определил доступ к public только лишь с localhost
Рестартовал сервисы и проверил.

с localhost:
# snmpget -v 2c -c public localhost system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (53857) 0:08:58.57

с Linux-хоста
[root@centest init.d]# snmpget -v 2c -c public my_server_name system.sysUpTime.0
Timeout: No Response from my_server_name.

Т.о., в Solaris 'read only'-доступ к community public устанавливается в файлике /etc/sma/snmp/snmpd.conf

Теперь, думаю, XSpider успокоится.

Ссылки по теме:
http://www.net-snmp.org/wiki/index.php/Tutorials










Friday, February 08, 2008

IPMI Service Processor

Сегодня впервые столкнулся с IPMI Service Processor. После отправки сервера SUN ... под Linux Centos 4.1 64bit в ребут не дождался его старта. Нужно было лезть на него консольно.
Погуглив, помогла страничка http://docs.sun.com/source/817-5249-17/appendixF.html#pgfId-1002294
После входа в консоль сначала пришлось выключить сервак по питанию, а затем включить след.образом:

login as: admin
admin@10.27.45.13's password:

Sun Microsystems
IPMI v2.0 Service Processor

Version: V2.2.0.20
localhost $ platform set power state -W -f off
Scheduled platform off

localhost $ platform set os state boot -W -f

localhost $ platform get os state
BIOS booting

localhost $ platform get os state
OS booting

localhost $ platform get os state
OS booting

--
Через некоторое время появился ping до сервака и я облегченно вздохнул .... сервак-то в другом городе и время уже 22 часа.
IPMI - такого зверя я и не знал...

Wednesday, January 30, 2008

Примеры чекеров, скриптов sh

# Чекает не висит ли процесс rman-а больше суток
#!/bin/sh
PATH=/bin
LD=`(date --date='2 days ago' '+%b%d')`
RCPNTP=me@email
HOST=`uname -n`
if
ps -ef|grep -i $LD |grep rman
#if [ $? != 0 ];
then
echo "rman 2 days ago down on "$HOST|mailx -s "rman 2 days ago down on "$HOST ${RCPNTP} < /dev/null fi

##################
Чекает доступность по пингу хоста $HOST
#!/bin/sh
HOST=имя_сервера_который_чекаем
RCPNT=me@email ping -c 2 10.25.40.5 >/dev/null 2>&1
if [ $? -ne 0 ]; then
mail -s 'Alarm!!! Server is down. Check '$HOST $RCPNT < /dev/null
fi
#################
# Бэкапит файлы *jak* из директории /usr/local/BackUp по дням недели, удаляя устаревшие бэкапы
#!/bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
BKPDIR=/usr/local/BackUp
TODAY=`date +'%a'`
TOMCAT=/usr/local/jakarta-tomcat-4.1.18
cd $TOMCAT
BKPFILES=`ls`
tar zcf $BKPDIR/$TODAY-jak.tar.gz $BKPFILES
find $BKPDIR/ -type f -name '*jak*' -mtime +2 -exec rm "{}" ";"

Wednesday, January 23, 2008

Physical Memory in HP-UX

Как определить размер физической памяти в HP-UX

1) Способ, не везде срабатывающий
# dmesg |grep Physical

2) Сработал на разных платформах
# /opt/ignite/bin/print_manifest |grep -i memory



Monday, January 21, 2008

Bonding и отключение поддержки IPv6 (sit0) в Centos 4.6

Только что на тестовом серваке Proliant DL360 G4 c двумя оптическими карточками QLA2340 (которые предварительно перепрошил до firmware ver.1.54, скачанным с здесь) с Centos 4.6 на базе двух карточек Broadcom Corporation NetXtreme BCM5704 Gigabit Ehernet (Tigon3 chip) поднял bonding как описано в How can I bond multiple network interfaces (bonding) together into a single channel in Red Hat Enterprise Linux 4?

И тупо проверил выдергиванием кабелей по очереди - все работает.
Сообщил сетевикам, они настроили team на коммутаторах, но пожаловались на то, что с их стороны виден лишний MAC-адрес.
Действительно, в выводе # ifconfig -a маячит интерфейс "sit0 Link encap:IPv6-in-IPv4", который они и попросили убрать.
Очевидно поддержка IPv6 включена по дефолту в ядро 2.6.xxx
Для отключения IPv6 добавил в /etc/modprobe.conf
alias net-pf-10 off
alias ipv6 off
и перегрузился, после чего sit0 исчез из системы.

p.s. прикол в том, что на других боевых системах с Centos sit0 также присутствует :)

Thursday, January 17, 2008

Копирование пользователей с их правами

Здесь и здесь решение задачки переноса юзеров с их грантами из боевой в тестовую БД

set head off
set pages 0
set long 9999999
spool user_script.sql
SELECT DBMS_METADATA.GET_DDL('USER', USERNAME) || '/' DDL
FROM DBA_USERS
UNION ALL
SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT', USERNAME) || '/' DDL
FROM DBA_USERS
UNION ALL
SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT', USERNAME) || '/' DDL
FROM DBA_USERS
UNION ALL
SELECT DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT', USERNAME) || '/' DDL
FROM DBA_USERS;
spool off;

Wednesday, January 16, 2008

dbid в шаблоне %F

При восстановлении базы RMAN-ом необходимо установить DBID командой set dbid .
Дабы не искать его в логах лучше пользоваться шаблоном %F - при создании backup_set это первая последовательность цифр в имени файла при использовании шаблона %F - например,

configure controlfile autobackup format for device type disk to '/orabackup/rman2disk/back1_ctl_%F';

Friday, December 21, 2007

Грабелька с OVO-мониторингом баз Oracle (на Linux-ах)

Суть проблемы изложена в вопросе в форуме hp itrc.
Hi
We have the following situation. After a colleque of us restored partially a backup ( core dump happended) ORACLE is behaving somehow strange :
Logon to ORACLE using sqlplus works fine
Using the application that is normally used with the db alos works fine.
If the application tries to logon to ORACLE using programmatic access does not work at all .We always get the ORA-12546 error
We cannot fin whats wrong.
Has anyone a idea where we should search
Ответ оказался:
Make sure the permission on the oracle execuatble is correct. The oracle executable permission should be:
52224 -rwsr-sr-x 1 oracle dba 53431665 Aug 10 11:07 oracle
Explanation:
The error, ora-12546, occurs due to an incorrect setting on the oracle executable.

По AWR

-- Просмотреть все снимки, хранящиеся в репозитарии
select * from sys.wrm$_snapshot;

-- Просмотреть текущие настройки AWR

select * from dba_hist_wr_control;

-- Задать новые настройки AWR
begin
dbms_workload_repository.modify_snapshot_settings(
interval=>15,
retention=>10080);
end;

--Просмотреть представления с данными AWR

SELECT table_name, comments FROM dict WHERE table_name
LIKE 'DBA_HIST%'
order by 1;

-- Удалить AWR снапшоты (на примере ниже размер БД уменьшается с 10 до 3Гб)

SQL> select sum(bytes)/1024/1024/1024 from dba_segments;

SUM(BYTES)/1024/1024/1024
-------------------------
               10.2251587

SQL> select dbid, retention from dba_hist_wr_control;

      DBID RETENTION
---------- ---------------------------------------------------------------------------
2822602820 +00008 00:00:00.0

SQL> select min(snap_id), max(snap_id) from dba_hist_snapshot;

MIN(SNAP_ID) MAX(SNAP_ID)
------------ ------------
       21234        21405

SQL>  exec dbms_workload_repository.drop_snapshot_range(21234,21405);

PL/SQL procedure successfully completed.

SQL> select sum(bytes)/1024/1024/1024 from dba_segments;

SUM(BYTES)/1024/1024/1024
-------------------------

               3.08276367

define(`SMART_HOST',`smtp.provider.com')

After installing new Linux-server with Oracle etc. for successful mailing don't remember about adding feature "define(`SMART_HOST',`smtp.provider.com')" into your sendmail.mc
And after do
# cd /etc/mail
# make
# killall -1 sendmail
# echo test|mail me@mydomain.com

Thursday, December 20, 2007

top 2 file

top -d 1 -n 1000 -f /home/oracle/slava3.txt

Убить неубиваемую сессию (ORA-00031: session marked for kill)

Сегодня при попытке убить сессию нарвался на ошибку ORA-00031: session marked for kill
В таком случае сессию можно убить из Unix через убийство процесса
# kill pid, где pid - это spid из представления v$process, который можно узнать по ADDR. ADDR узнается по PADDR из v$session. Напр-р,
select spid from v$process where addr in
(select paddr from v$session where osuser='ADUser');

Если есть под рукой Toad , то в Session Browser
spid для проблемной сессии можно посмотреть перейдя в закладку Process

Tuesday, December 18, 2007

FEATURE(`delay_checks')

FEATURE(`delay_checks') - интересная фича в конфиге sendmail при проблеме когда сервер долго не выдает invitation из-за чего коннекты могут отваливаться по таймауту

http://dz.dn.ua/spam/antispam.html

Wednesday, December 12, 2007

Грабли с WMware

Получил сегодня ошибку "511 vmware-serverd service is not running" в своей VMware Server 1.0.2 после рестарта XP. По совету в одном из форумов, вылечил путем перезапуска службы VMware Registration Service при закрытой консоли. Но при попытке запустить виртуальную машину получил следующую ошибку "Virtual machine config file is invalid.." Вычитал про файлы .vmem and .vmem.lck в директории данной машины здесь и просто попытался их удалить, что оказалось безуспешно. Пришлось сребутить опять свою XP, после чего данные файлы исчезли и VMWare-машина нормально стартовала.

Tuesday, December 11, 2007

Грабли при Upgrade до 10.2.0.3

Сегодня при попытке проапгредить тестовую БД после накатки Patch Set 2 (релиз 10.2.0.3) нарвался на неожиданные грабли:
1) Ошибки как при запуске @?/rdbms/admin/catupgrd.sql, так и при запуске dbua (Ошибка звучала примерно так
DBUA thinks this is a Rerun operation and is trying to connect to the database with oracle home /oracle/product/10g. If you believe this is not a Rerun operation, remove the below file and invoke DBUA again.
/oracle/product/10g/cfgtoollogs/dbua/logs/Welcome_LIVE.txt ).
Оказалось, что были потеряны онлайн-логи БД - сообщение об этом я получал при
SQL> startup upgrade , но игнорировал ....
После того как проделал
SQL> recover database until cancel;
SQL> alter database open resetlogs;
(конечно на боевой базе после этого обязательно сделать полный бэкап базы) проблема ушла и после SQL> startup upgrade скрипт @?/rdbms/admin/catupgrd.sql начал свое исполнение.

Вывод 1: не игнорь недоступность онлайн-логов при "startup upgrade" .
---
2) Делал upgrade по Readme.html из архива патча. Потратив время, оказалось, что не стоит игнорить написанное черным по белому там - проверьте нет ли обновленного readme на металинке. В файле на металинке перед обновлением необходимо пропатчиться....

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

3) Нарвался на "тупейшую" засаду - скрипт catupgrd.sql завис бес каких либо сообщений, не сразу заглянув в алерт.лог я выяснил, что место в дисковой группе АСМ закончилось :( вот, засада.

Вывод 3: проверь достаточно ли свободного места в SYSTEM, SYSAUX, да и просто в дисковой группе.

Friday, December 07, 2007

Для установки запуска агента OVO

Для установки OVO-агента
[root@mysrv OpC]# /usr/src/OVO/RPC_BBC/opc_inst -s <имя_сервера>

Для запуска и проверки статуса OVO-агента
[root@mysrv OpC]# /opt/OV/bin/OpC/opcagt -start
[root@mysrv OpC]# /opt/OV/bin/OpC/opcagt -status
VPO Managed Node status :
-------------------------
Control Agent /opt/OV/bin/OpC/opcctla (13529) is running
Message Agent /opt/OV/bin/OpC/opcmsga (13532) is running
BBC Local Location Broker /opt/OV/bin/llbserver (13533) is running
Subagent 1:
Action Agent /opt/OV/bin/OpC/opcacta (13534) is running
Logfile Encapsulator /opt/OV/bin/OpC/opcle (13535) is running
Monitor Agent /opt/OV/bin/OpC/opcmona (13536) is running
Message Interceptor /opt/OV/bin/OpC/opcmsgi (13537) is running
Subagent 12:
Performance Agent /opt/OV/bin/coda -redirect (13538) is running
Subagent 13:
Service Discovery Agent /opt/OV/bin/OvSvcDiscAgt /f -start (13539) is running

Wednesday, December 05, 2007

iptables - первый опыт :)

Раннее всегда работал с ipfw, но сегодня пришлось активировать и "подкрутить" iptables в linux (CentOS). Нужно было оставить открытым порт только для одного ip-адреса. Почитав в Инете и поманив сделал так.
Активировал через Х-ы через Security.
Правила описываются в /etc/sysconfig/iptables
После добавления (изменения) правила в этот файлик
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5555 -s 10.27.115.223 -j ACCEPT
которое идентично стандартным за исключением того, что я добавил ip-адрес источника через ключ -s ('-s 10.27.115.223')
срестартил iptables
# /etc/init.d/iptables restart
Для проверки правил полезная командочка
# iptables-save > /root/firewall.rules2

Wednesday, November 07, 2007

Включить XDMCP в Linux

в /etc/X11/gdm/gdm.conf
[xdmcp]
Enable=true
#init 5
Ели не проканало, то посмотри Red Hat ноуледжбэйз

Принципалы (principals), защищаемые (securables), разрешения (permissions) в SQL Server 2005

Принципалы (principals) — это те объекты, которым в SQL Server 2005 можно предоставлять разрешения. Они могут быть как индивидуальными (например, учетная запись), так и групповыми (например, роль).

Securables (дословно "защищаемые") — еще одна важнейшая концепция системы безопасности SQL Server 2005. Это все, на что в SQL Server 2005 можно назначить разрешения.

Терминология системы безопасности SQL Server 2005, принципалы (principals), защищаемые (securables), разрешения (permissions)

Tuesday, October 23, 2007

первый бэкап и ресторе в MS SQL 2005 :)

Недавно меня неофициально отправили на MS-курс "Внедрение MS SQL 2005" (на работе читали курсы для разработчиков двумя этажами выше). И похоже, что мои впечатления от "первого" знакомства MS SQL 2005 выше ожидаемых. Хотя конечно, чтобы серьезно заниматься им, надо потратить немало времени и усилий. Но мне нужно знать и представлять "куда кликнуть" когда наш DBA от MS SQL будет в отпуске или отъезде.
Мне понравились доступность и понятность материалов из текнет и онлайн-букса.
Пример скрипта, который я нашел и который возможно нужен будет частенько для создания копии БД для разработчиков.

-- Скрипт создает копию БД (formonitor) из ее бэкапа под новым именем (DB_test) и новым расположением md- и ld-файлов БД.

USE master

GO
-- DROP DATABASE DB_test
RESTORE DATABASE DB_test
FROM disk='D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\formonitor.bak'
WITH RECOVERY ,
MOVE 'Formonitor' TO 'D:\Test_DB\DB_test.mdf',
MOVE 'Formonitor_log' TO 'D:\Test_DB\DB_test.ldf'
--
/*
Чтобы узнать логические имена файлов 'Formonitor' и 'Formonitor_log' из файла бэкапа formonitor.bak нужно сказать:
RESTORE FILELISTONLY
FROM disk='D:\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\formonitor.bak'
*/