Назад | Перейти на главную страницу

Debian - Установка LSI MegaRAID SNMP AGENT

Моя ОС:

Distributor ID: Debian
Description:    Debian GNU/Linux 8.9 (jessie)
Release:        8.9
Codename:       jessie

Мне удалось установить MegaRaid Storage Manager, и я могу использовать StorCli.

# dpkg --install lib-utils2_1.00-9_all.deb without errors
# dpkg --install megaraid-storage-manager_17.05.00-3_all.deb without errors

# ./storcli64 /c0 /vall show
Controller = 0
Status = Success
Description = None


Virtual Drives :
==============

---------------------------------------------------------------
DG/VD TYPE  State Access Consist Cache Cac sCC       Size Name
---------------------------------------------------------------
0/0   RAID1 Optl  RW     Yes     RWBD  -   ON  278.464 GB OS
1/1   RAID5 Optl  RW     Yes     RWBD  -   ON    8.180 TB DATA
---------------------------------------------------------------

Но теперь я бы установил агент snmp своего RAID-контроллера. Я использовал rpm и конвертировал его в deb с помощью alien:

# dpkg -i sas-snmp_17.05-3_amd64.deb
(Lecture de la base de données... 54953 fichiers et répertoires déjà installés.)
Préparation du dépaquetage de sas-snmp_17.05-3_amd64.deb ...
Dépaquetage de sas-snmp (17.05-3) ...
Paramétrage de sas-snmp (17.05-3) ...
Starting snmpd
/etc/lsi_mrdsnmp/sas/install: 182: [: 0: unexpected operator
[ ok ] Restarting snmpd (via systemctl): snmpd.service.
Starting LSI SNMP Agent
/etc/lsi_mrdsnmp/sas/install: 210: [: 0: unexpected operator
Starting LSI SNMP Agent:
/etc/init.d/lsi_mrdsnmpd: 153: /etc/init.d/lsi_mrdsnmpd: daemon: not found

Я редактировал /etc/init.d/lsi_mrdsnmpd чтобы решить проблему с командой демона, заменив ее на:

....
${agent} -c ${SNMPDCONF}
#daemon ${agent} -c ${SNMPDCONF}
....

Более того, я добавил символьную ссылку для решения проблемы библиотеки:

/usr/lib/libsas_objects.so -> /usr/lib64/libsas_objects.so.1

Но теперь, когда я пытаюсь запустить службу:

# ./lsi_mrdsnmpd start
Starting LSI SNMP Agent:
LSI MegaRAID SNMP Agent Ver 3.18.0.5 (Oct 30th, 2012) Started

У меня ничего нет в команде ps. И если я проверю журнал системного журнала, у меня будет:

Oct 16 16:43:45 Server1 MegaRAID SNMP AGENT: Error in getting Shared Memory(lsi_mrdsnmpmain)

Если я попытаюсь выполнить вручную команду:

# ./lsi_mrdsnmpagent -c /etc/snmp/snmpd.conf
LSI MegaRAID SNMP Agent Ver 3.18.0.5 (Oct 30th, 2012) Started

Тот же результат в системном журнале.

Я пытался strace начало службы: Вот конец строки:

16:46:54 fstat(3, {st_dev=makedev(8, 1), st_ino=8128118, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=2945, st_atime=2017/10/16-09:39:01, st_mtime=2017/05/02-08:24:20, st_ctime=2017/05/02-08:24:20}) = 0
16:46:54 fstat(3, {st_dev=makedev(8, 1), st_ino=8128118, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=8, st_size=2945, st_atime=2017/10/16-09:39:01, st_mtime=2017/05/02-08:24:20, st_ctime=2017/05/02-08:24:20}) = 0
16:46:54 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f712d916000
16:46:54 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\f\0\0\0\f\0\0\0\0\0\..., 4096) = 2945
16:46:54 lseek(3, -1863, SEEK_CUR)      = 1082
16:46:54 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\r\0\0\0\r\0\0\0\0\0\0\0\270\0\0\0\r\0\0\0\37\377\377\377\377k\310J\213\377\377\377\377\221`P\213\377\377\377\377\233Gx\360\377\377\377\377\233\327,p\377\377\377\377\234\274\221p\377\377\377\377\235\300H\360\377\377\377\377\236\211\376p\377\377\377\377\2..."..., 4096) = 1863
16:46:54 close(3)                       = 0
16:46:54 munmap(0x7f712d916000, 4096)   = 0
16:46:54 socket(PF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 3
16:46:54 connect(3, {sa_family=AF_LOCAL, sun_path="/dev/log"}, 110) = 0
16:46:54 sendto(3, "<30>Oct 16 16:46:54 LSI MegaRAID SNMP Agent: Agent Ver 3.18.0.5 (Oct 30th, 2012) Started\n", 89, MSG_NOSIGNAL, NULL, 0) = 89
16:46:54 clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f712d90ba10) = 4715
16:46:54 exit_group(0)                  = ?
16:46:54 +++ exited with 0 +++

Но теперь я заблокирован, и я не знаю, как решить эту проблему, вы знаете об этом?

Спасибо,

РЕДАКТИРОВАТЬ

Что ж, сегодня сервис запущен:

root     16777     1  0 16:35 ?        00:00:00 /etc/lsi_mrdsnmp/lsi_mrdsnmpagent -c /etc/snmp/snmpd.conf
root     16778 16777  0 16:35 ?        00:00:00 /etc/lsi_mrdsnmp/lsi_mrdsnmpagent -c /etc/snmp/snmpd.conf

youpi !!!

Но ... когда я пытаюсь передать OID агенту через lsi_mrdsnmpmain, он ничего не возвращает, а код результата равен 1:

# /usr/sbin/lsi_mrdsnmpmain -g .1.3.6.1.4.1.3582.5.1.1.0
# echo $?
1

Я использую службу lsi_mrdsnmpagent и могу читать это каждый раз, когда пробую lsi_mrdsnmpmain:

futex(0x7f61f938e000, FUTEX_WAIT, 0, NULL) = 0
write(1, "####INSIDE GET#####\n", 20)   = -1 EBADF (Bad file descriptor)
futex(0x7f61f938e020, FUTEX_WAKE, 1)    = 1
futex(0x7f61f938e000, FUTEX_WAIT, 0, NULL) = 0
write(1, "####INSIDE GET#####\n", 20)   = -1 EBADF (Bad file descriptor)
futex(0x7f61f938e020, FUTEX_WAKE, 1)    = 1
futex(0x7f61f938e000, FUTEX_WAIT, 0, NULL) = 0
write(1, "####INSIDE GET#####\n", 20)   = -1 EBADF (Bad file descriptor)
futex(0x7f61f938e020, FUTEX_WAKE, 1)    = 1
futex(0x7f61f938e000, FUTEX_WAIT, 0, NULL

И если я использую lsi_mrdsnmpmain, я получаю:

15:41:36 rt_sigaction(SIGRT_1, {0x7fe5257a8a40, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7fe5257b1890}, NULL, 8) = 0
15:41:36 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
15:41:36 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
15:41:36 shmget(0x884b9, 1024, 0600)    = 131072
15:41:36 shmat(131072, 0, 0)            = 0x7fe525bdc000
15:41:36 futex(0x7fe525bdc000, FUTEX_WAKE, 1) = 1
15:41:36 futex(0x7fe525bdc020, FUTEX_WAIT, 0, NULL) = 0
15:41:36 shmdt(0x7fe525bdc000)          = 0
15:41:36 exit_group(1)                  = ?
15:41:36 +++ exited with 1 +++

Если у вас есть идеи о EBADF (плохой дескриптор файла) или идеи для доступа к mib ...

Спасибо !

Хорошо!! Теперь работает отлично. Чтобы ответить на мой вопрос, ошибка lsimrdsnmpmain исходила от пользователя, запустившего процесс snmpd. В моей конфигурации демон snmpd запускался от имени пользователя snmp, а демон lsimrdsnmpagent запускался от имени пользователя root. Я изменил пользователю демон snmpd в /etc/defaults/snmpd.conf, и теперь эти два процесса могут очень хорошо взаимодействовать друг с другом.

Я надеюсь, что этот ответ поможет другим людям, которые хотят запускать инструменты lsi megaraid sas на debian.