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>,然后上路吧。