Linux Howto Squid Proxy met een cacti monitor door Piethein Strengholt In deze howto beschrijf ik hoe een goedkope proxy server geinstalleerd kan worden met daarop een goede monitor interface. Voor deze demonstratie maak ik gebruik van RedHat Enterprise 4 Allereerst moet de juiste software geinstalleerd worden. Ik doe dat altijd met yum: yum install cacti mysql-server mysql net-snmp squid Nadat alle bijbehorende software en dependencies zijn geinstalleerd is het tijd om de proxy server te configureren. Open daarvoor het bestand squid.conf: /etc/squid/squid.conf De volgende regels dienen aangepast of toegevoegd te worden: auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/passwd acl piethein proxy_auth REQUIRED http_access allow piethein http_access deny all snmp_port 3401 acl snmppublic snmp_community public snmp_access allow snmppublic snmp_incoming_address 0.0.0.0 snmp_outgoing_address 255.255.255.255 Ik maak gebruik van wachtwoord verificatie. Uiteraard is iedereen vrij de proxy geheel open te zetten of gebruik te maken van bijvoorbeeld LDAP. De gebruikersnaam piethein dient uiteraard vervangen te worden door een andere gebruikersnaam. Als de squid.conf is aangepast dient het passwd bestand aangemaakt te worden. Dit kan met de regel htpasswd -c, zie onder: htpasswd -c /etc/squid/passwd piethein Geef vervolgens een nieuw password op! Als het goed is draait nu de proxy en kunnen we verder met het cacti gedeelte. Test of de webserver bereikbaar is en of de mysql service draait: service mysqld start service httpd start Indien mysql nog geen wachtwoord heeft kunnen we dit doen met: /usr/bin/mysqladmin -u root password ***** Waar de sterretjes staan voor het wachtwoord Nu kunnen we de database aanmaken en de bijbehorende rechten: usr/bin/mysql -p -u root mysql> create database cacti; mysql> grant all on cacti.* to root; mysql> grant all on cacti.* to root@localhost; mysql> grant all on cacti.* to cacti; mysql> grant all on cacti.* to cacti@localhost; mysql> set password for cacti@localhost=password('cactipass'); mysql> exit; cactipass is het wachtwoord voor de cacti gebruiker. Vervolgens moeten we het cacti script in de database laden: mysql -p -u cacti cacti < /usr/share/doc/cacti-0.8.7b/cacti.sql En het laatste wat we moeten doen is de configuratie aanpassen van cacti: /usr/share/cacti/include/config.php Controleer ook of iedereen toegang heeft tot de cacti alias. /etc/httpd/conf.d/cacti.conf Order Deny,Allow Allow from all Als we nu de browser starten kunnen we naar http:///cacti/install/ We krijgen nu een paar simpele vragen die we met Next kunnen beantwoorden. Log vervolgens in met admin en admin en verander het wachtwoord. Cacti draait nu! Nu kunnen we verder met het snmp gedeelte. Controleer of snmp draait met: service snmpd start We moeten nu een aantal regels toevoegen aan de snmpd.conf om er voor te zorgen dat de statistieken van squid ook beschikbaar zijn binnen snmp. Voeg aan het snmpd.conf bestand de volgende regels toe: /etc/snmp/snmpd.conf #SQUID proxy -v 1 -c public localhost:3401 .1.3.6.1.4.1.3495.1 view systemview included .1.3.6.1.4.1.3495.1 Controleer vervolgens of de snmpwalk voor de squid statistieken werkt! Doe dit met: snmpwalk -v 1 -c public localhost:3401 .1.3.6.1.4.1.3495.1 snmpwalk -v 1 -c public localhost:161 .1.3.6.1.4.1.3495.1 We zijn nu een heel eind op weg. Als we nu terug gaan naar cacti moeten we een nieuw device toevoegen. Voeg een nieuw device localhost snmp toe met als protocol SNMP. Er moeten geen foutmeldingen bovenin beeld staan. Download nu alle templates van mijn site http://www.strengholt-online.nl/linux/cacti_graph_template_squid.zip Pak deze uit en importeer deze via de Import Templates link aan de linker kant van het scherm. Als alle templates geimporteerd zijn gaan we terug naar de devices en zoeken we de localhost snmp op. Voeg alle templates toe. Maak de grafieken aan. Vervolgens kunnen we testen of alles goed wordt aangemaakt: /usr/bin/php /usr/share/cacti/poller.php --force --debug Er moeten geen foutmeldingen in beeld komen. Een laatste stap is het toevoegen van een regel aan de crontab die iedere 5 minuten de statistieken ophaalt! crontab -e */5 * * * * /usr/bin/php /usr/share/cacti/poller.php --force --debug > /dev/null 2>&1