<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Karlesnine</title>
	<atom:link href="http://www.karlesnine.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.karlesnine.com</link>
	<description>Run linux since 1994</description>
	<lastBuildDate>Fri, 14 Jun 2013 09:34:39 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>SEO et Adminsys : Les mains en commun dans le moteur des sites web</title>
		<link>http://www.karlesnine.com/2012/06/12/seo-et-adminsys-les-mains-en-commun-dans-le-moteur-des-sites-web/</link>
		<comments>http://www.karlesnine.com/2012/06/12/seo-et-adminsys-les-mains-en-commun-dans-le-moteur-des-sites-web/#comments</comments>
		<pubDate>Tue, 12 Jun 2012 07:59:54 +0000</pubDate>
		<dc:creator>karles</dc:creator>
				<category><![CDATA[Actu Pro]]></category>
		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://www.karlesnine.com/?p=1021</guid>
		<description><![CDATA[Partant de notre expérience en commun chez Prisma Presse, Virgine Clève (SEO) et moi même (Admin Sys) avons eu l&#8217;idée de réalisé une présentation pour le SMX Paris 2012. Sur l&#8217;idée de Virginie nous nous somme attaché à montrer et démontrer la synergie nécessaire entre un Expert SEO et l&#8217;Administrateur sytème tout deux en charge d&#8217;un <a href='http://www.karlesnine.com/2012/06/12/seo-et-adminsys-les-mains-en-commun-dans-le-moteur-des-sites-web/'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>Partant de notre expérience en commun chez<a title="Prisma Presse" href="http://www.prisma-presse.com/" target="_blank"> Prisma Presse</a>, <a title="Café référencement la pause SEO qu'il vous faut" href="http://www.cafe-referencement.com/" target="_blank">Virgine Clève (SEO)</a> et moi même (Admin Sys) avons eu l&rsquo;idée de réalisé une présentation pour le <a title="SMX Paris France 2012" href="http://smxfrance.com/" target="_blank">SMX Paris 2012</a>. Sur l&rsquo;idée de Virginie nous nous somme attaché à montrer et démontrer la synergie nécessaire entre un Expert SEO et l&rsquo;Administrateur sytème tout deux en charge d&rsquo;un site web.</p>
<p>Bonne lecture.</p>
<div id="__ss_13281351" style="width: 595px;"><strong style="display: block; margin: 12px 0 4px;"><a title="SEO et Administration Système : les mains dans le moteur" href="http://www.slideshare.net/ovronaz/seo-et-administration-systme-les-mains-dans-le-moteur" target="_blank">SEO et Administration Système : les mains dans le moteur</a></strong> <iframe style="border: 1px solid #CCC; border-width: 1px 1px 0;" src="http://www.slideshare.net/slideshow/embed_code/13281351?rel=0" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="595" height="497"></iframe></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/thecroaker/death-by-powerpoint" target="_blank">PowerPoint</a> from <a href="http://www.slideshare.net/ovronaz" target="_blank">Virginie Clève</a></div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.karlesnine.com/2012/06/12/seo-et-adminsys-les-mains-en-commun-dans-le-moteur-des-sites-web/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Zabbix monitoring de disques sous Ubuntu 12.04  LTS The Precise Pangolin</title>
		<link>http://www.karlesnine.com/2012/05/11/zabbix-monitoring-de-disques-sous-ubuntu-12-04-lts-the-precise-pangolin/</link>
		<comments>http://www.karlesnine.com/2012/05/11/zabbix-monitoring-de-disques-sous-ubuntu-12-04-lts-the-precise-pangolin/#comments</comments>
		<pubDate>Fri, 11 May 2012 10:30:17 +0000</pubDate>
		<dc:creator>karles</dc:creator>
				<category><![CDATA[Technologic]]></category>
		<category><![CDATA[diskstats]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[zabbix]]></category>

		<guid isPermaLink="false">http://www.karlesnine.com/?p=1000</guid>
		<description><![CDATA[Objectif : Monitorer avec zabbix (1.8.11) l&#8217;utilisation faite des disques de serveur linux sous Ubuntu 12.04  LTS The Precise Pangolin. Ceci en utilisant la mécanique de sender / trapper de zabbix très économe en trafic réseau et qui limite la charge pour le zabbix server. Zabbix_Sender : Sur le GitHub zabbix-trapper vous trouverez Le script de crontab zabbix-trapper-cron <a href='http://www.karlesnine.com/2012/05/11/zabbix-monitoring-de-disques-sous-ubuntu-12-04-lts-the-precise-pangolin/'>[...]</a>]]></description>
				<content:encoded><![CDATA[<h2>Objectif :</h2>
<p>Monitorer avec zabbix (1.8.11) l&rsquo;utilisation faite des disques de serveur linux sous Ubuntu 12.04  LTS The Precise Pangolin. Ceci en utilisant la mécanique de sender / trapper de zabbix très économe en trafic réseau et qui limite la charge pour le zabbix server.</p>
<h2>Zabbix_Sender :</h2>
<p>Sur le <a title="zabbix-trapper-disk" href="https://github.com/karlesnine/zabbix-trapper">GitHub zabbix-trapper</a> vous trouverez</p>
<ol>
<li>Le script de crontab <em>zabbix-trapper-cron</em> à placer dans <em>/etc/cron.d</em></li>
<li>Le script de génération des valeurs <em>diskio.trapper.s</em>h à placer dans <em>/usr/local/zabbix/plugins</em></li>
<li>Le template (items, trigger, graph) zabbix à importer <em>zabbix_Disk_template.xml</em></li>
<li>Les template des screens <em>zabbix_screens_export.xml</em></li>
</ol>
<div id="attachment_1002" class="wp-caption alignnone" style="width: 1049px"><a href="http://www.karlesnine.com/2012/05/11/zabbix-monitoring-de-disques-sous-ubuntu-12-04-lts-the-precise-pangolin/capture-decran-2012-05-11-a-12-15-15/" rel="attachment wp-att-1002"><img class="size-full wp-image-1002" title="Screen Zabbix Disk" src="http://www.karlesnine.com/wp-content/uploads/2012/05/Capture-d’écran-2012-05-11-à-12.15.15.png" alt="Screen Zabbix Disque avec % utilisation et nb ops/sec" width="1039" height="585" /></a><p class="wp-caption-text">Graph Zabbix Disque avec % utilisation et nb ops/sec</p></div>
<p>&nbsp;</p>
<h2>Particularité du monitoring du % d&rsquo;utilisation IO</h2>
<p>L&rsquo;item <strong>custom.vfs.dev.io.ms</strong> enregistre le champs 11 de <a title="I/O statistics fields" href="http://www.kernel.org/doc/Documentation/iostats.txt">/proc/diskstats</a> . Ce champs enregistre le nombre de Milliseconde passé chaque seconde que le disque passe faire des IO. Si le champs est à 1000 ms c&rsquo;est que pendant 1 seconde il à passé 100% de son temps à réalisé des IO, donc qu&rsquo;il n&rsquo;est pas capable d&rsquo;effectué plus de travail.</p>
<p>L&rsquo;item <strong>custom.vfs.dev.io.ms</strong> est configuré avec un multiple de 0,1 ce qui revient à le diviser par 10. Ainsi 900ms/sec d&rsquo;IO devient 90% d&rsquo;utilisation des capacités de lecture écriture du disque.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlesnine.com/2012/05/11/zabbix-monitoring-de-disques-sous-ubuntu-12-04-lts-the-precise-pangolin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zabbix 1.8.11 sur Ubuntu 12.04 avec partitionnement sql des tables</title>
		<link>http://www.karlesnine.com/2012/04/25/zabbix-1-8-11-sur-ubuntu-12-04-avec-partitionnement-sql-des-tables/</link>
		<comments>http://www.karlesnine.com/2012/04/25/zabbix-1-8-11-sur-ubuntu-12-04-avec-partitionnement-sql-des-tables/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 12:10:45 +0000</pubDate>
		<dc:creator>karles</dc:creator>
				<category><![CDATA[Technologic]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[aws]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[Mod_deflate]]></category>
		<category><![CDATA[Mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zabbix]]></category>

		<guid isPermaLink="false">http://www.karlesnine.com/?p=938</guid>
		<description><![CDATA[Architecture Zabbix 1.8.11 de deux serveurs sous Ubuntu 12.04 &#160; Dans un environnement cloud amazon comment configurer un zabbix server avec le frontend php et un serveur mysql 5.5 avec le partitionnement des tables sur une ubuntu 12.04 afin d&#8217;avoir une architecture scalable et taillée pour de très forte charge. En effet les problèmes de <a href='http://www.karlesnine.com/2012/04/25/zabbix-1-8-11-sur-ubuntu-12-04-avec-partitionnement-sql-des-tables/'>[...]</a>]]></description>
				<content:encoded><![CDATA[<h1>Architecture Zabbix 1.8.11 de deux serveurs sous Ubuntu 12.04</h1>
<p>&nbsp;</p>
<p><strong>Dans un environnement cloud amazon comment configurer un zabbix server avec le frontend php et un serveur mysql 5.5 avec le partitionnement des tables sur une ubuntu 12.04 afin d&rsquo;avoir une architecture scalable et taillée pour de très forte charge. En effet les problèmes de performance de Zabbix sont liés à la base de données. Cela devient  visible seulement quand vous avez des milliers d&rsquo;items. Cela conduit à devoir gérer des tables énormes et il  deviens impossible de faire le ménage dans l&rsquo;historique (<a title="zabbix housekeeper" href="http://zabbixzone.com/zabbix/history-tables-housekeeper/" target="_blank">Housekeeper</a>) ou des sauvegarde, d&rsquo;ou le partitionnement de table en solution.</strong></p>
<p>&nbsp;</p>
<h2>A Lire avant tout :</h2>
<p style="padding-left: 30px;"><a title="Cas zabbix Iscool" href="http://www.zabbix.com/forum/showthread.php?t=22090" target="_blank">Cas Iscool Entertainement</a><br />
<a title="Partitionning Table for Zabbix" href="http://zabbixzone.com/zabbix/partitioning-tables/" target="_blank">Optimisation partitioning-tables</a><br />
<a title="Procédures stockées mysql pour tables mensuelles zabbix" href="http://pastebin.com/nY8WG9Fr" target="_blank">Procédures Mysql stockée pour tables mensuelles</a><br />
<a title="Tips Mysql pour Zabbix" href="http://zabbixzone.com/zabbix/mysql-performance-tips-for-zabbix/" target="_blank">Tips Mysql pour zabbix</a><br />
<a title="Architecture Zabbix distribuée et scalable" href="http://www.zabbix.com/documentation/1.8/manual/distributed_monitoring" target="_blank">Architecture Zabbix distribuée et scalable</a></p>
<h2></h2>
<p>&nbsp;</p>
<h2>Notice</h2>
<p>Ceci n&rsquo;est que le copier coller de notes de travail et en aucun cas une procédure à suivre au pied de la lettre en copiant collant.</p>
<p>&nbsp;</p>
<h2>Security group</h2>
<p>Créer un security group monitor et les règles de sécurité.</p>
<pre class="wp-code-highlight prettyprint">ec2-add-group --region eu-west-1 Monitor l -d &quot;Monitor&quot;
ec2-authorize Monitor -P tcp -p 22 -s 0.0.0.0/0
ec2-authorize Monitor -P tcp -p 3306 -u 727387230542 -o &quot;Monitor&quot;
ec2-authorize Monitor -P tcp -p 10050 -u 727387230542 -o &quot;Monitor&quot;
ec2-authorize Monitor -P udp -p 10050 -u 727387230542 -o &quot;Monitor&quot;
ec2-authorize Monitor -P tcp -p 80 -u 727387230542 -o &quot;Monitor&quot;</pre>
<p>Verifier le résultat de la configuration du security group.</p>
<pre class="wp-code-highlight prettyprint">ec2-describe-group Monitor
GROUP   sg-907282e6     727387230542    Monitor Monitor
PERMISSION      727387230542    Monitor ALLOWS  tcp     22      22      FROM    CIDR    0.0.0.0/0       ingress
PERMISSION      727387230542    Monitor ALLOWS  tcp     3306    3306    FROM    USER    727387230542    NAME Monitor    ID sg-907282e6  ingress
PERMISSION      727387230542    Monitor ALLOWS  tcp     10050   10050   FROM    USER    727387230542    NAME Monitor    ID sg-907282e6  ingress
PERMISSION      727387230542    Monitor ALLOWS  udp     10050   10050   FROM    USER    727387230542    NAME Monitor    ID sg-907282e6  ingress
PERMISSION      727387230542    Monitor ALLOWS  tcp     80      80      FROM    CIDR    0.0.0.0/0       ingress</pre>
<p>&nbsp;</p>
<h2>Mysql</h2>
<p>Lancer une instance m1.large avec un maximum de disque éphémère.</p>
<pre class="wp-code-highlight prettyprint">ec2-run-instances ami-094c666d -k infra-live -g Monitor -b &quot;sdb=ephemeral0&quot; -b &quot;sdc=ephemeral1&quot; -b &quot;sdd=ephemeral2&quot; -b &quot;sde=ephemeral3&quot; -t m1.large -z eu-west-1b -d hostname=monitorweb1</pre>
<p>Vérifier le résultat du lancement d&rsquo;instance</p>
<pre class="wp-code-highlight prettyprint">ec2-describe-instances i-abda3ce2
RESERVATION     r-a2da48eb      727387230542    Monitor
INSTANCE        i-abda3ce2      ami-094c666d    ec2-176-34-201-131.eu-west-1.compute.amazonaws.com      ip-10-51-45-30.eu-west-1.compute.internal       running infra-live      0               m1.large 2012-04-16T15:18:19+0000        eu-west-1b      aki-62695816                    monitoring-disabled     176.34.201.130  10.51.45.30                     ebs                             paravirtual      xen             sg-907282e6     default
BLOCKDEVICE     /dev/sda1       vol-be4aeed6    2012-04-16T15:18:34.000Z        true
TAG     instance        i-abda3ce2      Name    monitor-sql1</pre>
<p>Ajouter un tag name à cette instance</p>
<pre class="wp-code-highlight prettyprint">ec2-create-tags i-abda3ce2 --tag Name=monitorweb1</pre>
<p>Logger vous sur l&rsquo;instance et installer Mysql 5.5 qui est disponible dans les dépôts ubuntu 12.04 . Bien noté l&rsquo;ID et le mots de passe du super-administrateur mysql</p>
<pre class="wp-code-highlight prettyprint">apt-get install mysq-server maatkit</pre>
<p>Modifier l&rsquo;installation de Mysql</p>
<pre class="wp-code-highlight prettyprint">/etc/init.d/mysql stop
cd /mnt/
rm -r lost+found/
mkdir mysql-bin
chown mysql.mysql mysql-bin/</pre>
<p>Effacer la base mysql par defaut</p>
<pre class="wp-code-highlight prettyprint">cd /var/lib/mysql
rm -r *</pre>
<p>Reconfigurer */etc/fstab* pour avoir /var/lib/mysql sur le disque non utilisé */dev/xvdc*</p>
<pre class="wp-code-highlight prettyprint">LABEL=cloudimg-rootfs	/	 ext4	defaults	0 0
/dev/xvdb	/mnt	auto	rw,suid,dev,exec,auto,nouser,async,noatime,nodiratime	0	2
/dev/xvdc	/var/lib/mysql	auto	rw,suid,dev,exec,auto,nouser,async,noatime,nodiratime	0	2</pre>
<p>Monter le filesytem</p>
<pre class="wp-code-highlight prettyprint">mount -a</pre>
<p>Réinstaller la DB par défaut de Mysql</p>
<pre class="wp-code-highlight prettyprint">cd /var/lib/mysql/
mysql_install_db</pre>
<p>Configurer mysql avec deux fichiers:<br />
Le premier */etc/mysql/conf.d/zabbix.cnf* avec la configuration de Mysql standalone server spéciale m1.large</p>
<pre class="wp-code-highlight prettyprint">[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
user            = mysql
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr

skip-external-locking

# network binding
bind-address = 0.0.0.0
skip-name-resolve

# charsets
# Deprecated default-character-set=utf8
# Deprecated default-collation=utf8
collation_server=utf8_general_ci
character_set_server=utf8
skip-character-set-client-handshake

# paths
datadir                         = /var/lib/mysql
tmpdir                          = /tmp

# network
connect_timeout                 = 5
interactive_timeout             = 30
max_allowed_packet              = 1M
max_connect_errors              = 4096
max_connections                 = 1200
wait_timeout                    = 30

# limits
max_heap_table_size             =
table_open_cache                = 8192
thread_cache_size               = 512

#$processorcount * 2
thread_concurrency              = 4
tmp_table_size                  =

# logs
log_error                       = /var/log/mysql/mysql-error.log
log_queries_not_using_indexes   = 1
log_warnings                    = 1
long_query_time                 = 1
slow_query_log                  = 1
slow_query_log_file             = /var/log/mysql/mysql-slow.log

# query cache
query_cache_limit               = 1M
query_cache_size                = 128M
query_cache_type                = 1

# buffers
key_buffer_size                 = 32M
read_buffer_size                =
sort_buffer_size                = 1M

# other stuff
event_scheduler                 = 1

# InnoDB storage engine config options
default-storage-engine  = InnoDB
innodb_additional_mem_pool_size = 128M
innodb_autoextend_increment     = 64
innodb_buffer_pool_size         = 3000M
innodb_data_home_dir            = /var/lib/mysql
innodb_data_file_path           = ibdata1:128M:autoextend
innodb_file_per_table           = 1
innodb_flush_log_at_trx_commit  = 2
innodb_flush_method             = O_DIRECT
innodb_io_capacity              = 300
innodb_log_buffer_size          =
innodb_log_file_size            = 128M
innodb_log_files_in_group       =
innodb_mirrored_log_groups      = 1
innodb_max_dirty_pages_pct      = 45
innodb_status_file              = 0
innodb_support_xa               = 1
innodb_thread_concurrency       = 8

# experimental
#innodb_stats_update_need_lock  =</pre>
<p>Le second */etc/mysql/conf.d/zabbix.local.cnf* avec la configuration de Mysql pour sa réplication Master/Slave</p>
<pre class="wp-code-highlight prettyprint">##################################################################
# Ce fichier contient les parametres specifiques a la replication
[mysqld]

# conf commune a tous les slaves
log_bin=/mnt/mysql-bin/mysql-bin.log
expire_logs_days=10
max_binlog_size=100M
sync_binlog=0
log-slave-updates
replicate-same-server-id=0
auto_increment_increment=2
slave-skip-errors=1053
binlog_format=MIXED

# fix pb relay-log dependant du hostname
relay-log=mysqld-relay-bin
relay-log-index=mysqld-relay-bin.index

# Conf specifique a ce slave en particulier

# chaque replicat doit avoir un server-id unique (1,2,3,4...)
server-id=1
# role de l&#039;offset: un replicat ne cree que des ids pairs, et l&#039;autre que des ids impairs
# ceci afin d&#039;eviter au maximum les conflits
# valeurs possibles: 2 (ids pairs)  1 (ids impairs)
auto_increment_offset=1
# tout replicat autre que le master actif doit etre en read-only
# autrement dit, seul le master actif peut traiter les ecritures
# read-only</pre>
<p>Installer le paquet mysql de zabbix</p>
<pre class="wp-code-highlight prettyprint">zabbix-server-mysql</pre>
<p>Créé une AMI par sécurité</p>
<pre class="wp-code-highlight prettyprint">ec2-create-image -n Mysql55-U1204-m1large -d Mysql55-U1204--m1large-v1 i-abda3ce2</pre>
<p>&nbsp;</p>
<h2>Zabbix Server et FrontEnd php</h2>
<p>Lancer une instance c1.medium</p>
<pre class="wp-code-highlight prettyprint">ec2-run-instances  ami-094c666d -k infra-live -g Monitor -b &quot;sdb=ephemeral0&quot; -b &quot;sdc=ephemeral1&quot; -b &quot;sdd=ephemeral2&quot; -b &quot;sde=ephemeral3&quot; -t c1.medium -z eu-west-1b -d hostname=monitorweb1

RESERVATION     r-e06df1a9      727387230542    Monitor
INSTANCE        i-eb00e3a3      ami-094c666d                    pending infra-live      0               c1.medium       2012-04-18T13:13:06+0000        eu-west-1b      aki-62695816            monitoring-disabled                                      ebs                                     paravirtual     xen             sg-907282e6     default</pre>
<p>Donner un tag name à cette instance</p>
<pre class="wp-code-highlight prettyprint">ec2-create-tags i-eb00e3a3 --tag Name=monitor-web1</pre>
<p>Installer les paquets suivant</p>
<pre class="wp-code-highlight prettyprint">apt-get instal libapache2-mod-php5 php-apc php5 php5-cli php5-common php5-gd php5-mysql zabbix-frontend-php zabbix-server-mysql  bsd-mailx</pre>
<p>Puis Deinstaller les paquets *mysql-server* qu&rsquo;un dépendance à forcer à l&rsquo;installation.</p>
<pre class="wp-code-highlight prettyprint">apt-get remove --purge mysql-server*</pre>
<p>Configurer Apache avec les modules suivent. Les autres ne sont pas nécéssaire.</p>
<pre class="wp-code-highlight prettyprint">auth_basic.load
authz_default.load
authz_host.load
deflate.conf
deflate.load
php5.conf
php5.load
status.conf
status.load</pre>
<p>Modifier le lancement du module deflate de apache<br />
Pour une compression légère sur tout ce qui est texte ceci sur l&rsquo;exemple du fichier */etc/apache2/mods-enabled/deflate.conf* suivant</p>
<pre class="wp-code-highlight prettyprint">          AddOutputFilterByType DEFLATE text/html text/plain text/xml
          AddOutputFilterByType DEFLATE text/xml
          AddOutputFilterByType DEFLATE text/css
          AddOutputFilterByType DEFLATE text/javascript
          AddOutputFilterByType DEFLATE text/html
          AddOutputFilterByType DEFLATE text/plain
          AddOutputFilterByType DEFLATE application/xml
          AddOutputFilterByType DEFLATE application/xhtml+xml
          AddOutputFilterByType DEFLATE application/rss+xml
          AddOutputFilterByType DEFLATE application/javascript
          AddOutputFilterByType DEFLATE application/x-javascript

          DeflateCompressionLevel 3</pre>
<p>Configurer APC sur le modèle du fichier */etc/php5/conf.d/apc.ini* suivant</p>
<pre class="wp-code-highlight prettyprint">extension=apc.so
apc.enabled=&quot;1&quot;
apc.shm_size=&quot;64M&quot;
apc.num_files_hint=&quot;100&quot;
apc.user_entries_hint=&quot;0&quot;
apc.ttl=&quot;0&quot;
apc.gc_ttl=&quot;3601&quot;
apc.stat=&quot;1&quot;
apc.slam_defense=&quot;0&quot;
apc.write_lock=&quot;1&quot;</pre>
<p>Configurer frontend php pour utiliser le serveur mysql précédement créé sur le modèle du fichier */etc/zabbix/dbconfig.php* suivant</p>
<pre class="wp-code-highlight prettyprint"></pre>
<p>Configurer zabbix serveur pour utiliser le serveur mysql précédement créé sur le modèle du fichier */etc/zabbix/zabbix_server.conf* suivant</p>
<pre class="wp-code-highlight prettyprint">LogFile=/var/log/zabbix-server/zabbix_server.log
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=monitor-sql1.DOMAINENAME.COM
DBName=zabbix
DBUser=zabbix
DBPassword=password
AlertScriptsPath=/etc/zabbix/alert.d/
FpingLocation=/usr/bin/fping
Fping6Location=/usr/bin/fping6</pre>
<h2></h2>
<p>&nbsp;</p>
<h2>Configurer la base de donnée avec le partitionnement des tables</h2>
<p>Configurer les droits et password de root mysql même si c&rsquo;est déjà fait</p>
<pre class="wp-code-highlight prettyprint">GRANT ALL PRIVILEGES ON *.* TO &#039;root&#039;@&#039;%&#039; IDENTIFIED BY &#039;password&#039;;
GRANT ALL PRIVILEGES ON *.* TO &#039;root&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password&#039;;
FLUSH PRIVILEGES;</pre>
<p>Créer et configurer les droits et password de l&rsquo;utilisation zabbix</p>
<pre class="wp-code-highlight prettyprint">GRANT ALL PRIVILEGES ON *.* TO &#039;zabbix&#039;@&#039;%&#039; IDENTIFIED BY &#039;password&#039;;
GRANT ALL PRIVILEGES ON *.* TO &#039;zabbix&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password&#039;;
FLUSH PRIVILEGES;</pre>
<p>Modification de la DB zabbix</p>
<pre class="wp-code-highlight prettyprint">ALTER TABLE acknowledges DROP PRIMARY KEY, ADD KEY acknowledgedid (acknowledgeid);
ALTER TABLE alerts DROP PRIMARY KEY, ADD KEY alertid (alertid);
ALTER TABLE auditlog DROP PRIMARY KEY, ADD KEY auditid (auditid);
ALTER TABLE events DROP PRIMARY KEY, ADD KEY eventid (eventid);
ALTER TABLE service_alarms DROP PRIMARY KEY, ADD KEY servicealarmid (servicealarmid);
ALTER TABLE history_log DROP PRIMARY KEY, ADD PRIMARY KEY (itemid,id,clock);
ALTER TABLE history_log DROP KEY history_log_2;
ALTER TABLE history_text DROP PRIMARY KEY, ADD PRIMARY KEY (itemid,id,clock);
ALTER TABLE history_text DROP KEY history_text_2;</pre>
<p>Partitionner les tables journalières de la DB zabbix</p>
<pre class="wp-code-highlight prettyprint">ALTER TABLE events PARTITION BY RANGE( clock ) (
PARTITION p201204 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2012-05-01 00:00:00&quot;)));
ALTER TABLE acknowledges PARTITION BY RANGE( clock ) (
PARTITION p201204 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2012-05-01 00:00:00&quot;)));
ALTER TABLE alerts PARTITION BY RANGE( clock ) (
PARTITION p201204 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2012-05-01 00:00:00&quot;)));
ALTER TABLE auditlog PARTITION BY RANGE( clock ) (
PARTITION p201204 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2012-05-01 00:00:00&quot;)));
ALTER TABLE service_alarms PARTITION BY RANGE( clock ) (
PARTITION p201204 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2012-05-01 00:00:00&quot;)));
ALTER TABLE trends PARTITION BY RANGE( clock ) (
PARTITION p201204 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2012-05-01 00:00:00&quot;)));
ALTER TABLE trends_uint PARTITION BY RANGE( clock ) (
PARTITION p201204 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2012-05-01 00:00:00&quot;)));</pre>
<p>Partitionner les tables mensuelles de la DB zabbix</p>
<pre class="wp-code-highlight prettyprint">ALTER TABLE history_uint PARTITION BY RANGE( clock ) (
PARTITION p20110419 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2011-04-20 00:00:00&quot;)));
ALTER TABLE history PARTITION BY RANGE( clock ) (
PARTITION p20110419 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2011-04-20 00:00:00&quot;)));
ALTER TABLE history_log PARTITION BY RANGE( clock ) (
PARTITION p20110419 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2011-04-20 00:00:00&quot;)));
ALTER TABLE history_str PARTITION BY RANGE( clock ) (
PARTITION p20110419 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2011-04-20 00:00:00&quot;)));
ALTER TABLE history_str PARTITION BY RANGE( clock ) (
PARTITION p20110419 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2011-04-20 00:00:00&quot;)));
ALTER TABLE history_text PARTITION BY RANGE( clock ) (
PARTITION p20110419 VALUES LESS THAN (UNIX_TIMESTAMP(&quot;2011-04-20 00:00:00&quot;)));</pre>
<p>Enregistrer les procedures stockées<br />
Procédure pour tables quotidiennes</p>
<pre class="wp-code-highlight prettyprint">/**************************************************************
  MySQL Auto Partitioning Procedure for Zabbix 1.8

http://zabbixzone.com/zabbix/partitioning-tables/

  Author:  Ricardo Santos (rsantos at gmail.com)
  Version: 20110518
**************************************************************/
DELIMITER //
DROP PROCEDURE IF EXISTS `zabbix`.`create_zabbix_partitions` //
CREATE PROCEDURE `zabbix`.`create_zabbix_partitions` ()
BEGIN
	CALL zabbix.create_next_partitions(&quot;zabbix&quot;,&quot;history&quot;);
	CALL zabbix.create_next_partitions(&quot;zabbix&quot;,&quot;history_log&quot;);
	CALL zabbix.create_next_partitions(&quot;zabbix&quot;,&quot;history_str&quot;);
	CALL zabbix.create_next_partitions(&quot;zabbix&quot;,&quot;history_text&quot;);
	CALL zabbix.create_next_partitions(&quot;zabbix&quot;,&quot;history_uint&quot;);
	CALL zabbix.drop_old_partitions(&quot;zabbix&quot;,&quot;history&quot;);
	CALL zabbix.drop_old_partitions(&quot;zabbix&quot;,&quot;history_log&quot;);
	CALL zabbix.drop_old_partitions(&quot;zabbix&quot;,&quot;history_str&quot;);
	CALL zabbix.drop_old_partitions(&quot;zabbix&quot;,&quot;history_text&quot;);
	CALL zabbix.drop_old_partitions(&quot;zabbix&quot;,&quot;history_uint&quot;);
