hellow 运维
分类: 系统运维
2016-10-21 15:32:50
Centos 6.x安装zabbix 3.0
1、 首先查看系统 jdk 版本;
rpm -qa | grep java
发现有其他版本,卸载了它(以卸载 openjdk-1.6.0 为例)
yum remove java-1.6.0* -y
2、 然后安装 jdk1.7.0
yum install java-1.7.0* -y
安装支持组件
1、 安装第三方插件包
rpm -ivh
2、 依次安装
yum install php-pecl-ssh2.x86_64 libssh2-devel.x86_64 net-snmp* OpenIPMI OpenIPMI-devel -y
yum install rpm-build curl* curl-devel httpd php56w php56w-gd php56w-mysql php56w-bcmath php56w-mbstring php56w-xml php56w-ldap -y
yum install gcc mysql-community-devel libxml2-devel unixODBC-devel net-snmp-devellibcurl-devel libssh2-devel OpenIPMI-devel openssl-devel openldap-devel –y
同时修改/etc/php.ini 文件:
#vim /etc/php.ini
post_max_size=16M
max_execution_time=300
max_input_time=300
date.timezone=Asia/Shanghai
always_populate_raw_post_data=-1
安装配置 Mysql
1、 安装 mysql 得 yum 源
rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
2、 检查一下是否有可以更新的版本
yum repolist enabled | grep mysql
3、 安装 Mysql 数据库
yum install mysql-community-server mysql-devel -y
4、 启动 mysql
service mysqld start
5、 创建数据库(zabbix)、用户(zabbix)、密码(zabbix)
create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
flush privileges;
6、 说明:关于 Mysql 这里不展开说它得各项配置,只保证可用;用户可以根据个人&企业 要求对 Mysql 进行针对性的优化以及配置;
安装配置 Zabbix
1、 下载 Zabbix3.0.4
wget %20Latest%20Stable/3.0.4/zabbix- 3.0.4.tar.gz
tar -zxvf zabbix-3.0.4.tar.gz
3、 进入解压目录中的 database 下的 mysql 目录下,导入初始数据:
cd zabbix-3.0.4/database/mysql/
mysql -uroot -p zabbix < schema.sql
mysql -uroot -p zabbix < images.sql
mysql -uroot -p zabbix < data.sql
4、 导入完毕后,就可以进行安装了,进入安装根目录 zabbix-3.0.4/
cd zabbix-3.0.4
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-java --enable-proxy -with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc --with-ssh2 --with-openipmi --with-openssl --with-java-gateway
编译时提示需要安装的包
1)configure: error: no acceptable C compiler found in $PATH
需要安装apt-get -y install gcc
2)configure: error: MySQL library not found
需要安装apt-get -y install libghc6-hsql-mysql-dev
3)configure: error: LIBXML2 library not found
需要安装apt-get -y install libxml2-dev
4)configure: error: unixODBC library not found
需要安装apt-get -y install unixodbc-dev
5)configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
需要安装apt-get -y install libsnmp-dev
6)configure: error: Invalid OPENIPMI directory - unable to find ipmiif.h
需要安装apt-get -y install libopenipmi-dev
7)configure: error: Curl library not found
需要安装apt-get -y install libghc6-curl-dev
没有报错的话,执行 make install
5、 在/var/www/html/下创建文件夹 zabbix mkdir /var/www/html/zabbix
6、 拷贝 php 页面文件到/var/www/html/zabbix 目录下并授权
cp -R zabbix-3.0.4/frontends/* /var/www/html/zabbix
chown -R apache:apache /var/www/html/zabbix/
chmod +x /var/www/html/zabbix/conf/
7、 拷贝启动脚本到/etc/init.d
cp zabbix-3.0.4/misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
cp zabbix-3.0.4/misc/init.d/fedora/core/zabbix_server /etc/init.d/
chkconfig --add /etc/init.d/zabbix_server
chkconfig --add /etc/init.d/zabbix_agentd
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/' /etc/init.d/zabbix_server
sed -i 's/BASEDIR=\/usr\/local/BASEDIR=\/usr\/local\/zabbix/' /etc/init.d/zabbix_agentd
编辑
vim /usr/local/zabbix/etc/zabbix_server.conf
zabbix_server.conf 配置:
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=root
DBPassword=zabbix
ListenIP=127.0.0.1
vim /usr/local/zabbix/etc/zabbix_server.conf
zabbix_server.conf 配置:
ListenPort=10051
LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=root
DBPassword=zabbix
ListenIP=127.0.0.1
8、 配置自启动
chkconfig httpd on
chkconfig mysqld on
chkconfig zabbix_server on
chkconfig zabbix_agentd on
9、 启动服务
service httpd start
service mysqld start
service zabbix_server start
service zabbix_agentd start
10、注意事项:
a) 关闭 selinux;
b) 关闭防火墙,或者开放 80 端口访问;
11、访问监控页面 Admin zabbix
12、开始安装下一步下一步完成。
Zabbix3.0.4定义邮件发送报警和声音提示
1.下载软件
2.创建目录
mkdir /usr/local/bin
3.解压软件
tar zxf sendEmail-v1.56.tar.gz -C /usr/src
4.进入目录
cd /usr/src/sendEmail-v1.56
5.复制文件,并设置权限
cp -a sendEmail /usr/local/bin
chmod +x /usr/local/bin/sendEmail
6.安装组件
yum install perl-Net-SSLeay perl-IO-Socket-SSL -y
7.测试邮件功能
# /usr/local/bin/sendEmail -f From@163.com -t to@qq.com -s smtp.163.com -u "我是邮件主题" -o message-content-type=html -o message-charset=utf8 -xu From@163.com -xp password -m "我是邮件内容"
命令说明:
/usr/local/bin/sendEmail 命令主程序
-f from@163.com 发件人邮箱
-t to@163.com 收件人邮箱
-s smtp.163.com 发件人邮箱的smtp服务器
-u "我是邮件主题" 邮件的标题
-o message-content-type=html 邮件内容的格式,html表示它是html格式
-o message-charset=utf8 邮件内容编码
-xu from@163.com 发件人邮箱的用户名
-xp 123456 发件人邮箱密码
-m "我是邮件内容" 邮件的具体内容
例子:sendEmail -f hz7726@163.com -t hz7726@163.com -s smtp.163.com -u "aaaaa" -o message-content-type=html -o messages-character=utf8 -xu hz7726@163.com -xp hz7726 -m "a"
8.查看编辑脚本配置
进入zabbix自定义的指定目录,我这里是/usr/local/zabbix
可以查看zabbix_server.conf配置文件AlertScriptsPath变量是如何定义的。
vim /usr/local/zabbix/etc/zabbix_server.conf
找到AlertScriptsPath选项,可以自定义位置
### Option: AlertScriptsPath
# Full path to location of custom alert scripts.
# Default depends on compilation options.
#
# Mandatory: no
# Default:
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/local/zabbix/alertscripts
cd /usr/local/zabbix/alertscripts/
9.编辑脚本
vim sendEmail.sh
内容如下:
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail -f from@163.com -t "$to" -s smtp.163.com -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu from@163.com -xp password -m "$body"
说明:
from@163.com 替换成自己的发件邮箱
smtp.163.com 表示邮箱的smtp服务器,这里展示使用的是163邮箱,替换自己的邮箱SMTP地址
password 替换成发件邮箱密码
10.编辑完成后,给脚本权限
chmod +x sendEmail.sh
chown zabbix.zabbix sendEmail.sh
11.web界面配置
进入zabbix管理页面:
1:点击管理->报警媒介类型 点击最右边的创建媒体类型
输入脚本名称,类型选择脚本
添加以下3个参数,分别对应sendEmail.sh脚本需要的3个参数:收件人地址、主题、详细内容
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
解释:很多人安装zabbix 3.0之后,写的脚本一直发信不成功,手动执行时可以的。
那是因为zabbix3.0之后,可以自定义参数了。所以不写参数,它是不会传参数的。
在2.x版本不存在这个问题,默认会传3个参数。
邮件通知内容:
告警主机 : {HOSTNAME1}
告警时间 : {EVENT.DATE} {EVENT.TIME}
告警等级 : {TRIGGER.SEVERITY}
告警信息 : {TRIGGER.NAME}
告警项目 : {TRIGGER.KEY1}
问题详情 : {ITEM.NAME}:{ITEM.VALUE}
当前状态 : {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID : {EVENT.ID}
恢复后的回复:
告警主机 : {HOSTNAME1}
告警时间 : {EVENT.DATE} {EVENT.TIME}
告警等级 : {TRIGGER.SEVERITY}
告警信息 : {TRIGGER.NAME}
告警项目 : {TRIGGER.KEY1}
问题详情 : {ITEM.NAME}:{ITEM.VALUE}
当前状态 : {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID : {EVENT.ID}