Voir rapidement les statistiques journalières d'un serveur Web sur AS/400

Il faut dans un premier temps, mettre en route la log dans le fichier qui définit l'instance.
AccessLog HTTPLOG
LogFormat DDS

Le fichier HTTPLOG sera créé dans la bibliothèque Qusrsys.

Mettez le droit *public *use dessus, et vous pouvez ensuite utiliser cette macro Netdata pour interroger

%{
Définition des variables
%}

%DEFINE {
TABLE = "QUSRSYS.HTTPLOG"
%}

%{
Liste détail
%}
%FUNCTION(DTW_SQL) query1(){
select substr(logtim, 2, 11) AS DATE, substr(logtim, 14, 8) AS HEURE,
LOGADD, LOGURL, LOGSTS, LOGBYT
from $(TABLE)
where substr(logtim, 2, 11) = '$(WDATE)'
ORDER BY 2 DESC
%report{
<TABLE>
<TR>

<TD>Heure</TD>
<TD>Adresse</TD>
<TD>URL/page</TD>
<TD>Status</TD>
<TD>ByTes</TD>
</TD>

%row{
<TR>

<TD>$(V2)</TD>
<TD>$(V3)</TD>
<TD>$(V4)</TD>
<TD>$(V5)</TD>
<TD>$(V6)</TD>
</TD>

%}
</TABLE>
%}
%message{
100: "aucune log à afficher ":CONTINUE
%}

%}
%{
Cumul par Page
%}

%FUNCTION(DTW_SQL) query2(){
select LOGURL, count(*)
from $(TABLE)
where substr(logtim, 2, 11) = '$(WDATE)'BY LOGURL
ORDER BY 2 DESC
%report{
<TABLE>
<TR>

<TD>URL/page</TD>
<TD>Total</TD>

</TR>

%row{
<TR>
<TD>$(V1) </TD>
<TD>$(V2) </TD>

</TR>

%}
</TABLE>
%}
%message{
100: "aucune log à afficher ":CONTINUE
%}

%}
%{
Cumul par Adresse
%}
%FUNCTION(DTW_SQL) query3(){
select LOGADD, count(*)

from $(TABLE)
where substr(logtim, 2, 11) = '$(WDATE)'
GROUP BY LOGADD
ORDER BY 2 DESC
%report{
<TABLE>
<TR>

<TD>Adresse </TD>
<TD>Total </TD>

</TR>

%row{
<TR>
<TD>$(V1) </TD>
<TD>$(V2) </TD>

</TR>

%}
</TABLE>

%}
%message{
100: "aucune log à afficher ":CONTINUE
%}

%}
%{
Cumul par général
%}
%FUNCTION(DTW_SQL) query4(){
select count(*)

from $(TABLE)
where substr(logtim, 2, 11) = '$(WDATE)'
%report{


%row{
Total général : $(V1)

%}

%}

%message{
100: "aucune log à afficher ":CONTINUE
%}

%}


%HTML(Input){


<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function valid(form)
{
if (FORM1.WDATE.value == "")
{
alert("Vous devez indiquer une Date");
return false;
}
}
// End -->
</SCRIPT>

</HEAD>

<BODY BGCOLOR="003f7f" >
<FORM METHOD="POST"
ACTION="http://e/QSYS.LIB/WWWCGI.LIB/DB2WWW.PGM/web/macros/httplog.db2/Report"
name = "FORM1" onSubmit="return valid(this.form)"
>

<H3> <center> Statistique du web </center> </H3>
Date :

<input type="text" name="WDATE" SIZE=11 MAXLENGTH=11 value="$(WDATE)">
Format <script LANGUAGE="JavaScript">
<!-- JavaScript 1.0
var months=new Array(13);
months[1]="Jan";
months[2]="Feb";
months[3]="Mar";
months[4]="Apr";
months[5]="May";
months[6]="Jui";
months[7]="Jul";
months[8]="Aug";
months[9]="Sep";
months[10]="Oct";
months[11]="Nov";
months[12]="Dec";
var time=new Date();
var lmonth=months[time.getMonth() + 1];
var date=time.getDate();
var year=time.getYear();
// Y2K Fix by Isaac Powell
// http://onyx.idbsu.edu/~ipowell
if ((navigator.appName == "Microsoft Internet Explorer") && (year <
2000))
year="19" + year;
if (navigator.appName == "Netscape")
year=1900 + year;
document.write(date);
if (date == 1)
document.write("er");
document.write("/" + lmonth + "/" + year);

file://-->
</script>
<HR>
<INPUT TYPE="SUBMIT" NAME="Lancer" VALUE="Détail">
<INPUT TYPE="SUBMIT" NAME="Lancer" VALUE="Cumul par adresse">
<INPUT TYPE="SUBMIT" NAME="Lancer" VALUE="Cumul par page">
</FORM>
</BODY>
%}
%HTML(Report){
<HTML>
<TITLE>Resultat</TITLE>
<BODY BGCOLOR="003f7f" >

<FONT SIZE=5>
<center>Début de liste $(WDATE) </center></FONT>
<HR>


%IF ($(Lancer) == "Détail")
@query1()

%ENDIF
%IF ($(Lancer) == "Cumul par adresse")
@query4()
<HR>
@query3()
%ENDIF

%IF ($(Lancer) == "Cumul par page")
@query4()
<HR>
@query2()
%ENDIF

<HR>
<FONT SIZE=5>
<center>Fin de liste</center></FONT>
</BODY>
</HTML>
%}

PLB