ipmipython
A. 如何在ubuntu下編譯安裝zabbix系統
第一部分,php\nginx\mysql組件安裝
1,php-cgi
zabbix的web前端是用php寫成的,需要php來運行
view sourceprint?1 jcwu@ubuntu:~$ sudo apt-get update
2 jcwu@ubuntu:~$ sudo apt-get install php5-cgi
3 jcwu@ubuntu:~$ sudo useradd www #php運行用戶
php-cgi控制腳本
view sourceprint?01 jcwu@ubuntu:~$ cat /etc/init.d/php-fcgi
02 #!/bin/bash
03
04 BIND=127.0.0.1:9000
05 USER=www
06 PHP_FCGI_CHILDREN=15
07 PHP_FCGI_MAX_REQUESTS=1000
08 PHP_CGI=/usr/bin/php-cgi
09 PHP_CGI_NAME=`basename $PHP_CGI`
10 PHP_CGI_ARGS="- USER=$USER PATH=/usr/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND"
11 RETVAL=0
12
13 start() {
14 echo -n "Starting PHP FastCGI: "
15 start-stop-daemon --quiet --start --background --chuid "$USER" --exec /usr/bin/env -- $PHP_CGI_ARGS
16 RETVAL=$?
17 echo "$PHP_CGI_NAME."
18 }
19 stop() {
20 echo -n "Stopping PHP FastCGI: "
21 killall -q -w -u $USER $PHP_CGI
22 RETVAL=$?
23 echo "$PHP_CGI_NAME."
24 }
25
26 case "$1" in
27 start)
28 start
29 ;;
30 stop)
31 stop
32 ;;
33 restart)
34 stop
35 start
36 ;;
37 *)
38 echo "Usage: php-fastcgi {start|stop|restart}"
39 exit 1
40 ;;
41 esac
42 exit $RETVAL
43
44 jcwu@ubuntu:~$ sudo update-rc.d php-fcgi defaults #添加至系統啟動項
2,nginx
參考http://wiki.nginx.org/Install
view sourceprint?01 jcwu@ubuntu:~$sudo vi /etc/apt/source.list
02 #在文件尾添加以下2行
03 deb http://nginx.org/packages/ubuntu/ lucid nginx
04 deb-src http://nginx.org/packages/ubuntu/ lucid nginx
05 #############官方文檔中如下#######################################
06 su -s
07 nginx=stable # use nginx=development for latest development version
08 add-apt-repository ppa:nginx/$nginx
09 # add-apt-repository 安裝命令為 apt-get install python-software-properties
10 apt-get update
11 apt-get install nginx
12 #############我的安裝命令########################################
13 jcwu@ubuntu:~$ sudo apt-get update
14 jcwu@ubuntu:~$ sudo apt-get install nginx
設置php-cgi
view sourceprint?1 sudo vi /etc/nginx/conf.d/default.conf
將root html提前到server_name下面
將location /中的index 指令後加上index.php
設置php解析
view sourceprint?01 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
02 #
03 location ~ \.php$ {
04 root html;
05 fastcgi_pass 127.0.0.1:9000;
06 fastcgi_index index.php;
07 #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
08 #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
09 fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
10 include fastcgi_params;
11 }
測試
view sourceprint?1 sudo vi /usr/share/nginx/html/info.php
2 #添加
3 <!--?php phpinfo(); ?-->
4 #然後reload nginx
5 sudo kill -HUP $(cat /var/run/nginx.pid)
在瀏覽器中打開http://192.168.1.115/info.php
這樣就OK了
3,mysql
用來存儲監控數據,這里可以選很多種db2、mysql、oracle、postgresql、sqlite
view sourceprint?1 jcwu@ubuntu:~$ sudo apt-get install mysql-server
第二部分,zabbix編譯安裝和web前面配置
0-准備工作
view sourceprint?1 #安裝編譯套件
2 sudo apt-get install build-essential
3 #安裝php前端需要的包
4 sudo apt-get install libmysqlclient15-dev php5-gd php5-mysql
5 #安裝zabbix需要的包,snmp\curl\ssl\fping
6 sudo apt-get install snmp libsnmp-dev snmpd libcurl4-openssl-dev fping
1-添加用戶,並添加到admin用戶組
view sourceprint?1 sudo adser zabbix
2 sudo adser zabbix admin
2-獲取zabbix 1.8.11 源碼包,並解壓
view sourceprint?1 cd /usr/src && wget http //prdownloads sourceforge net/zabbix/zabbix-1.8.11.tar.gz?download
2 sudo mv zabbix-1.8.11.tar.gz?download zabbix-1.8.11.tar.gz
3 tar xvf zabbix-1.8.11.tar.gz
3-mysql資料庫初始化
view sourceprint?1 mysql -uroot -p -e"create database zabbix;"
2 mysql -uroot -p -e"grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"
3 mysql -D zabbix -uzabbix -pzabbix < zabbix-1.8.11/create/schema/mysql.sql
4 mysql -D zabbix -uzabbix -pzabbix < zabbix-1.8.11/create/data/data.sql
5 mysql -D zabbix -uzabbix -pzabbix < zabbix-1.8.11/create/data/images_mysql.sql
4-編譯安裝
view sourceprint?1 cd zabbix-1.8.11/
2 ./configure --prefix=/usr/local --with-mysql --with-net-snmp \
3 --with-libcurl --enable-server --enable-agent && \
4 make
5 sudo make install
6 #--with-net-snmp是啟用SNMP協議
7 #--with-libcurl是監控web網站用的
8 #--enable-server只可在服務端上使用
9 #其它還有IPMI等,參閱./configure --help
5-系統其它設置
view sourceprint?1 sudo vi /etc/services
2 #添加
3 zabbix_agent 10050/tcp # Zabbix ports
4 zabbix_trap 10051/tcp
6-設置zabbix配置文件目錄
view sourceprint?1 sudo mkdir /etc/zabbix
2 sudo chown -R zabbix.zabbix /etc/zabbix/
3 cp misc/conf/zabbix_* /etc/zabbix/
修改配置文件zabbix_server.conf
view sourceprint?1 vi /etc/zabbix/zabbix_server.conf
搜索DBUser DBPassword這兩個關鍵字,替換為前面mysqlDB中設置的用戶和密碼(這里都是zabbix\zabbix)
7-設置zabbix開機啟動
view sourceprint?1 sudo cp misc/init.d/debian/zabbix-server /etc/init.d
2 sudo cp misc/init.d/debian/zabbix-agent /etc/init.d
3 cd !$
4 sudo chmod 755 zabbix-*
5 sudo update-rc.d zabbix-server defaults
6 sudo update-rc.d zabbix-agent defaults
其實misc/init.d/ubuntu/下面還有2個conf配置文件,但這個扔/etc/init.d里來啟動zabbix會報錯
8-zabbix web界面安裝設置
view sourceprint?1 sudo mkdir /usr/share/nginx/html/zabbix/
2 cd /usr/src/zabbix-1.8.11/frontends/ && sudo cp -r php /usr/share/nginx/html/zabbix
在瀏覽器中打開http://192.168.1.115/zabbix開始web界面的setup
這里有2個重要的地方,一是 zabbix會檢查php的設置
如下圖,圖中標紅的是默認需要修改的參數,php的設置文件為/etc/php5/cgi/php.ini
改完後記得
view sourceprint?1 sudo service php-fcgi restart
二是mysql db的設置
最後,要手動將生成的設置文件zabbix.conf.php上傳到/usr/share/nginx/html/zabbix/conf
gnome終端對rz支持不好,我就不上傳了,而是直接將下載的zabbix.conf.php的內容進行Ctl+C,直接在伺服器上vi zabbix.conf.php然後再Shift+Insert粘貼進去
然後再點幾個Next.就安裝完了
zabbix默認用戶是admin,密碼是zabbix,登陸後一定要修改。
B. zabbix-agnet擴展監控腳本多次調用失敗
1.修改zabbix server端的配置文件,啟用AlertScriptsPath,使其支持腳本功能
1.編輯zabbix server端的配置文件,並重啟服務
# vim /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/alertscripts
# /etc/init.d/zabbix_server restart
2.在服務端添加郵件報警的python腳本,並給腳本執行許可權
郵件報警,並記錄日誌
# vim /usr/local/zabbix/alertscripts/zabbix_sendmail.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pdb
import smtplib
import string
import time
import sys
reload(sys)
sys.setdefaultencoding(『utf-8『)
#pdb.set_trace()
#HOST = "mail.gw.com.cn"
def S_Mail():
HOST = "smtp.exmail.qq.com" #郵件伺服器
SUBJECT = sys.argv[2].decode(『utf-8『).encode(『gbk『) #主題
TO =sys.argv[1] #收件郵箱
FROM = "[email protected]"
text = sys.argv[3].decode(『utf-8『).encode(『gbk『) #發件內容
BODY = string.join((
"FROM: %s" % FROM,
"To: %s" % TO,
"Subject: %s" %SUBJECT,
"",
text
),"\r\n")
server = smtplib.SMTP()
server.connect(HOST,25)
#server.starttls()
server.login("發件郵箱","密碼")
server.sendmail(FROM,[TO],BODY)
server.quit()
# email log 記錄日誌
with open(『/data/logs/zabbix/Email.log『, 『a『) as f:
date=time.strftime("%y-%m-%d %H:%M:%S")
str = date + " " + TO +" " + SUBJECT + "\r\n" + "\n"
str1 = str.decode(『gbk『).encode(『utf-8『)
# print("%s" %str1)
f.write(str1)
if __name__==『__main__『:
S_Mail()
C. observium 支持windows伺服器嗎
支持的。
Observium 社區版本是一個在 QPL 開源許可證下的免費工具,這個版本是對於較小部署的最好解決方案。該版本每6個月進行一次安全性更新。
第2個版本是 Observium 專業版,該版本採用基於 SVN 的發布機制。 會得到每日安全性更新。 該工具適用於服務提供商和企業級部署。
更多信息可以通過其官網獲得。
系統需求
要安裝 Observium, 需要具有一個最新安裝的伺服器。Observium 是在 Ubuntu LTS 和 Debian 系統上進行開發的,所以推薦在 Ubuntu 或 Debian 上安裝 Observium,因為可能在別的平台上會有一些小問題。
該文章會引導你在 Ubuntu 12.04 上安裝 Observium。對於小型的 Observium 安裝,建議使用 256MB 內存和雙核處理器的配置。
安裝需求
在安裝 Observuim 之前,你需要確認安裝所有的依賴關系包。
首先,使用下面的命令更新你的伺服器:
sudo apt-get update
然後你需要安裝下列運行 Observuim 所需的全部軟體包。
Observium 需要使用下面所列出的軟體才能正確的運行:
LAMP 伺服器
fping
Net-SNMP 5.4+
RRDtool 1.3+
Graphviz
對於可選特性的要求:
Ipmitool - 僅在當你想要獲取伺服器上的 IPMI(Intelligent Platform Management Interface 智能平台管理介面)基板控制器時。
Libvirt-bin - 僅在當你想要使用 libvirt 進行遠程 VM 主機監控時。
sudo apt-get install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-mcrypt php5-json php-pear snmp fping mysql-server mysql-client python-mysqldb rrdtool subversion whois mtr-tiny ipmitool graphviz imagemagick libvirt ipmitool
為 Observium 創建 MySQL 資料庫及其用戶。
現在你需要登錄到 MySQL 中並為 Observium 創建資料庫:
mysql -u root -p
在用戶驗證成功之後,你需要按照下面的命令創建該資料庫。
CREATE DATABASE observium;
資料庫名為 Observium,稍後你會需要這個信息。
現在你需要創建資料庫管理員用戶。
CREATE USER observiumadmin@localhost IDENTIFIED BY 'observiumpassword';
接下來,你需要給該管理員用戶相應的許可權來管理創建的資料庫。
GRANT ALL PRIVILEGES ON observium.* TO observiumadmin@localhost;
你需要將許可權信息寫回到磁碟中來激活新的 MySQL 用戶:
FLUSH PRIVILEGES;
exit
下載並安裝 Observium
現在我們的系統已經准備好了, 可以開始Observium的安裝了。
第一步,創建 Observium 將要使用的文件目錄:
mkdir -p /opt/observium && cd /opt
按本教程的目的,我們將會使用 Observium 的社區/開源版本。使用下面的命令下載並解壓:
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
現在進入到 Observium 目錄。
cd observium
將默認的配置文件 'config.php.default' 復制到 'config.php',並將資料庫配置選項填充到配置文件中:
cp config.php.default config.php
nano config.php
/ Database config
$config['db_host'] = 'localhost';
$config['db_user'] = 'observiumadmin';
$config['db_pass'] = 'observiumpassword';
$config['db_name'] = 'observium';
現在為 MySQL 資料庫設置默認的資料庫模式:
php includes/update/update.php
現在你需要創建一個文件目錄來存儲 rrd 文件,並修改其許可權以便讓 apache 能將寫入到文件中。
mkdir rrd
chown apache:apache rrd
為了在出現問題時排錯,你需要創建日誌文件。
mkdir -p /var/log/observium
chown apache:apache /var/log/observium
現在你需要為 Observium 創建虛擬主機配置。
<VirtualHost *:80>
DocumentRoot /opt/observium/html/
ServerName observium.domain.com
CustomLog /var/log/observium/access_log combined
ErrorLog /var/log/observium/error_log
<Directory "/opt/observium/html/">
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>
下一步你需要讓你的 Apache 伺服器的 rewrite (重寫)功能生效。
為了讓 'mod_rewrite' 生效,輸入以下命令:
sudo a2enmod rewrite
該模塊在下一次 Apache 服務重啟之後就會生效。
sudo service apache2 restart
配置 Observium
在登入 Web 界面之前,你需要為 Observium 創建一個管理員賬戶(級別10)。
# cd /opt/observium
# ./adser.php admin adminpassword 10
User admin added successfully.
下一步為發現和探尋任務設置一個 cron 任務,創建一個新的文件 『/etc/cron.d/observium』 並在其中添加以下的內容。
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
*/5 * * * * root /opt/observium/poller-wrapper.py 1 >> /dev/null 2>&1
重載 cron 進程來增加新的任務。
# /etc/init.d/cron reload
好啦,你已經完成了 Observium 伺服器的安裝拉! 使用你的瀏覽器登錄到 http://<Server IP>,然後上路吧。