1. 基础软件清单及版本列表
软件 | 下载链接 |
httpd-2.2.23 |
|
php-5.6.25 |
|
mysql-5.6.29 |
|
zabbix-3.4.4 | http://www.zabbix.com/download.php |
nginx-1.9.9 |
|
2. 安装Apache
# cd /usr/local
l 上传httpd-2.2.23.tar.gz安装包
# tar zxvf httpd-2.2.23.tar.gz
# cd httpd-2.2.23
# ./configure --prefix=/usr/local/apache2--enable-module=shared
# make && make install
3. 安装nginx
3.1. 基础支持套件
gcc gdb strace libgcc gcc-c++ libpnglibpng-devel freetype libxml2 libxml2-devel zlib zlib-devel glibc glibc-develglib2 glib2-devel bzip2 bzip2-devel curl libevent mysql-devel pcre pcre-devel
# rpm -q gcc gdb strace libgcc gcc-c++libpng libpng-devel freetype libxml2 libxml2-devel zlib zlib-devel glibcglibc-devel glib2 glib2-devel bzip2 bzip2-devel curl libevent mysql-devel pcrepcre-devel
# yum install -y gcc gdb strace libgccgcc-c++ libpng libpng-devel freetype libxml2 libxml2-devel zlib zlib-develglibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl libevent mysql-develpcre pcre-devel opensslopenssl-devel
3.2. 安装
wgethttp://nginx.org/download/nginx-1.9.9.tar.gz
# cd /usr/local/src
l 上传nginx-1.9.9.tar.gz安装包
# tar zxvf nginx-1.9.9.tar.gz
# cd nginx-1.9.9
#./configure --prefix=/usr/local/nginx --with-http_stub_status_module--with-http_ssl_module
# make && make install
3.3. 检查是否安装成功
# cd /usr/local/nginx/sbin
# ./nginx -t
结果显示:
nginx: the configuration file/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file/usr/local/nginx/conf/nginx.conf test is successful
3.4. 配置
# vi /usr/local/nginx/conf/nginx.conf
l 在index 后面加上index.php
index index.html index.htm index.php;
l location项
location ~ \.php$ {
expires -1s;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 10.1.34.4:9000;
}
3.5. 启动
# /usr/local/nginx/sbin/nginx -c/usr/local/nginx/conf/nginx.conf
4. 安装Php
4.1. 基础支持套件
bzip bzip2-devel gcc gcc-c++ glibc-devel
# rpm -q bzip bzip2-devel gcc gcc-c++ glibc-devel
# yum install bzipbzip2-devel.x86_64 gcc gcc-c++ glibc-devel
4.2. 安装
# cd /usr/local/src
l 上传php-5.6.25.tar.gz安装包
# tar zxvf php-5.6.25.tar.gz
# cd php-5.6.25
# ./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc--with-bz2 --with-curl \
--enable-ftp --enable-sockets--disable-ipv6 --with-gd \
--with-jpeg-dir=/usr/local--with-png-dir=/usr/local \
--with-freetype-dir=/usr/local --enable-gd-native-ttf\
--with-iconv-dir=/usr/local--enable-mbstring --enable-calendar \
--with-gettext --with-libxml-dir=/usr/local--with-zlib \
--with-pdo-mysql=mysqlnd--with-mysqli=mysqlnd --with-mysql=mysqlnd \
--enable-dom --enable-xml --enable-fpm --with-libdir=lib64--enable-bcmath
如果需要支持apache 编译加上--with-apxs2=/usr/local/apache2/bin/apxs
# make && make install
4.3. 复制启动文件
# cd /usr/local/src/php-5.6.25
# cp php.ini-development/usr/local/php/etc/php.ini
4.4. PHP配置参数
打开php.ini配置文件,修改如下参数为如下值,否则zabbix安装不了
# vi /usr/local/php/etc/php.ini
max_execution_time= 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize= 2M
max_input_time =300
date.timezone =Asia/Shanghai
4.5. 配置apache以支持PHP
# vi /usr/local/apache2/conf/httpd.conf
修改索引页,找到:
<IfModuledir_module>
DirectoryIndex index.html
</IfModule>
修改为
<IfModuledir_module>
DirectoryIndex index.html index.php
</IfModule>
接着增加如下内容:
AddTypeapplication/x-httpd-php .php
4.6. 测试php是否安装成功
在Apache安装目录下的htdocs文件夹下新建index.php文件,编辑文件添加如下代码
<?php
phpinfo();?>
重启Apache服务器,在地址栏输入 http://10.1.34.4/index.php 看到PHP相关配置,说明配置成功。
5. 安装mysql
5.1. 安装依赖的套件
# yum install make gcc gcc-c++ ncurses-devel cmake
l 新增mysql用户组和组
#groupadd mysql
# useradd -g mysql mysql -s /sbin/nologin
l 新建mysql安装目录
# mkdir -p /usr/local/mysql
新建mysql数据库数据文件目录:
# mkdir -p /data/mysqldb
5.2. 编译安装
# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysqldb/ \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock\
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_SSL=system \
-DMYSQL_TCP_PORT=3306 \
--enable-proxy \
-DWITH_SSL=bundled
注:重新运行配置,需要删除CMakeCache.txt文件
# rm -f CMakeCache.txt
# make
# make install
l 修改mysql安装目录
# chown -R mysql:mysql /usr/local/mysql
l 修改mysql数据库文件目录
# chown -R mysql:mysql/data/mysqldb
5.3. 启动MySQL
l 添加服务,拷贝服务脚本到init.d目录,并设置开机启动
# cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
l 设置开机启动
# chkconfig mysqld on
# service mysqld start
l 配置用户
MySQL启动成功后,root默认没有密码,我们需要设置root密码。
设置之前,我们需要先设置PATH,要不不能直接调用mysql
l 修改/etc/profile文件,在文件末尾添加
# vi /etc/profile
PATH=/usr/local/mysql/bin:$PATH
export PATH
l 让配置立即生效
# source /etc/profile
l 修改数据库的root密码:
# mysql -uroot
# mysql> SET PASSWORD = PASSWORD('123456');
l 或是
# mysqladmin -uroot -p password 123456
Enter password: 这里直接回车
Warning: Using apassword on the command line interface can be insecure.
l 若要设置root用户可以远程访问,执行
# mysql> GRANT ALL PRIVILEGES ON *.* TO'root'@'172.16.%’IDENTIFIED BY '123456' WITH GRANT OPTION;
6. zabbix安装
6.1. 监控机安装
6.1.1. 安装依赖套件
net-snmp-devel libxml2-devel libcurl-develpcre-devel gcc gcc-c++ glibc-devel
# rpm -q net-snmp-devel libxml2-devellibcurl-devel pcre-devel gcc gcc-c++ glibc-devel
# yum install net-snmp-devel libxml2-devellibcurl-devel pcre-devel gcc gcc-c++ glibc-devel
6.1.2. 编译安装libevent
# cd /usr/local/src/
l 使用winscp上传libevent-2.0.21-stable.tar.gz安装包
# tar zxvf libevent-2.0.21-stable.tar.gz
# cd libevent-2.0.21-stable
# ./configure
# make && make install
6.1.3. 安装服务端及客户端
# cd /usr/local/src
l 上传zabbix安装包
# tar -xzvf zabbix-3.4.4.tar.gz
# cd zabbix-3.4.4
# ./configure --prefix=/usr/local/zabbix/--enable-server \
--enable-agent --with-mysql --with-net-snmp--with-libcurl --with-libxml2
# make
# make install
6.1.4. 创建用户
# groupadd zabbix
# useradd -g zabbix zabbix
6.1.5. 初始化数据库
zabbix server与proxy需要数据库,angent不需要。尤其要注意的是proxy只需要导入一个sql文件,而server一共要导入3个sql文件。
# mysql -uroot -p123456
# mysql> create database zabbix defaultcharset utf8;
# mysql> quit;
# mysql--default-character-set=utf8 -uroot -p123456 zabbix </usr/local/src/zabbix-3.4.4/database/mysql/schema.sql
# mysql--default-character-set=utf8 -uroot -p123456 zabbix </usr/local/src/zabbix-3.4.4/database/mysql/images.sql
# mysql--default-character-set=utf8 -uroot -p123456 zabbix </usr/local/src/zabbix-3.4.4/database/mysql/data.sql
6.1.6. 配置zabbix服务端
# vi/usr/local/zabbix/etc/zabbix_server.conf
ListenPort=10051
SourceIP=10.1.34.4
DBHost=127.0.0.1
DBName=zabbix
DBUser=root
DBPassword=123456
DBPort=3306
6.1.7. 启动zabbix server
# cp/usr/local/src/zabbix-3.4.4/misc/init.d/fedora/core5/zabbix_server /etc/init.d/zabbix_server
# /etc/init.d/zabbix_server start
6.1.8. 配置zabbix客户端
# vi/usr/local/zabbix/etc/zabbix_agentd.conf
Server=127.0.0.1
ListenPort=10050
ServerActive=10.1.34.4
Hostname=Zabbix server
6.1.9. zabbix客户端启动
# cp/usr/local/src/zabbix-3.4.4/misc/init.d/fedora/core5/zabbix_agentd/etc/init.d/zabbix_agentd
# /etc/init.d/zabbix_agentd start
6.2. zabbix管理网站配置
# cd /usr/local/src/zabbix-3.4.4
# mkdir -p /var/www/html/zabbix
# cp -a frontends/php/*/var/www/html/zabbix
l 重启apache
#/usr/local/apache2/bin/apachectl restart
6.3. 被监控机安装客户端
6.3.1. 安装依赖套件
pcre-devel gcc gcc-c++ glibc-devel
# rpm -q pcre-devel gcc gcc-c++ glibc-devel
# yum install -y pcre-devel gcc gcc-c++glibc-devel
# cd /usr/local/src
l 上传zabbix安装包
# tar -xzvf zabbix-3.4.4.tar.gz
# cd /usr/local/src/zabbix-3.4.4
# ./configure --prefix=/usr/local/zabbix/--enable-agent
# make && make install
6.3.2. 创建用户
# groupadd zabbix
# useradd -g zabbix zabbix
6.3.3. 配置zabbix客户端
# vi/usr/local/zabbix/etc/zabbix_agentd.conf
Server=10.1.34.4
ListenPort=10050
ServerActive=10.1.34.4
Hostname=10.1.54.1(在页面添加主机的Hostname)
# sed -i's/Server=127.0.0.1/Server=10.1.34.4/g'/usr/local/zabbix/etc/zabbix_agentd.conf (更改监控机IP)
# sed -i 's/#ListenPort=10050/ListenPort=10050/g' /usr/local/zabbix/etc/zabbix_agentd.conf (打开监听端口)
# sed -i's/ServerActive=127.0.0.1/ServerActive=10.1.34.4/g'/usr/local/zabbix/etc/zabbix_agentd.conf (更改监控机IP)
# sed -i's/Hostname=Zabbix server/Hostname=10.1.54.1/g'/usr/local/zabbix/etc/zabbix_agentd.conf (更改被监控机 Hostname,Hostname为在zabbix网页上添加主机的Hostname,注意更改对应的Hostname)
6.3.4. zabbix客户端启动
# cp/usr/local/src/zabbix-3.4.4/misc/init.d/fedora/core5/zabbix_agentd/etc/init.d/zabbix_agentd
# sed -i's#ZABBIX_BIN="/usr/local/sbin/zabbix_agentd"#ZABBIX_BIN="/usr/local/zabbix/sbin/zabbix_agentd"#g'/etc/init.d/zabbix_agentd
# /etc/init.d/zabbix_agentd start
6.4. 在线配置zabbix
浏览器打开http://10.1.34.4/zabbix
安装界面,包括欢迎界面一共6步.
6.4.1. 登陆zabbix
默认用户名:Admin,密码:zabbix
如下是zabbix首页
7. 邮件报警
7.1. 使用Zabbix服务端本地邮箱账号发送邮件
7.1.1. 安装sendmail或者postfix
yum install sendmail #安装
service sendmail start #启动
chkconfig sendmail on #设置开机启动
yum install postfix
service postfix start
chkconfig postfix on
CentOS 5.x 默认已经安装好sendmail
CentOS 6.x 默认已经安装好postfix
sendmail和postfix只需要安装一个即可并开启服务即可。
7.1.2. 安装邮件发送工具mailx
yum install mailx #安装
CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx #卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make installUCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
echo "zabbix test mail" |mail -s"zabbix" xxx@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbixtest mail,发送到的邮箱:xxx@163.com
7.1.3. 配置Zabbix服务端邮件报警
7.1.3.1. 打开Zabbix
管理-示警媒介类型-Email
名称:Email
类型:电子邮件
SMTP伺服器:zabbix.sa.huanqiu.com
SMTP HELO:zabbix.sa.huanqiu.com
SMTP电邮:zabbix@zabbix.sa.huanqiu.com
已经用:勾选
存档
备注:zabbix.sa.huanqiu.com为Zabbix监控端主机名称,建议修改,否则使用默认的localhost.localdomain发送邮件会被当做垃圾邮件拦截。
7.1.3.2. 设置Zabbix用户报警邮箱地址
组态-用户-Admin (Zabbix Administrator)
切换到示警媒介
添加
类型:Email
收件人:xxx@163.com
其他默认即可,也可以根据需要设置
状态:已启用
存档
7.1.3.3. 设置Zabbix触发报警的动作
组态-动作-创建动作
名称:Action-Email
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息:打钩
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
用户:勾选Admin
选择
仅送到:Email
存档
7.1.4. 测试Zabbix报警
关闭Zabbix客户端服务
service zabbix_agentd stop
查看xxx@163.com邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看xxx@163.com邮箱,会收到恢复邮件
使用Zabbix服务端本地邮箱账号发送邮件设置完成。
7.2. 使用外部邮箱账号发送报警邮件设置
7.2.1. 关闭sendmail或者postfix
service sendmail stop #关闭
chkconfig sendmail off #禁止开机启动
service postfix stop
chkconfig postfix off
备注:
使用外部邮箱账号时,不需要启动sendmail或者postfix
如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱
配置信息。
7.2.2. 安装邮件发送工具mailx
yum install mailx #安装
CentOS 5.x 编译安装mailx,直接yum安装的mailx版本太旧,使用外部邮件发送会有问题。
yum remove mailx #卸载系统自带的旧版mailx
下载mailx:
http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
tar jxvf mailx-12.4.tar.bz2 #解压
cd mailx-12.4 #进入目录
make #编译
make installUCBINSTALL=/usr/bin/install #安装
ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
whereis mailx #查看安装路径
mailx -V #查看版本信息
7.2.3. 配置Zabbix服务端外部邮箱
vi /etc/mail.rc #编辑,添加以下信息
set from=xxx@163.com smtp=smtp.163.com
setsmtp-auth-user=xxx@163.com smtp-auth-password=123456
set smtp-auth=login
:wq! #保存退出
echo "zabbix test mail" |mail -s"zabbix" yyy@163.com
#测试发送邮件,标题zabbix,邮件内容:zabbixtest mail,发送到的邮箱:yyy@163.com
#这时候,邮箱yyy@163.com会收到来自xxx@163.com的测试邮件
7.2.4. 配置Zabbix服务端邮件报警
7.2.4.1. 打开Zabbix
管理-示警媒介类型-创建媒体类型
名称:Sendmail
类型:脚本
脚本名称:sendmail.sh
已启用:勾选
存档
7.2.4.2. 设置Zabbix用户报警邮箱地址
组态-用户-Admin (Zabbix Administrator)
切换到示警媒介-添加
类型:Sendmail
收件人:xxx@163.com
其他默认即可,也可
以根据需要设置
状态:已启用
存档
7.2.4.3. 设置Zabbix触发报警的动作
组态-动作-创建动作
名称:Action-Email
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息:打钩
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
已启用:打钩
切换到操作选项
新的
操作类型:送出信息
送到用户:添加
默认信息:打钩
选择用户:Admin
选择
仅送到:Sendmail
存档
7.2.4.4. 添加Zabbix服务端邮件发送脚本
cd/usr/local/zabbix/share/zabbix/alertscripts #进入脚本存放目录
vi sendmail.sh #编辑,添加以下代码
#!/bin/sh
echo "$3" | mail -s"$2" $1
:wq! #保存退出
chown zabbix.zabbix/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#设置脚本所有者为zabbix用户
chmod +x/usr/local/zabbix/share/zabbix/alertscripts/sendmail.sh
#设置脚本执行权限
五、测试Zabbix报警
关闭Zabbix客户端服务
service zabbix_agentd stop
查看xxx@163.com邮箱,会收到报警邮件
再开启Zabbix客户端服务
service zabbix_agentd start
查看xxx@163.com邮箱,会收到恢复邮件
使用外部邮箱账号发送报警邮件设置完成。
至此,Zabbix邮件报警设置完成。