torsdag 21 november 2013

Installera Graylog2 0.20.0 från scratch

Nu ska jag skriva ner hur man installerar Graylog2 0.20.0 på en ren installation av CentOS 6.

Den här guiden beskriver är specifik för version 0.20.0-preview6 och jag har av tidigare erfarenhet stött på att Graylog2 är ganska versionskänslig för paketen som den är beroende av (MongoDB och Elasticsearch)

I Elasticsearchfallet så är det version 0.90.6 vi vill ha, MongoDB ska vara nyare än 2.0 och Java ska vara 1.7.0 eller senare.

Lägg till EPEL repositoryn på din server

Några paket vi kommer behöva så småningom, Lika bra att installera på en gång:

 [root@localhost ~]# yum install -y java-1.7.0-openjdk mongodb-server mongodb wget pwgen perl-Digest-SHA

sedan kan vi ladda ner elasticsearch


[root@localhost ~]# curl -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.6.noarch.rpm

och installera
[root@localhost ~]# yum localinstall -y elasticsearch-0.90.6.noarch.rpm

Den enda konfigurationen vi vill göra med elasticsearch är att döpa om klusternamnet till graylog2
[root@localhost ~]# sed -i -e 's|# cluster.name: elasticsearch|cluster.name: graylog2|' /etc/elasticsearch/elasticsearch.yml

Nu till MongoDB
Se till att MongoDB startas vid boot
[root@localhost ~]#/etc/init.d/mongod start
[root@localhost ~]#chkconfig mongod on

skapa användaren grayloguser med lösenordet 123
[root@localhost ~]# echo 'db.addUser("grayloguser", "123");' > file.js && mongo 127.0.0.1:27017/graylog2 file.js && rm -rf file.js

Nu kan vi ladda ner Graylog2
Använd wget som vi installerade tidigare
[root@localhost ~]#wget https://github.com/Graylog2/graylog2-server/releases/download/0.20.0-preview.6/graylog2-server-0.20.0-preview.6.tgz
[root@localhost ~]#wget https://github.com/Graylog2/graylog2-web-interface/releases/download/0.20.0-preview.6/graylog2-web-interface-0.20.0-preview.6.tgz

Packa upp och kopiera innehållet till /opt
[root@localhost ~]#tar zvxf *.tgz
[root@localhost ~]#cp -r graylog2-server-0.20.0-preview.6 /opt/graylog2-server
[root@localhost ~]#cp -r graylog2-web-interface-0.20.0-preview.6 /opt/graylog2-web-insterface

Kopiera graylog2.conf.example till din /etc som graylog2.conf
[root@localhost ~]#cd /opt/graylog2-server/
[root@localhost ~]#cp graylog2.conf.example /etc/graylog2.conf

Konfigurera din passwordsecret, enklast med följande 3 kommandon som tar en random genererad sträng.
[root@localhost ~]#passwordsecret=`pwgen -s 96 | awk 'END{print}'`
[root@localhost ~]#sed -i -e 's|password_secret =|password_secret = '"$passwordsecret"'|' /etc/graylog2.conf
[root@localhost ~]#sed -i -e 's|application.secret=""|application.secret='"$passwordsecret"'|' /opt/graylog2-web-insterface/conf/graylog2-web-interface.conf
Här sätter du ditt adminlösenord, password i det här fallet.
[root@localhost ~]#graylog2password=`echo -n password | shasum -a 256 | awk '{print $1}'`
[root@localhost ~]#sed -i -e 's|root_password_sha2 =|root_password_sha2 = '"$graylog2password"'|' /etc/graylog2.conf

Starta Graylog2
[root@localhost ~]#/opt/graylog2-server/bin/graylog2ctl start
Konfigurera Graylog-web-interface
[root@localhost ~]#sed -i -e 's|graylog2-server.uris=""|graylog2-server.uris="http://127.0.0.1:12900/"|' /opt/graylog2-web-insterface/conf/graylog2-web-interface.conf

och tillslut starta Graylog2-web-interface
[root@localhost ~]#nohup /opt/graylog2-web-insterface/bin/graylog2-web-interface &

Nu kan du logga in på http://ipadress:9000
ps. om det inte fungerar så se över dina iptables brandväggsregler samt kolla status i SELinux. Graylog2 fungerar utmärkt med SELinux påslaget.

söndag 10 november 2013

Zero-touch CentOS installation

Ibland vill man ha en ny och fräsch virtuell maskin som man vill prova något med.
Den vill man kunna köra igång snabbt och enkelt utan att påverkar något annat viktigt man har körandes. Det finns många guider som beskriver hur man gör en template/zero-touch installation av CentOS men egentligen behöver det inte vara så komplicerat som dom flesta är.

