Category Archive Logging

ByPatrick

MySql, wordpress et reverse engineering

Bonjour,
aujourd’hui j’ai essayé de retrouver où se trouve les valeurs de “image mise en avant” et “etiquette” de wordpress dans la base de données.

Pour ce faire, j’ai installé wordpress sur un de mes serveurs MySql car la fonction que j’ai besoin d’utiliser n’est pas disponible pour des raisons de sécurite sur une instance partagée.

Ensuite, j’ai lancé les commandes sql suivantes :

SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
select * mysql.general_log

Puis j’ai fait les modifications via la page web.

Puis pour ne pas risquer de saturer la db, j’ai désactive

SET GLOBAL general_log = 'OFF';
TRUNCATE table mysql.general_log

Alors évidement, si on truncate la table avant de l’avoir copié, on perd ces informations, mais ca permet de laisser une situation propre.

La commande suivante est très utile aussi car elle donne les requêtes sql en cours d’éxécution :

SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, LEFT(INFO, 51200) AS Info FROM information_schema.PROCESSLIST;

Et pour terminer, la commande “explain select * from ..” permet de comprendre comment optimiser la requête en ajoutant par exemple des index.

Et pour finir, grâce à cette commande, on peut garder un log des query qui prennent des ressources du serveur pour pouvoir ce concentrer sur l’optimisation de celles-ci

SET GLOBAL slow_query_log= 'ON';

Merci a
https://stackoverflow.com/questions/14670075/clear-mysql-general-log-table-is-it-safe
https://stackoverflow.com/questions/650238/how-to-show-the-last-queries-executed-on-mysql

ByPatrick

Graylog et event viewer de windows

Ben, maintenant que j’ai un beau service qui centralise mes logs, autant ajouter les events viewer de windows :

Télécharger et installer ceci sur les serveurs qui doivent renvoyer leurs logs : https://nxlog.co/system/files/products/files/348/nxlog-ce-2.10.2150.msi

Ajouter un peu de confirguration :C:\Program Files (x86)\nxlog\conf\nxlog.conf

<Extension gelf>
	Module	xm_gelf
</Extension>

<Input win>
	Module	im_msvistalog
	Query <QueryList><Query Id="0"><Select Path="Application">*</Select></Query></QueryList>
	Exec $Hostname = hostname();
</Input>

<Input in_sys>
Module im_msvistalog
Query <QueryList><Query Id="0"><Select Path="System">*</Select></Query></QueryList>
Exec $Hostname = hostname();
</Input>

<Output graylog>
Module	om_tcp
Host	192.168.1.119
Port	12201
OutputType	GELF_TCP
</Output>

<Route graylog_route>
Path	win => graylog
</Route>

<Route graylog_route>
Path	in_sys => graylog
</Route>

Il me donne un message d’erreur au début : “WARNING Due to a limitation in the Windows EventLog subsystem, a query cannot contain more than 256 sources.” c’est pour ça que j’ai du ajouter les

<QueryList><Query Id="0"><Select Path="Application">*</Select></Query></QueryList>

(merci à https://nxlog.co/question/4644/nxlog-service-keep-stopping-every-few-days)

ByPatrick

Graylog en docker et c#

Aujourd’hui, j’ai recréé un container docker avec graylog :

docker run --name mongo -d mongo:4.2

docker run --name elasticsearch -e "http.host=0.0.0.0" -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -d docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2

docker run --name graylog4 --link mongo --link elasticsearch -p 9000:9000 -p 12201:12201 -p 1514:1514 -e GRAYLOG_HTTP_EXTERNAL_URI="http://192.168.1.119:9000/" -d graylog/graylog:4.0

J’ai ajouté un input

Puis j’ai créé une application C# avec visual studio, ajouté quelques nuggets

Un petit bout de code :

private void button3_Click(object sender, EventArgs e)
{
var configuration = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();        
Logger logger = new Serilog.LoggerConfiguration()
                        .ReadFrom.Configuration(configuration)
            .CreateLogger();

        while (true)
        {
            var line = "coucou";

            logger.Warning("some warning: {test}", line);
            logger.Information("some warning: {test}", line);
        }
    }

Et voilà, j’ai ajouté mes premières informations dans graylog

Sans oublier le fichier appsettings.json

ByPatrick

Installation et maintenance de PiHole + unbound

Récemment, nous avons amélioré notre installation de Pihole grâce à l’article suivant : https://discourse.pi-hole.net/t/local-dns-records/31772/16

D’abord on installe un nouveau serveur dns sur le Pi :

sudo apt install unbound

Une petite mise à jour de la configuration :

sudo vi /etc/unbound/unbound.conf.d/pi-hole.conf
# Ensure privacy of local IP ranges
private-address: 192.168.0.0/16

Puis on ajoute manuellement des records dns si besoin:

sudo vi /etc/pihole/custom.list
pihole restartdns

Ne pas oublier de dire à Pihole d’utiliser unbound, sinon, ça ne sert pas à grand chose

Pour la mise à jour de pihole lui même, rien de plus simple. Une fois connecté en ssh au raspberry, il nous suffit de taper la ligne de commande :

pihole -up

Personnellement, je préférais le design des graphiques de la version précédente, toujours une affaire de goût.

Pour une installation de pihole :

wget -O basic-install.sh https://install.pi-hole.net
sudo bash basic-install.sh