{"id":2535,"date":"2015-04-11T19:17:06","date_gmt":"2015-04-11T18:17:06","guid":{"rendered":"https:\/\/beufa.net\/?p=2535"},"modified":"2015-04-11T19:18:22","modified_gmt":"2015-04-11T18:18:22","slug":"rsyslog-deriver-les-messages-syslog-dans-un-fichier-particulier","status":"publish","type":"post","link":"https:\/\/beufa.net\/fr\/blog\/rsyslog-deriver-les-messages-syslog-dans-un-fichier-particulier\/","title":{"rendered":"Rsyslog : D\u00e9river les messages syslog dans un fichier particulier"},"content":{"rendered":"<p>Depuis pas mal de temps, je me casse les dents sur la d\u00e9rivation des logs envoy\u00e9s au d\u00e9mon rsyslog, utilis\u00e9s pas d\u00e9faut dans Ubuntu. En effet, j&#8217;ai install\u00e9 un tvheadend sur mon serveur \/ media center pour avoir \u00e0 la TV dans tous mes XBMC\/Kodi, et le mode debug est un peu trop verbeux \u00e0 mon go\u00fbt.<\/p>\n<p>La configuration de base de rsyslog est fait par d\u00e9faut dans <em>&#8220;\/etc\/rsyslog.d\/50-default.conf&#8221;.<\/em> Pour qu&#8217;un fichier particulier soit trait\u00e9 en premier, comme dans Apache, il faut en cr\u00e9er un nouveau.<\/p>\n<p>Par exemple, j&#8217;ai cr\u00e9er les fichiers suivants :<\/p>\n<pre class=\"brush:shell\">[19:54 user@home ~] &gt; ll \/etc\/rsyslog.d\/*\r\n-rw-r--r-- 1 root root  483 Apr  9 21:40 \/etc\/rsyslog.d\/10-tvheadend.conf\r\n-rw-r--r-- 1 root root  465 Apr  9 21:40 \/etc\/rsyslog.d\/11-dhcpd.conf\r\n-rw-r--r-- 1 root root  469 Apr  9 21:50 \/etc\/rsyslog.d\/12-postfix.conf\r\n-rw-r--r-- 1 root root  311 Mar 17  2012 \/etc\/rsyslog.d\/20-ufw.conf\r\n-rw-r--r-- 1 root root 1.7K Apr  9 21:52 \/etc\/rsyslog.d\/50-default.conf\r\n<\/pre>\n<p>Ces fichiers contiennent les d\u00e9rivations suivantes :<\/p>\n<pre class=\"brush:shell\">[19:54 user@home ~] &gt; cat \/etc\/rsyslog.d\/10-tvheadend.conf\r\n# Put tvheadend log in a specific log file\r\nif $programname == 'tvheadend' then \/var\/log\/tvheadend\/tvheadend.log\r\n&amp; stop\r\n\r\n[19:54 user@home ~] &gt; cat \/etc\/rsyslog.d\/11-dhcpd.conf\r\n# Put isc-dhcpd-server log in a specific log file\r\nif $programname == 'tvheadend' then \/var\/log\/dhpcd.log\r\n&amp; stop\r\n\r\n[19:54 user@home ~] &gt; cat \/etc\/rsyslog.d\/12-postfix.conf\r\n# Put postfix log in a specific log file\r\nif $programname == 'tvheadend' then \/var\/log\/postfix.log\r\n&amp; stop<\/pre>\n<p>Il faut ensuite simplement reloader\/restarter le service rsyslog pour prendre en compte ces changements, et v\u00e9rifiez que vos fichiers sont bien cr\u00e9es (il peut subsister des probl\u00e8mes de droits, surtout lorsque vous avez cr\u00e9er un dossier sp\u00e9cifique comme dans le cas de tvheadend).<\/p>\n<p>A noter qu&#8217;il existe beaucoup d&#8217;options pour filtrer par <em>programname<\/em>, <em>severity<\/em>, ou de mani\u00e8re plus puissante par <em>regex<\/em>. Dans le cas ou vous souhaiteriez faire ceci, <a title=\"Rsyslog : Configuring Filters\" href=\"http:\/\/www.rsyslog.com\/doc\/rsyslog_conf_filter.html\" target=\"_blank\">RFTM <\/a>!<\/p>\n<p>Ensuite, il ne faut oublier de configurer la rotation des logs (dans mon cas, j&#8217;ajoute un restart du process, car je n&#8217;ai pas de &#8216;<em>status<\/em>&#8216; pour le d\u00e9mon tvheadend dans mon<em> init.d<\/em>) :<\/p>\n<pre class=\"brush:shell\">[20:05 user@home ~] &gt; cat \/etc\/logrotate.d\/tvheadend\r\n\/var\/log\/tvheadend\/*.log {\r\n        daily\r\n        missingok\r\n        rotate 7\r\n        compress\r\n        delaycompress\r\n        notifempty\r\n        create 640 syslog adm\r\n        sharedscripts\r\n        postrotate\r\n                \/etc\/init.d\/tvheadend restart\r\n        endscript\r\n}\r\n<\/pre>\n<p>Puis forcer la rotation (-f) ou d\u00e9buguer (-d)<\/p>\n<pre class=\"brush:shell\">[20:09 user@home ~] &gt; sudo logrotate -d \/etc\/logrotate.conf\r\nreading config file \/etc\/logrotate.conf\r\n[...]\r\nreading config file tvheadend\r\n[...]\r\n\r\nrotating pattern: \/var\/log\/tvheadend\/*.log  after 1 days (7 rotations)\r\nempty log files are not rotated, old logs are removed\r\nswitching euid to 0 and egid to 104\r\nconsidering log \/var\/log\/tvheadend\/tvheadend.log\r\n  log does not need rotating\r\nnot running postrotate script, since no logs were rotated\r\nswitching euid to 0 and egid to 0\r\n<\/pre>\n<p>Vous trouvez alors la rotation des logs :<\/p>\n<pre class=\"brush:shell\">[20:11 user@home ~] &gt; ll \/var\/log\/tvheadend\/\r\n \r\n-rw-r----- 1 syslog adm  12K Apr 11 20:11 tvheadend.log\r\n-rw-r----- 1 syslog adm  48K Apr 11 09:50 tvheadend.log.1\r\n<\/pre>\n<p>Bon amusement !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Depuis pas mal de temps, je me casse les dents sur la d\u00e9rivation des logs envoy\u00e9s au d\u00e9mon rsyslog, utilis\u00e9s pas d\u00e9faut dans Ubuntu. En&#8230;<\/p>\n<div class=\"more-link-wrapper\"><a class=\"more-link\" href=\"https:\/\/beufa.net\/fr\/blog\/rsyslog-deriver-les-messages-syslog-dans-un-fichier-particulier\/\">Continue reading<span class=\"screen-reader-text\">Rsyslog : D\u00e9river les messages syslog dans un fichier particulier<\/span><\/a><\/div>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[115,109,110,112,111],"class_list":["post-2535","post","type-post","status-publish","format-standard","hentry","category-linux","tag-linux","tag-rsyslog","tag-syslog","tag-tvheadend","tag-ubuntu","entry"],"_links":{"self":[{"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/posts\/2535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/comments?post=2535"}],"version-history":[{"count":4,"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/posts\/2535\/revisions"}],"predecessor-version":[{"id":2539,"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/posts\/2535\/revisions\/2539"}],"wp:attachment":[{"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/media?parent=2535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/categories?post=2535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/beufa.net\/fr\/wp-json\/wp\/v2\/tags?post=2535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}