Det man behöver är en ren installationsiso (minimal fungerar utmärkt) och programmet ISO Master som man kan hitta i EPEL repositoryn.

Börja med att öppna iso filen och titta i katalogen isolinux
Där finns det en fil som heter isolinux.cfg, kopiera den till skrivbordet och öppna med en editor
Såhär ser filen ut efter redigering och det vi vill ändra är timeouten till något kortare än 60 sekunder samt raden append, båda raderna rödmarkerade.
ks=cdrom:/autoinstall.cfg beskriver vart bootloadern hittar en kickstartfil och vi pekar ut en som heter autoinstall.cfg som vi kommer att lägga i rooten på iso/cd-skivan.
default vesamenu.c32
#prompt 1
timeout 3

display boot.msg

menu background splash.jpg
menu title Welcome to CentOS 6.4!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000

label linux
  menu label ^Install whop whop
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=cdrom:/autoinstall.cfg
label vesa
  menu label Install system with ^basic video driver
  kernel vmlinuz
  append initrd=initrd.img xdriver=vesa nomodeset
label rescue
  menu label ^Rescue installed system
  kernel vmlinuz
  append initrd=initrd.img rescue
label local
  menu label Boot from ^local drive
  localboot 0xffff
label memtest86
  menu label ^Memory test
  kernel memtest
  append -

Nu ska du skapa din kickstart fil. Jag har tagit min från en vanlig installation. Anaconda skapar nämligen en efter en RHEL/CentOS installation som ligger under /root och heter annaconda-ks.cfg
Jag har gjort några ändringar i min och såhär ser den ut nu:
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard sv-latin1
network --onboot yes --device eth0 --bootproto dhcp --noipv6 --activate
rootpw root
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --enforcing
timezone --utc Europe/Stockholm
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all --drives=sda

part /boot --fstype=ext4 --size=500
part pv.008002 --grow --size=1

volgroup vg_centos --pesize=4096 pv.008002
logvol / --fstype=ext4 --name=lv_root --vgname=vg_centos --grow --size=1024 --maxsize=51200
logvol swap --name=lv_swap --vgname=vg_centos --grow --size=4032 --maxsize=4032

reboot

repo --name="CentOS"  --baseurl=http://ftp.sunet.se/pub/Linux/distributions/centos/6.4/os/x86_64
repo --name="EPEL"  --baseurl=http://download.fedoraproject.org/pub/epel/6/x86_64
repo --name=RPMForge  --baseurl=http://apt.sw.be/redhat/el6/en/x86_64/rpmforge

%packages --nobase
@core
eject
%post

#yum -y groupinstall "Desktop" "Desktop Platform" "X Window System" "Fonts"
#adduser kalle
#echo "password" | passwd kalle --stdin
#sed -i -e 's|id:3:initdefault:|id:5:initdefault:|' /etc/inittab

/usr/sbin/eject
%end

 Det jag har ändrat är då:
  • network är onboot=yes för att få nätverk samt activate för att få det under installationen
  • rootpw = root dvs rootlösenordet blir root, Byt det när installationen är klar!
  • clearpart raden rensar disk /dev/sda utan att fråga!
  • part raderna skapar partitioner. En boot och resten en volymgrupp som sen används som / och swap
  • reboot startar om datorn när installationen gått klart
  • repo raderna berättar för installationen vart den kan hitta paket. Sunet, EPEL och RPMForge är bra källor och du kan specificera mera bra-att-ha paket under %packages
  • eject installarar eject paketet så att installationsprogrammet kan mata ut "skivan" efter att installationen gått klart. Annars finns risk att man kommer hamna i en oändlig installations-loop
  • Den gröna bortkommenterade raderna är vad som krävs för att få en grafisk miljö samt en användare "kalle" som man kan logga in som med lösenordet password
Så nu har du 2 stycken filer klara (isolinux.cfg samt autoinstall.cfg som jag döpt kickstartfilen) så då kan du starta ISO Master:
Välj File -> Open -> Markera ISO filen och välj Open
Markera autoinstall och tryck på Add
Sedan öppnar du katalogen isolinux på skivan (den undre delen av ISO Master)
Markera isolinux.cfg (på skivan!) och välj Remove.
Nu markerar du din redigerade isolinux.cfg och väljer Add
Spara nu isofilen under File -> Save med ett nytt filnamn
Nu kan du prova att använda den ison som installationsmedia i Virtualbox. Installationen tar på min MacBook Pro 2,8Ghz 8GB ram ca 5 minuter om man skippar som grafiska delarna.