Commit 9c55c00e authored by rdius's avatar rdius
Browse files

update

parent 862277fb
No related merge requests found
Showing with 345 additions and 0 deletions
+345 -0
###INSTALL
ES => https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html
kibana => https://www.elastic.co/guide/en/kibana/current/deb.html
###START
sudo systemctl start elasticsearch.service #start lesaticserach
sudo systemctl start kibana.service #start kibana
###LOGSTASH CONFIG FILE
### RUN
sudo /usr/share/logstash/bin/logstash -f 'path_to_conf_file' #index data in elastic using logstash
### CREATE AND DELETE INDEX
sudo curl -X PUT or DELETE "localhost:9200/nom_index?pretty" #to add or delete an index
##### BE CAREFUL
1) Préparer les données d'entrées, le fichier à specifier dans le input du .conf de logstash
2) Préparer le fichier de conf logstash.
=> Specifier la condition de prise en charge du template defini avec la condition if, sinon le template par defaut sera considéré lors de l'ingestion des données.
=> commenter après le if {...}, et créer un index avec le nom spécifié et dans le template, et dans le fichier .conf pour la sortie de ES.
=> !Toujours ingérer le template (avec l condition if{} ) avant de créer l'index et ingérer les données par la suite en supprimant tout simplement le if dans le output qui specifie le nom de l'index
=> le nom de l'index doit être identique à celui du template, dans le output de ES, le nom du template doit être spécifié
input{
file{
type => "json"
path => "urban_test.jsonl"
codec => "json"
sincedb_path => "/dev/null"
start_position => "beginning"
}
}
filter {
mutate {
remove_field => ["post_date", "poste_date","manually_validated", "_id"]
}
date {
'match' => [ "TNE.date", "ISO8601", "yyyy-MM-dd'T'HH:mm:ss" ]
}
# Geocode SNE location thank to photon and OSM
if([SNE][ent0]) {
rest{
request => {
url => "https://photon.komoot.de/api/"
method => "get"
params => {
"q" => "%{[SNE][ent0]}"
"limit" =>1
}
headers => { "Content-Type" => "application/json" }
}
json => true
target => 'rest'
}
if([rest][features][0][geometry][coordinates]){
mutate{
add_field => {
"[ent0_osm][centroid]" => "%{[rest][features][0][geometry][coordinates][1]}, %{[rest][features][0][geometry][coordinates][0]}"
}
}
}
if([rest][features][0][properties][extent]){
mutate{
add_field => {
"[ent0_osm][extent]" => "[[%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][2]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][2]}]]"
}
}
}
if([rest][features][0][properties][country]){
mutate{
add_field => {
"[ent0_osm][country]" => "%{[rest][features][0][properties][country]}"
}
}
}
}
# Geocode SNE location thank to photon and OSM
if([SNE][ent1]) {
rest{
request => {
url => "https://photon.komoot.de/api/"
method => "get"
params => {
"q" => "%{[SNE][ent1]}"
"limit" =>1
}
headers => { "Content-Type" => "application/json" }
}
json => true
target => 'rest'
}
if([rest][features][0][geometry][coordinates]){
mutate{
add_field => {
"[ent1_osm][centroid]" => "%{[rest][features][0][geometry][coordinates][1]}, %{[rest][features][0][geometry][coordinates][0]}"
}
}
}
if([rest][features][0][properties][extent]){
mutate{
add_field => {
"[ent1_osm][extent]" => "[[%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][2]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][2]}]]"
}
}
}
if([rest][features][0][properties][country]){
mutate{
add_field => {
"[ent1_osm][country]" => "%{[rest][features][0][properties][country]}"
}
}
}
}
# Geocode SNE location thank to photon and OSM
if([SNE][ent2]) {
rest{
request => {
url => "https://photon.komoot.de/api/"
method => "get"
params => {
"q" => "%{[SNE][ent2]}"
"limit" =>1
}
headers => { "Content-Type" => "application/json" }
}
json => true
target => 'rest'
}
if([rest][features][0][geometry][coordinates]){
mutate{
add_field => {
"[ent2_osm][centroid]" => "%{[rest][features][0][geometry][coordinates][1]}, %{[rest][features][0][geometry][coordinates][0]}"
}
}
}
if([rest][features][0][properties][extent]){
mutate{
add_field => {
"[ent2_osm][extent]" => "[[%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][2]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][2]}]]"
}
}
}
if([rest][features][0][properties][country]){
mutate{
add_field => {
"[ent2_osm][country]" => "%{[rest][features][0][properties][country]}"
}
}
}
}
# Geocode SNE location thank to photon and OSM
if([SNE][ent3]) {
rest{
request => {
url => "https://photon.komoot.de/api/"
method => "get"
params => {
"q" => "%{[SNE][ent3]}"
"limit" =>1
}
headers => { "Content-Type" => "application/json" }
}
json => true
target => 'rest'
}
if([rest][features][0][geometry][coordinates]){
mutate{
add_field => {
"[ent3_osm][centroid]" => "%{[rest][features][0][geometry][coordinates][1]}, %{[rest][features][0][geometry][coordinates][0]}"
}
}
}
if([rest][features][0][properties][extent]){
mutate{
add_field => {
"[ent3_osm][extent]" => "[[%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][2]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][2]}]]"
}
}
}
if([rest][features][0][properties][country]){
mutate{
add_field => {
"[ent3_osm][country]" => "%{[rest][features][0][properties][country]}"
}
}
}
}
# Geocode SNE location thank to photon and OSM
if([SNE][ent4]) {
rest{
request => {
url => "https://photon.komoot.de/api/"
method => "get"
params => {
"q" => "%{[SNE][ent4]}"
"limit" =>1
}
headers => { "Content-Type" => "application/json" }
}
json => true
target => 'rest'
}
if([rest][features][0][geometry][coordinates]){
mutate{
add_field => {
"[ent4_osm][centroid]" => "%{[rest][features][0][geometry][coordinates][1]}, %{[rest][features][0][geometry][coordinates][0]}"
}
}
}
if([rest][features][0][properties][extent]){
mutate{
add_field => {
"[ent4_osm][extent]" => "[[%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][3]}, %{[rest][features][0][properties][extent][2]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][0]}], [%{[rest][features][0][properties][extent][1]}, %{[rest][features][0][properties][extent][2]}]]"
}
}
}
if([rest][features][0][properties][country]){
mutate{
add_field => {
"[ent4_osm][country]" => "%{[rest][features][0][properties][country]}"
}
}
}
}
}
output{
#if [index] == "aidmoit_v3" {
elasticsearch {
hosts => ["localhost:9200"]
index => "aidmoit_v3"
manage_template => true
#template_overwrite => true
template => "aidmoit_v3.json"
template_name => "aidmoit_v3"
}
#}
}
{
"template":"aidmoit_v3",
"mappings":{
"properties":{
"TNE.date":{
"type":"date",
"format":"yyyy-MM-dd'T'HH:mm:ss"
},
"ent0_osm.centroid" :{
"ignore_malformed": true,
"type":"geo_point"
},
"ent0_osm.extent" :{
"ignore_malformed": true,
"coerce":true,
"type":"geo_shape"
},
"ent1_osm.centroid" :{
"ignore_malformed": true,
"type":"geo_point"
},
"ent1_osm.extent" :{
"ignore_malformed": true,
"coerce":true,
"type":"geo_shape"
},
"ent2_osm.centroid" :{
"ignore_malformed": true,
"type":"geo_point"
},
"ent2_osm.extent" :{
"ignore_malformed": true,
"coerce":true,
"type":"geo_shape"
},
"ent3_osm.centroid" :{
"ignore_malformed": true,
"type":"geo_point"
},
"ent3_osm.extent" :{
"ignore_malformed": true,
"coerce":true,
"type":"geo_shape"
},
"ent4_osm.centroid" :{
"ignore_malformed": true,
"type":"geo_point"
},
"ent4_osm.extent" :{
"ignore_malformed": true,
"coerce":true,
"type":"geo_shape"
}
}
}
}
{"_id": {"$oid": "6052a52784ef1f53a3f17216"}, "name": "une_situation_hydrologique_critique_dans_le_departement", "mime_type": "text/html", "source": {"file_link": "./documents/Montpellier/Documents_SRC/[7joursaclermont.fr]une_situation_hydrologique_critique_dans_le_departement", "complete_url": "https://www.7joursaclermont.fr/une-situation-hydrologique-critique-dans-le-departement/", "base_url": "7joursaclermont.fr", "open_access": false, "type": "web_request", "raw_request": "\"Montpellier\" AND situation?hydrologique"}, "manually_validated": false, "text": "» » Une situation hydrologique critique dans le département Il va faire chaud, très chaud, ces prochains jours et, au moins jusqu'au milieu de la semaine prochaine. Une situation qui risque d'altérer un peu plus la situation hydrologique dans le département. Le mois de juillet, déjà, affichait un déficit en précipitations de 70 %, cumulé à des températures légèrement supérieures à la normale. Les pluies orageuses survenues début août, pour leur part, ont été spectaculaires mais elles n'ont pas permis de réalimenter les nappes et les cours d'eau de façon durable.\n\n## Crise et état d'alerte C'est dans ce contexte que le comité départemental de l'eau s'est réuni jeudi dernier. En coordination avec les départements voisins qui connaissent les mêmes difficultés, il a été décidé de prendre un certain nombre de mesures. En ce qui concerne le cours de la Dordogne et du Cher, ils sont placés en « crise\n». Aucun prélèvement n'y est désormais possible en dehors de ceux strictement nécessaires aux exigences de santé, salubrité et sécurité humaine et animale.\n\nLes bassins de l'Alagnon et de l'Ance sont placés en état d'alerte. Les prélèvements dans les cours d'eau y sont pour la plupart interdits de 10h à 18h, sauf exception, et en particulier en cas d'organisation de tours d'eau réduisant de 25 % les prélèvements pour l'irrigation. Dans le reste du département, le niveau de vigilance est maintenu. Chacun (particulier, entreprise, collectivité…) est appelé à veiller à une gestion économe de l'eau. Certains cours d'eau (Ambène, Sioulet, Ailloux, Eau Mère, Couzes d'Ardes, Jauron…) présentent des débits très bas, proches des débits minimaux à maintenir en permanence pour permettre la vie, la circulation et la reproduction des espèces.\n\n## Appel à la vigilance Il est donc demandé à l'ensemble des collectivités et des particuliers de limiter au maximum les prélèvements directs dans le milieu naturel, en complément des dispositions déjà prises pour les prélèvements agricoles. Des contrôles seront opérés sur le terrain par les agents de l'Office français pour la Biodiversité. D'autre part, des mesures complémentaires pourraient être prises dans les prochaines semaines en fonction de l'évolution de la situation.\n\nPour plus d'information sur les situations de sécheresse en France et les restrictions d'usage, vous pouvez consulter le site internet Propluvia :\n\nTandis que la ville portuaire de Méditerranée s'apprête à organiser le...\n\nLa Champions Cup de rugby reprendra, le premier week-end d'avril, directement...\n\nSalles, théâtres, musées, cinémas sont fermés depuis des mois. Alors que le...\n\nSCR Métropole Innovation rassemble Saint-Etienne Métropole, Clermont Auvergne...\n\nTout au long de ce trimestre, Les Rencontres de la Résilience sont consacrées...\n\nL'ASM a annoncé le départ de son entraîneur principal à la fin de la saison.\n\nLa...\n\nNous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considérerons que vous acceptez l'utilisation des cookies.", "title": "Une situation hydrologique critique dans le département | 7 Jours à Clermont", "post_date": {"$date": "2020-08-08T00:00:00"}, "city": "Montpellier", "TNE": {"date": "2020-08-08T00:00:00"}, "SNE": {"ent0": "Clermont"}}
{"_id": {"$oid": "6052a84a84ef1f53a3f17220"}, "name": "la_droite_en_pole_position_1137892.php", "mime_type": "text/html", "source": {"file_link": "./documents/Montpellier/Documents_SRC/[midilibre.fr]la_droite_en_pole_position_1137892.php", "complete_url": "https://www.midilibre.fr/2015/03/18/la-droite-en-pole-position,1137892.php", "base_url": "midilibre.fr", "open_access": false, "type": "web_request", "raw_request": "\"Montpellier\" AND quartiers?urbains?morceles"}, "manually_validated": false, "text": "# Départementales à Montpellier : la droite en pôle position sur le 20e canton Publié le 18/03/2015 à 19:15 , mis à jour le 19/03/2015 à 11:56 Pour les élections départementales, sans sortant et face à une gauche divisée, droite et FN ont une carte à jouer sur le 20e canton, celui de Montpellier- Castelnau.\n\nConsidéré par certains comme secondaire pour la petite emprise territoriale qu'il exerce sur la capitale héraultaise, le nouveau canton de Montpellier- Castelnau reste pourtant l'un des plus ouverts pour ces élections départementales des 22 et 29 mars. En cause, une gauche divisée, contrairement à l'UMP et l'UDI qui y font cause commune, et un territoire morcelé entre quartiers ultra-urbains et...\n\nAbonnez-vous pour en profiter à partir de 1€/mois, sans engagement\n\n* ✓ Tous les articles en illimité sur le site et l'application\n* ✓ Le journal en version numérique dès 6h du matin\n* ✓ Publicités limitées", "title": "Départementales à Montpellier : la droite en pôle position sur le 20e canton ? - midilibre.fr", "post_date": {"$date": "2015-03-18T00:00:00"}, "city": "Montpellier", "TNE": {"date": "2015-03-18T00:00:00"}, "SNE": {"ent0": "Montpellier"}}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment