This is a viewer only at the moment see the article on how this works.
To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk
This is a preview from the server running through my markdig pipeline
Seq est une application qui vous permet de visualiser et d'analyser les journaux. C'est un excellent outil de débogage et de surveillance de votre application. Dans ce post, je vais couvrir comment j'ai configuré Seq pour enregistrer mon application ASP.NET Core. Ne peut jamais avoir trop de tableaux de bord :)
Seq vient dans quelques saveurs. Vous pouvez soit utiliser la version cloud ou vous-même l'héberger. J'ai choisi de m'héberger comme je voulais garder mes registres privés.
Tout d'abord, j'ai commencé par visiter le site web de Seq et trouver le Docker installe les instructions.
Pour courir localement, vous devez d'abord obtenir un mot de passe hashed. Vous pouvez le faire en exécutant la commande suivante :
echo '<password>' | docker run --rm -i datalust/seq config hash
Pour l'exécuter localement, vous pouvez utiliser la commande suivante :
docker run --name seq -d --restart unless-stopped -e ACCEPT_EULA=Y -e SEQ_FIRSTRUN_ADMINPASSWORDHASH=<hashfromabove> -v C:\seq:/data -p 5443:443 -p 45341:45341 -p 5341:5341 -p 82:80 datalust/seq
Sur ma machine locale Ubuntu j'ai fait ceci en un sh script:
#!/bin/bash
PH=$(echo 'Abc1234!' | docker run --rm -i datalust/seq config hash)
mkdir -p /mnt/seq
chmod 777 /mnt/seq
docker run \
--name seq \
-d \
--restart unless-stopped \
-e ACCEPT_EULA=Y \
-e SEQ_FIRSTRUN_ADMINPASSWORDHASH="$PH" \
-v /mnt/seq:/data \
-p 5443:443 \
-p 45341:45341 \
-p 5341:5341 \
-p 82:80 \
datalust/seq
Alors
chmod +x seq.sh
./seq.sh
Ça va vous faire courir, puis aller à http://localhost:82
/ http://<machineip>:82
pour voir votre suite d'installation (le mot de passe admin par défaut est celui que vous avez saisi pour
J'ai ajouté la suite de mon fichier de composition Docker comme suit:
seq:
image: datalust/seq
container_name: seq
restart: unless-stopped
environment:
ACCEPT_EULA: "Y"
SEQ_FIRSTRUN_ADMINPASSWORDHASH: ${SEQ_DEFAULT_HASH}
volumes:
- /mnt/seq:/data
networks:
- app_network
Notez que j'ai un répertoire appelé /mnt/seq
(pour les fenêtres, utilisez un chemin de fenêtres). C'est là que les journaux seront stockés.
J'ai aussi une SEQ_DEFAULT_HASH
variable d'environnement qui est le mot de passe hashed pour l'utilisateur admin dans mon fichier.env.
Comme j'utilise Sérilog Pour mon enregistrement, c'est assez facile d'installer Seq. Il a même des docs sur la façon de faire cela Ici..
Fondamentalement, vous ajoutez simplement l'évier à votre projet:
dotnet add package Serilog.Sinks.Seq
Je préfère utiliser appsettings.json
pour ma config donc j'ai juste la configuration'standard' dans mon Program.cs
:
builder.Host.UseSerilog((context, configuration) =>
{
configuration.ReadFrom.Configuration(context.Configuration);
Serilog.Debugging.SelfLog.Enable(Console.Error);
Console.WriteLine($"Serilog Minimum Level: {configuration.MinimumLevel.ToString()}");
});
Puis dans mon `appsettings.json' j'ai cette configuration
"Serilog": {
"Using": ["Serilog.Sinks.Console", "Serilog.Sinks.File", "Serilog.Sinks.Seq"],
"MinimumLevel": "Warning",
"WriteTo": [
{
"Name": "Seq",
"Args":
{
"serverUrl": "http://seq:5341",
"apiKey": ""
}
},
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "logs/applog-.txt",
"rollingInterval": "Day"
}
}
],
"Enrich": ["FromLogContext", "WithMachineName"],
"Properties": {
"ApplicationName": "mostlylucid"
}
}
Vous verrez que j'ai un serverUrl
des http://seq:5341
C'est ce que j'ai dit. C'est parce que j'ai la suite courir dans un conteneur de docker appelé seq
et c'est sur le port 5341
C'est ce que j'ai dit. Si vous l'utilisez localement, vous pouvez l'utiliser. http://localhost:5341
.
J'utilise aussi la clé API afin de pouvoir utiliser la clé pour spécifier dynamiquement le niveau de log (vous pouvez définir une clé pour n'accepter qu'un certain niveau de messages log).
Vous l'avez mis en place dans votre instance suivante en allant à http://<machine>:82
et en cliquant sur les paramètres en haut à droite. Ensuite, cliquez sur le API Keys
onglet et ajouter une nouvelle clé. Vous pouvez alors utiliser cette clé dans votre appsettings.json
fichier.
Maintenant, nous avons cette configuration nous devons configurer notre application ASP.NET pour récupérer une clé. J'utilise un .env
fichier pour stocker mes secrets.
SEQ_DEFAULT_HASH="<adminpasswordhash>"
SEQ_API_KEY="<apikey>"
Ensuite, dans mon fichier de composition, je précise que la valeur doit être injectée comme variable d'environnement dans mon application ASP.NET:
services:
mostlylucid:
image: scottgal/mostlylucid:latest
ports:
- 8080:8080
restart: always
labels:
- "com.centurylinklabs.watchtower.enable=true"
env_file:
- .env
environment:
- Auth__GoogleClientId=${AUTH_GOOGLECLIENTID}
- Auth__GoogleClientSecret=${AUTH_GOOGLECLIENTSECRET}
- Auth__AdminUserGoogleId=${AUTH_ADMINUSERGOOGLEID}
- SmtpSettings__UserName=${SMTPSETTINGS_USERNAME}
- SmtpSettings__Password=${SMTPSETTINGS_PASSWORD}
- Analytics__UmamiPath=${ANALYTICS_UMAMIPATH}
- Analytics__WebsiteId=${ANALYTICS_WEBSITEID}
- ConnectionStrings__DefaultConnection=${POSTGRES_CONNECTIONSTRING}
- TranslateService__ServiceIPs=${EASYNMT_IPS}
- Serilog__WriteTo__0__Args__apiKey=${SEQ_API_KEY}
volumes:
- /mnt/imagecache:/app/wwwroot/cache
- /mnt/markdown/comments:/app/Markdown/comments
- /mnt/logs:/app/logs
networks:
- app_network
Il convient de noter que les Serilog__WriteTo__0__Args__apiKey
est défini à la valeur de SEQ_API_KEY
de l'Organisation des Nations Unies pour l'élimination de toutes les formes de discrimination à l'égard des femmes .env
fichier. Le '0' est l'indice de la WriteTo
tableau dans le appsettings.json
fichier.
Note pour Seq et mon application ASP.NET J'ai précisé qu'ils appartiennent tous les deux à mon app_network
réseau. C'est parce que j'utilise Caddy comme proxy inversé et c'est sur le même réseau. Cela signifie que je peux utiliser le nom de service comme URL dans mon Caddyfile.
{
email [email protected]
}
seq.mostlylucid.net
{
reverse_proxy seq:80
}
http://seq.mostlylucid.net
{
redir https://{host}{uri}
}
Donc ceci est capable de cartographier seq.mostlylucid.net
à ma suite.
Seq est un excellent outil pour enregistrer et surveiller votre application. Il est facile à configurer et à utiliser et s'intègre bien avec Serilog. Je l'ai trouvé inestimable dans le débogage de mes applications et je suis sûr que vous le ferez aussi.