PDA

Voir la version complète : Changement du dossier de log Asterisk



PerfectD
01/08/2014, 15h55
Bonjour,

Je viens vous demander un peu d'aide car je rencontre actuellement un soucis.
Voilà actuellement tout mes logs d'asterisk sont stocker dans /var/log/asterisk/, j'aimerai pouvoir les déplacé dans /home/log/asterisk/, du coup j'ai modifié la directive suivante dans le fichier asterisk.conf :

astlogdir => /home/log/asterisk

Le problème c'est que j'ai beau redémarrer mon asterisk avec un /etc/init.d/asterisk restart, la directive ne s'applique pas et les logs se placent toujours dans /var/log/asterisk/. Même si je supprime le dossier asterisk, il se recrée toujours dans le /var/...

Auriez vous une idée du problème ?

Je vous en remercie d'avance

fastm3
01/08/2014, 22h51
Regarde les logs...:wink:
Redemare ton asterisk et cherche deja quelque chose comme cela dans le fichier full:


[2014-08-01 22:22:34] VERBOSE[32296] pbx.c: == Setting global variable 'ASTLOGDIR' to '/home/log/asterisk'

ou en cli :

core show settings

Tu valideras deja que le setting est bien pris en compte ou correctement setté.
Verifie aussi que le user asterisk peut ecrire dans le rep des logs ( droits/owner du rep que tu as créés) meme si generalement asterisk va coredumper si il ne peut pas ecrire.

Peut etre aussi betement un pb dans ton asterisk.conf. Mets le ici.
Indique aussi ta version d'asterisk si les verifications n'ont pas décelé le pb.
Fait attention a faire tes tests avec le user asterisk. Si tu le fais avec root, asterisk pourrais ne plus pouvoir ecrire apres dans les fichiers sans que tu resetttes les droits des fichiers.

Cheers !
Francois.

PerfectD
04/08/2014, 09h35
Merci pour votre réponse,

lorsque je fait un Core Show Settings, ma directive n'est effectivement pas prise en compte :


Directories
-------------
Configuration file:
Configuration directory: /etc/asterisk
Module directory: /usr/lib/asterisk/modules
Spool directory: /var/spool/asterisk
Log directory: /var/log/asterisk
Run/Sockets directory: /var/run/asterisk
PID file: /var/run/asterisk/asterisk.pid
VarLib directory: /var/lib/asterisk
Data directory: /var/lib/asterisk
ASTDB: /var/lib/asterisk/astdb
IAX2 Keys directory: /var/lib/asterisk/keys
AGI Scripts directory: /var/lib/asterisk/agi-bin


Du coup voici mon fichier Asterisk :


[directories](!)
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /var/lib/asterisk
astdbdir => /var/lib/asterisk
astkeydir => /var/lib/asterisk
astdatadir => /var/lib/asterisk
astagidir => /var/lib/asterisk/agi-bin
astspooldir => /var/spool/asterisk
astrundir => /var/run/asterisk
astlogdir => /home/log/asterisk

[options]
verbose = 55
;debug = 3
;alwaysfork = yes ; Same as -F at startup.
;nofork = yes ; Same as -f at startup.
;quiet = yes ; Same as -q at startup.
;timestamp = yes ; Same as -T at startup.
;execincludes = yes ; Support #exec in config files.
;console = yes ; Run as console (same as -c at startup).
;highpriority = yes ; Run realtime priority (same as -p at
; startup).
;initcrypto = yes ; Initialize crypto keys (same as -i at
; startup).
;nocolor = yes ; Disable console colors.
;dontwarn = yes ; Disable some warnings.
;dumpcore = yes ; Dump core on crash (same as -g at startup).
;languageprefix = yes ; Use the new sound prefix path syntax.
;internal_timing = yes
;systemname = my_system_name ; Prefix uniqueid with a system name for
; Global uniqueness issues.
;autosystemname = yes ; Automatically set systemname to hostname,
; uses 'localhost' on failure, or systemname if
; set.
;maxcalls = 10 ; Maximum amount of calls allowed.
;maxload = 0.9 ; Asterisk stops accepting new calls if the
; load average exceed this limit.
;maxfiles = 1000 ; Maximum amount of openfiles.
;minmemfree = 1 ; In MBs, Asterisk stops accepting new calls if
; the amount of free memory falls below this
; watermark.
;cache_record_files = yes ; Cache recorded sound files to another
; directory during recording.
;record_cache_dir = /tmp ; Specify cache directory (used in conjunction
; with cache_record_files).
;transmit_silence = yes ; Transmit silence while a channel is in a
; waiting state, a recording only state, or
; when DTMF is being generated. Note that the
; silence internally is generated in raw signed
; linear format. This means that it must be
; transcoded into the native format of the
; channel before it can be sent to the device.
; It is for this reason that this is optional,
; as it may result in requiring a temporary
; codec translation path for a channel that may
; not otherwise require one.
;transcode_via_sln = yes ; Build transcode paths via SLINEAR, instead of
; directly.
;runuser = asterisk ; The user to run as.
;rungroup = asterisk ; The group to run as.
;lightbackground = yes ; If your terminal is set for a light-colored
; background.
;forceblackbackground = yes ; Force the background of the terminal to be
; black, in order for terminal colors to show
; up properly.
;defaultlanguage = en ; Default language
documentation_language = en_US ; Set the language you want documentation
; displayed in. Value is in the same format as
; locale names.
;hideconnect = yes ; Hide messages displayed when a remote console
; connects and disconnects.
;lockconfdir = no ; Protect the directory containing the
; configuration files (/etc/asterisk) with a
; lock.

; Changing the following lines may compromise your security.
;[files]
;astctlpermissions = 0660
;astctlowner = root
;astctlgroup = apache
;astctl = asterisk.ctl

[compat]
pbx_realtime=1.6
res_agi=1.6
app_set=1.6

Par contre toutes mes modifs je les fait en root, mais j'ai l'impression qu'Asterisk utilise l'utilisateur Root pour créer ses logs car lorsque je supprime le dossier "asterisk" dans /var/log/asterisk et que je redémarre Asterisk, il me recrée un dossier "asterisk" avec les droits root :


drwxr-xr-x 2 root root 4,0K 4 août 09:33 asterisk

Est ce normal finalement ?

fastm3
04/08/2014, 12h50
Enleve le (!) , c'est pour les templates, je pense que ca doit etre ton pb.

Par habitude, je ne fais jamais tourner Asterisk en root sauf pour des tests ponctuels. Il est preférable que ton script de demarrage d'asterisk utilise effectivement un autre utilisateur que root. Simple bon sens question sécurité.
Maintenant, ca n'est pas lié à ton probleme tant que justement , tu ne retournes pas à l'usage d'un autre user.
Regarde /usr/sbin/safe_asterisk qui est preferable pour lancer asterisk. C'est un script fourni avec Asterisk qui evolue regulierement. Si tu utilses une distrib, elle gere probablement deja ca pour toi correctement.
En prod, il faut vraiment eviter de faire tourner asterisk en root sauf si tu sais ce que tu fais et si tu as une bonne raison pour cela.
Fastm3.

PerfectD
08/08/2014, 16h05
Merci beaucoup fastm3 c’était bien ça! :)

Et je vais regarder si j'ai vraiment besoin d'être en root...

Merci pour ton aide et tes conseils.