diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..555599c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,75 @@
+# Created by .ignore support plugin (hsz.mobi)
+### JetBrains template
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# Generated files
+.idea/**/contentModel.xml
+.idea
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/artifacts
+# .idea/compiler.xml
+# .idea/jarRepositories.xml
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
diff --git a/.idea/mobilizon.chapril.org-tools.iml b/.idea/mobilizon.chapril.org-tools.iml
new file mode 100644
index 0000000..c956989
--- /dev/null
+++ b/.idea/mobilizon.chapril.org-tools.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..6f68488
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..245cfb3
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1605258558512
+
+
+ 1605258558512
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..077d357
--- /dev/null
+++ b/README.md
@@ -0,0 +1,51 @@
+#Mobilizon Chapril Tools
+
+## Monitoring
+Surveiller les signes de vie du site depuis Icinga.
+https://icinga.chapril.org
+
+
+## Rapport d'activité
+Générer un rapport incluant des statistiques à propos de l'utilisation du site et le publier dans un ticket Redmine de Agir.chapril.org
+
+## Statistiques
+obtention des statistiques publiques de l'instance par une requête GraphQL à l'url https://mobilizon.chapril.org/api/ dont le corps est:
+
+```graphql
+{
+ statistics {
+ numberOfUsers
+ numberOfEvents
+ numberOfLocalEvents
+ numberOfComments
+ numberOfLocalComments
+ numberOfGroups
+ numberOfLocalGroups
+ numberOfInstanceFollowers
+ numberOfInstanceFollowings
+ }
+}
+```
+exemple de réponse:
+```
+{
+ "data": {
+ "statistics": {
+ "numberOfComments": 9,
+ "numberOfEvents": 45,
+ "numberOfGroups": 7,
+ "numberOfInstanceFollowers": 0,
+ "numberOfInstanceFollowings": 1,
+ "numberOfLocalComments": 0,
+ "numberOfLocalEvents": 0,
+ "numberOfLocalGroups": 0,
+ "numberOfUsers": 1
+ }
+ }
+}
+```
+Détail des paramètres à demander sur la doc:
+https://framagit.org/framasoft/mobilizon/-/blob/master/js/schema.graphql
+
+On peut tester des requêtes sur cette sandbox
+https://mobilizon.fr/graphiql
diff --git a/monitoring/check_version.sh b/monitoring/check_version.sh
index c68746f..c9cc566 100644
--- a/monitoring/check_version.sh
+++ b/monitoring/check_version.sh
@@ -26,15 +26,14 @@ else
lastVersion=$(curl -s https://framagit.org/api/v4/projects/$FRAMAGIT_PROJECT_ID/releases | jshon -a -e name|cut -d '"' -f2|grep -v '[\^\(alpha\)]'|head -n 1)
currentVersion=$(cd $LOCAL_REPO && git branch | grep '*'|cut -c 3-100 )
-# echo "current version: $currentVersion"
-# echo "last version: $lastVersion"
+ echo "current version: $currentVersion"
+ echo "last version: $lastVersion"
if [ $currentVersion = $lastVersion ]; then
echo "OK"
result=0
else
echo "WARNING : new version available, current is $currentVersion, last is $lastVersion."
- result=1
+ result=2
fi
fi
exit $result
-
diff --git a/monitoring/mobilizonchaprilorg.cron b/monitoring/mobilizonchaprilorg.cron
new file mode 100644
index 0000000..efd9224
--- /dev/null
+++ b/monitoring/mobilizonchaprilorg.cron
@@ -0,0 +1 @@
+ 5 0 1 * * root /srv/mobilizon.chapril.org/tools/rapport_activite/rapport_activite.sh -p >> /srv/mobilizon.chapril.org/Exploitation/rapport_mobilizon.log 2>&1
diff --git a/rapport_activite/rapport_activite.sh b/rapport_activite/rapport_activite.sh
index 4d2ea55..1f3395b 100755
--- a/rapport_activite/rapport_activite.sh
+++ b/rapport_activite/rapport_activite.sh
@@ -18,11 +18,12 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see .
-#
+# access_log /var/log/nginx/mobilizon.chapril.org/mobilizon.chapril.org-access.log
+# error_log /var/log/nginx/mobilizon.chapril.org/mobilizon.chapril.org-error.log
# ============================================
-LOG_PREFIX="/var/log/apache2/mobilizon.chapril.org/mobilizon.chapril.org"
+LOG_PREFIX="/var/log/nginx/mobilizon.chapril.org/mobilizon.chapril.org"
SERVICE_NAME="mobilizon.chapril.org"
source "/etc/mobilizon.chapril.org/mobilizonchaprilorg.conf"
@@ -48,7 +49,7 @@ generateHTTPReport()
echo "=§= Rapport d'activité HTTP"
echo
-
+
local httpRequestCount=$(zgrep "$monthEnglish" $LOG_PREFIX-access.log*|grep $year|wc -l)
echo "Nombre total de requêtes http = $httpRequestCount"
@@ -63,7 +64,7 @@ generateHTTPReport()
local ipv4VisitorCount=$(zgrep -h "$monthEnglish" $LOG_PREFIX-access.log*|grep "$year"|grep -vi bot|grep -v check_http|egrep "^$IPV4_PATTERN "|cut -d' ' -f1|sort|uniq|wc -l )
echo "Nombre d'ipv4 ayant visité le service = $ipv4VisitorCount"
-
+
local ipv6VisitorCount=$(zgrep -h "$monthEnglish" $LOG_PREFIX-access.log*|grep "$year"|grep -vi bot|grep -v check_http|egrep "^$IPV6_PATTERN "|cut -d' ' -f1|sort|uniq|wc -l )
echo "Nombre d'ipv6 ayant visité le service = $ipv6VisitorCount"
@@ -84,13 +85,16 @@ generateSpecificReport()
ipv4UserCount=$(zgrep -h "$monthEnglish" $LOG_PREFIX-access.log*|grep "$year"|grep -vi bot|grep -v check_http|egrep "^$IPV4_PATTERN " | cut -d' ' -f 1|sort|uniq|wc -l )
echo "Nombre d'ipv4 utilisatrices du service = $ipv4UserCount"
-
+
ipv6UserCount=$(zgrep -h "$monthEnglish" $LOG_PREFIX-access.log*|grep "$year"|grep -vi bot|gre\p -v check_http|egrep "^$IPV6_PATTERN " | cut -d' ' -f 1|sort|uniq|wc -l )
echo "Nombre d'ipv6 utilisatrices du service = $ipv6UserCount"
echo "Nombre total d'ip utilisatrices du service = $((ipv4UserCount+ipv6UserCount))"
- echo
-
+ # TODO métriques à récupérer
+ # https://docs.joinmobilizon.org/contribute/graphql_api/
+ echo "Nombre de comptes utilisateurs"
+ echo "Nombre d'évènements passés"
+ echo "Nombre d'évènements à venir"
echo
}
@@ -136,7 +140,7 @@ elif [ "$#" -eq 2 ]; then
elif ! (let "$2") 2>/dev/null; then
echo -e "L'année doit être numérique."
help
- elif [ "$2" -lt 2018 ] || [ "$2" -gt "$(date +%Y)" ]; then
+ elif [ "$2" -lt 2018 ] || [ "$2" -gt "$(date +%Y)" ]; then
echo -e "Année non valable $2."
help
elif [ "$2" -le 2017 ] || [ "$2" -ge $(($(date +%Y)+1)) ] ; then
@@ -147,7 +151,7 @@ elif [ "$#" -eq 2 ]; then
yearMonth="$2-0$1"
else
yearMonth="$2-$1"
- fi
+ fi
monthEnglish=$(LANG=en_EN.UTF-8;date -d "$2-$1-01" +%b)
year="$2"
generateReport "$monthEnglish" "$year" "$yearMonth"