END //
DROP PROCEDURE IF EXISTS `zabbix`.`create_next_partitions` //
CREATE PROCEDURE `zabbix`.`create_next_partitions` (SCHEMANAME varchar(64), TABLENAME varchar(64))
BEGIN
	DECLARE NEXTCLOCK timestamp;
	DECLARE PARTITIONNAME varchar(16);
	DECLARE CLOCK int;
	SET @totaldays = 7;
	SET @i = 1;
	createloop: LOOP
		SET NEXTCLOCK = DATE_ADD(NOW(),INTERVAL @i DAY);
		SET PARTITIONNAME = DATE_FORMAT( NEXTCLOCK, &#039;p%Y%m%d&#039; );
		SET CLOCK = UNIX_TIMESTAMP(DATE_FORMAT(DATE_ADD( NEXTCLOCK ,INTERVAL 1 DAY),&#039;%Y-%m-%d 00:00:00&#039;));
		CALL zabbix.create_partition( SCHEMANAME, TABLENAME, PARTITIONNAME, CLOCK );
		SET @i=@i+1;
		IF @i &amp;gt; @totaldays THEN
			LEAVE createloop;
		END IF;
	END LOOP;
END //
DROP PROCEDURE IF EXISTS `zabbix`.`drop_old_partitions` //
CREATE PROCEDURE `zabbix`.`drop_old_partitions` (SCHEMANAME varchar(64), TABLENAME varchar(64))
BEGIN
	DECLARE OLDCLOCK timestamp;
	DECLARE PARTITIONNAME varchar(16);
	DECLARE CLOCK int;
	SET @mindays = 3;
	SET @maxdays = @mindays+4;
	SET @i = @maxdays;
	droploop: LOOP
		SET OLDCLOCK = DATE_SUB(NOW(),INTERVAL @i DAY);
		SET PARTITIONNAME = DATE_FORMAT( OLDCLOCK, &#039;p%Y%m%d&#039; );
		CALL zabbix.drop_partition( SCHEMANAME, TABLENAME, PARTITIONNAME );
		SET @i=@i-1;
		IF @i</pre>
<p>Procédure pour tables mensuelles</p>
<pre class="wp-code-highlight prettyprint">DELIMITER //
DROP PROCEDURE IF EXISTS `zabbix`.`create_zabbix_monthly_partitions` //
CREATE PROCEDURE `zabbix`.`create_zabbix_monthly_partitions` ()
BEGIN
CALL zabbix.create_next_monthly_partitions(&quot;zabbix&quot;,&quot;acknowledges&quot;);
CALL zabbix.create_next_monthly_partitions(&quot;zabbix&quot;,&quot;alerts&quot;);
CALL zabbix.create_next_monthly_partitions(&quot;zabbix&quot;,&quot;auditlog&quot;);
CALL zabbix.create_next_monthly_partitions(&quot;zabbix&quot;,&quot;events&quot;);
CALL zabbix.create_next_monthly_partitions(&quot;zabbix&quot;,&quot;service_alarms&quot;);
CALL zabbix.create_next_monthly_partitions(&quot;zabbix&quot;,&quot;trends&quot;);
CALL zabbix.create_next_monthly_partitions(&quot;zabbix&quot;,&quot;trends_uint&quot;);
CALL zabbix.drop_old_monthly_partitions(&quot;zabbix&quot;,&quot;acknowledges&quot;);
CALL zabbix.drop_old_monthly_partitions(&quot;zabbix&quot;,&quot;alerts&quot;);
CALL zabbix.drop_old_monthly_partitions(&quot;zabbix&quot;,&quot;auditlog&quot;);
CALL zabbix.drop_old_monthly_partitions(&quot;zabbix&quot;,&quot;events&quot;);
CALL zabbix.drop_old_monthly_partitions(&quot;zabbix&quot;,&quot;service_alarms&quot;);
CALL zabbix.drop_old_monthly_partitions(&quot;zabbix&quot;,&quot;trends&quot;);
CALL zabbix.drop_old_monthly_partitions(&quot;zabbix&quot;,&quot;trends_uint&quot;);
END //
DROP PROCEDURE IF EXISTS `zabbix`.`create_next_monthly_partitions` //
CREATE PROCEDURE `zabbix`.`create_next_monthly_partitions` (SCHEMANAME varchar(64), TABLENAME varchar(64))
BEGIN
DECLARE NEXTCLOCK timestamp;
DECLARE PARTITIONNAME varchar(16);
DECLARE CLOCK int;
SET @totalmonths = 3;
SET @i = 1;
createloop: LOOP
SET NEXTCLOCK = DATE_ADD(NOW(),INTERVAL @i MONTH);
SET PARTITIONNAME = DATE_FORMAT( NEXTCLOCK, &#039;p%Y%m&#039; );
SET CLOCK = UNIX_TIMESTAMP(DATE_FORMAT(DATE_ADD( NEXTCLOCK ,INTERVAL 1 MONTH),&#039;%Y-%m-01 00:00:00&#039;));
CALL zabbix.create_partition( SCHEMANAME, TABLENAME, PARTITIONNAME, CLOCK );
SET @i=@i+1;
IF @i &amp;gt; @totalmonths THEN
LEAVE createloop;
END IF;
END LOOP;
END //
DROP PROCEDURE IF EXISTS `zabbix`.`drop_old_monthly_partitions` //
CREATE PROCEDURE `zabbix`.`drop_old_monthly_partitions` (SCHEMANAME varchar(64), TABLENAME varchar(64))
BEGIN
DECLARE OLDCLOCK timestamp;
DECLARE PARTITIONNAME varchar(16);
DECLARE CLOCK int;
SET @minmonths = 12;
SET @maxmonths = @minmonths+3;
SET @i = @maxmonths;
droploop: LOOP
SET OLDCLOCK = DATE_SUB(NOW(),INTERVAL @i MONTH);
SET PARTITIONNAME = DATE_FORMAT( OLDCLOCK, &#039;p%Y%m&#039; );
CALL zabbix.drop_partition( SCHEMANAME, TABLENAME, PARTITIONNAME );
SET @i=@i-1;
IF @i</pre>
<p>Vérifier le bon enregistrements des procedures stockées</p>
<pre class="wp-code-highlight prettyprint">select name from mysql.proc;
+----------------------------------+
| name                             |
+----------------------------------+
| create_next_monthly_partitions   |
| create_next_partitions           |
| create_partition                 |
| create_zabbix_monthly_partitions |
| create_zabbix_partitions         |
| drop_old_monthly_partitions      |
| drop_old_partitions              |
| drop_partition                   |
+----------------------------------+</pre>
<p>Créé les cron journalié et mensuel de changement de table<br />
Sur monitor-web1</p>
<pre class="wp-code-highlight prettyprint">mkdir -p /etc/zabbix/cron.d</pre>
<p>Créer le fichier */etc/zabbix/cron.d/daily-housekeeping.sh*</p>
<pre class="wp-code-highlight prettyprint">#!/bin/bash

MAILTO=karles@mimesis-republic.com
tmpfile=/tmp/daily-housekeeping$$

date &amp;gt;$tmpfile
/usr/bin/mysql --skip-column-names -B -h localhost -u zabbix -pzabbix zabbix -e &quot;CALL create_zabbix_partitions();&quot; &amp;gt;&amp;gt;$tmpfile 2&amp;gt;&amp;amp;1
/usr/bin/mail -s &quot;[Zabbix] Daily MySql Partition Housekeepingg&quot; $MAILTO</pre>
<p>Créer le fichier */etc/cron.daily/zabbix-daily-housekeeping*</p>
<pre class="wp-code-highlight prettyprint">#!/bin/bash
/etc/zabbix/cron.d/daily-housekeeping.sh</pre>
<p>Créer le fichier */etc/zabbix/cron.d/monthly-housekeeping.sh*</p>
<pre class="wp-code-highlight prettyprint">#!/bin/bash

MAILTO=karles@mimesis-republic.com
tmpfile=/tmp/monthly-housekeeping$$

date &amp;gt;$tmpfile
/usr/bin/mysql --skip-column-names -B -h monitor-sql1.DOMAINENAME.COM -u zabbix -ppass zabbix -e &quot;CALL create_zabbix_monthly_partitions();&quot; &amp;gt;&amp;gt;$tmpfile 2&amp;gt;&amp;amp;1
/usr//bin/mail -s &quot;[Zabbix] Monthly MySql Partition Housekeeping&quot; $MAILTO</pre>
<p>Créer le fichier */etc/cron.monthly/zabbix-monthly-housekeeping*</p>
<pre class="wp-code-highlight prettyprint">#!/bin/bash
/etc/zabbix/cron.d/monthly-housekeeping.sh</pre>
<p>Lancer les deux cron manuellement pour finir l&rsquo;installation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlesnine.com/2012/04/25/zabbix-1-8-11-sur-ubuntu-12-04-avec-partitionnement-sql-des-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress et bbclone</title>
		<link>http://www.karlesnine.com/2012/04/24/worpress-et-bbclone/</link>
		<comments>http://www.karlesnine.com/2012/04/24/worpress-et-bbclone/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 12:20:07 +0000</pubDate>
		<dc:creator>karles</dc:creator>
				<category><![CDATA[Memo]]></category>
		<category><![CDATA[bbclone]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.karlesnine.com/?p=930</guid>
		<description><![CDATA[BBCLONE est un outil de statistique web, un compteur mais en mieux. Pour son intégration dans WordPress c&#8217;est ultra simple. Si votre répertoire bbclone est au même niveau que votre page index.php de wordpress ajoutez les quatres lignes suivantes juste avant le ?&#62; final define(&#039;_BBC_PAGE_NAME&#039;, $_SERVER[&#039;REQUEST_URI&#039;]); define(&#039;_BBCLONE_DIR&#039;, &#039;bbclone/&#039;); define(&#039;COUNTER&#039;, _BBCLONE_DIR . &#039;mark_page.php&#039;); if (is_readable(COUNTER)) include_once(COUNTER); Ceci <a href='http://www.karlesnine.com/2012/04/24/worpress-et-bbclone/'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p><a title="bbclone" href="http://bbclone.de/">BBCLONE</a> est un outil de <a title="bbclone chez Framasoft" href="http://www.framasoft.net/article1892.html" target="_blank">statistique web, un compteur mais en mieux</a>.</p>
<p>Pour son intégration dans <a title="wordpress" href="http://wordpress.org/download/" target="_blank">WordPress</a> c&rsquo;est ultra simple. Si votre répertoire <strong>bbclone</strong> est au même niveau que votre page index.php de wordpress ajoutez les quatres lignes suivantes juste avant le ?&gt; final</p>
<pre class="wp-code-highlight prettyprint">define(&#039;_BBC_PAGE_NAME&#039;, $_SERVER[&#039;REQUEST_URI&#039;]);
define(&#039;_BBCLONE_DIR&#039;, &#039;bbclone/&#039;);
define(&#039;COUNTER&#039;, _BBCLONE_DIR . &#039;mark_page.php&#039;);
if (is_readable(COUNTER)) include_once(COUNTER);</pre>
<p>Ceci fonctionne parfaitement avec mon installation à base de <strong>nginx</strong>. Le note ici car j&rsquo;en ai un peu marre de perdre ce bout de code à chaque mise à jour de <strong>wordpress</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlesnine.com/2012/04/24/worpress-et-bbclone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imprimante HP B209a et Mac OSX Lion 10.7</title>
		<link>http://www.karlesnine.com/2012/04/23/imprimante-hp-b209a-et-mac-osx-lion-10-7/</link>
		<comments>http://www.karlesnine.com/2012/04/23/imprimante-hp-b209a-et-mac-osx-lion-10-7/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 15:09:01 +0000</pubDate>
		<dc:creator>karles</dc:creator>
				<category><![CDATA[Technologic]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.karlesnine.com/?p=918</guid>
		<description><![CDATA[J&#8217;ai une imprimante HP photosmart B209a depuis 2010. Je n&#8217;ai plus le carton, ni la doc, bref classique. Cette imprimante à la particularité d&#8217;être wifi et jusqu&#8217;à maintenant je l&#8217;utilisais via un câble USB. J&#8217;ai eu besoin de la reconfigurer et surtout de la passer en wifi et donc de modifier la paramètre réseau. Pour les personnes <a href='http://www.karlesnine.com/2012/04/23/imprimante-hp-b209a-et-mac-osx-lion-10-7/'>[...]</a>]]></description>
				<content:encoded><![CDATA[<p>J&rsquo;ai une <strong>imprimante</strong> <a title="HP Photosmart Plus All-in-One Printer - B209a" href="http://h10025.www1.hp.com/ewfrf/wc/product?cc=us&amp;lc=en&amp;dlc=en&amp;tmp_geoLoc=true&amp;product=3777182" target="_blank">HP photosmart B209a</a> depuis 2010. Je n&rsquo;ai plus le carton, ni la doc, bref classique. Cette imprimante à la particularité d&rsquo;être <strong>wifi</strong> et jusqu&rsquo;à maintenant je l&rsquo;utilisais via un câble USB. J&rsquo;ai eu besoin de la reconfigurer et surtout de la passer en wifi et donc de modifier la paramètre réseau.</p>
<p>Pour les personnes que ça intéresse voici la manipulation pour saisir le SSID et la clef wifi dans les paramètres de l&rsquo;imprimante <strong>B209a </strong>depuis un poste sous  <strong>Mac OSX Lion 10.7</strong></p>
<p>&nbsp;</p>
<p>La manipulation est la suivante :</p>
<ol>
<li>Restaurer les paramètres par défaut de l&rsquo;imprimante</li>
<li>Connecter en wifi sur le réseau adhoc diffusé par l&rsquo;imprimante</li>
<li>Une fois connecté en wifi avec l&rsquo;imprimante et bien imprimer la configuration réseau de l&rsquo;imp pour connaitre l&rsquo;IP de l&rsquo;imprimante.</li>
<li>Sous  Safari, se connecter sur l&rsquo;IP de l&rsquo;imprimante  elle possède un serveur web embarqué</li>
<li>Sous cette interface graphique, saisir les paramètres corrects de votre réseau Wifi (SSID et clef de cryptage)</li>
</ol>
<p>Attention, lorsque l&rsquo;on valide l&rsquo;écran, l&rsquo;on perd la communication avec l&rsquo;imprimante car le réesau adhoc a disparu pour être remplacé par celui de votre point d&rsquo;accès.</p>
<ol>
<li>Ce connecter sur son réseau</li>
<li>Retrouver l&rsquo;imprimante<strong> HP photosmart B209a</strong> via &laquo;&nbsp;préférence système -&gt; imprimante et scanner -&gt; etc..&nbsp;&raquo;</li>
</ol>
<div></div>
<div>Et voila</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karlesnine.com/2012/04/23/imprimante-hp-b209a-et-mac-osx-lion-10-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
