1.Zabbix3.0部署
相关服务软件版本环境:
https://monitoringartist.github.io/zabbix-searcher/ zabbix 全局配置
https://www.zabbix.com/documentation/2.0/manual/config/items/userparameters 如何自定义
Linux:centos 6.7
nginx:1.10.3
MySQL:5.6.30
PHP:5.6.35
apache2.4yum源安装
wget http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-httpd24.repo
yum install httpd24-httpd -y(httpd24-httpd-devel httpd24-mod_ssl)
一:用yum源安装:
#cd /etc/yum.repos.d
cat << EOF >> /etc/yum.repos.d/nginx.repo
> [nginx]
> name=nginx repo
> baseurl=http://nginx.org/packages/centos/6/$basearch/
> gpgcheck=0
> enabled=1
> EOF
第三方yum源:
# rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
安装程序:【Nginx+php】
yum install nginx openssh-clients -y
yum --enablerepo=remi,remi-php55 install php php-common
yum --enablerepo=remi,remi-php55 install php-cli php-gd php-redis php-pear php-mysqlnd php-pdo php-pgsql php-pecl-mongo php-sqlite php-pecl-memcached php-pecl-memcache php-mbstrin php-xml php-soap php-mcrypt php-fpm
------------------->国外比较好用
#rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
#rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
【php5.6.30版本】
yum install --enablerepo=remi --enablerepo=remi-php56 php-fpm
yum install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug php-pecl-xhprof php-bcmath php-gd --skip-broken
-------------------->国内比较好用
Php.ini配置
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = PRC
always_populate_raw_post_data = -1
mysql5.6 社区版yum源
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/5/$basearch/
enabled=1
gpgcheck=0
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
比如要安装5.7版本的mysql,要确定5.6的enabled=0,5.7的enabled=1,一次保证只启用一个子仓库
[mysql57-community-dmr]
name=MySQL 5.7 Community Server Development Milestone Release
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
二:测试php环境:(nginx+php整合)
在网站存放路径下写index.php文件,文件内容
<?php
phpinfo();
?>
然后进行访问:http://192.168.0.160
三:安装mysql5.6.35版本(社区版)
1. 查看是否已经默认安装mysql软件:
rpm -qa|grep mysql
如果存在的话,继续删除即可
yum remove mysql * -y
2.安装mysql5.6
#sudo yum install mysql-community-server
mysql-community-libs-compat-5.6.35-2.el5.x86_64
mysql-community-devel-5.6.35-2.el5.x86_64
mysql-community-libs-5.6.35-2.el5.x86_64
mysql-5.6.35-2.el5.x86_64
mysql-community-server-5.6.35-2.el5.x86_64
mysql-community-client-5.6.35-2.el5.x86_64
mysql-community-common-5.6.35-2.el5.x86_64
#sudo service mysqld start
#mysql –uroot –p
update mysql.user set password = password('xxxxxxxx') where user='root' and Host = 'localhost'; (为root用户添加密码)
或者mysqladmin -uroot password "zabbix"
mysql> create database zabbix default charset utf8;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.03 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| zabbix |
+--------------------+
5 rows in set (0.00 sec)
四:安装zabbix:
1.下载:wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.0/zabbix-3.0.0.tar.gz
-rw-r--r-- 1 root root 15407273 5月 21 2016 zabbix-3.0.0.tar.gz
[root@zabbix ~]# tar zxf zabbix-3.0.0.tar.gz && cd zabbix-3.0.0
2.编译zabbix
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --enable-proxy --with-mysql --with-net-snmp --with-libcurl --with-libxml2
#make && make install
3.编译过程中如果出错:
故障:checking for mysql_config... no
configure: error: MySQL library not found
解决: yum install mysql-community-devel -y
4.创建用户:
[root@zabbix zabbix-3.0.0]#groupadd zabbix
[root@zabbix zabbix-3.0.0]#useradd zabbix -s /sbin/nologin -M -g
5.导入文件:
[root@zabbix zabbix-3.0.0]# mysql -uroot -pzabbix zabbix <
database/mysql/schema.sql
[root@zabbix zabbix-3.0.0]# mysql -uroot -pzabbix zabbix < database/mysql/images.sql
[root@zabbix zabbix-3.0.0]# mysql -uroot -pzabbix zabbix < database/mysql/data.sql
五:管理网站配置:
[root@zabbix zabbix-3.0.0]#mkdir /home/www/zabbix -p
[root@zabbix zabbix-3.0.0]#cp -rp frontends/php/* /home/www/zabbix
1.nginx虚拟主机配置:
2.将/etc/nginx/conf.d下的default.conf文件备份,原文件删掉,在重新写一个zabbix.conf文件:文件配置内容如下
[root@zabbix conf.d]#pwd
/etc/nginx/conf.d
[root@zabbix conf.d]#vim zabbix.conf
server{
listen 80;
server_name _;
index index.php;
root /home/www/zabbix;
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 30d;
}
location ~* \.php$ {
root /home/www/zabbix;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/www/zabbix$fastcgi_script_name;
include fastcgi_params;
}
}
3.修改zabbix配置文件:
进入/usr/local/zabbix/etc
[root@zabbix etc]#ll
-rw-r--r-- 1 root root 10241 3月 17 03:20 zabbix_agentd.conf
drwxr-xr-x 2 root root 4096 3月 16 23:52 zabbix_agentd.conf.d
-rw-r--r-- 1 root root 15760 3月 16 23:52 zabbix_proxy.conf
drwxr-xr-x 2 root root 4096 3月 16 23:52 zabbix_proxy.conf.d
-rw-r--r-- 1 root root 14680 3月 17 00:52 zabbix_server.conf
drwxr-xr-x 2 root root 4096 3月 16 23:52 zabbix_server.conf.d
修改zabbix_server.conf的配置文件,配置如下
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
再修改zabbix_agentd.conf
Server=192.168.0.160
ServerActive=192.168.0.160
Hostname=Zabbix server (根据自己修改)
4.启动所有服务:
Service nginx restart
Service php-fpm restart
Service mysql restart
/usr/local/zabbix/sbin/zabbix_server
/usr/local/zabbix/sbin/zabbix_agentd
六:访问主页:http://192.168.0.160
注:如果点击下一步没有反应:就执行setfacl -R -m u:nginx:rwx /var/lib/php
如果出现以下情况,请安装php的依赖包
PHP bcmath extension missing (PHP configuration parameter --enable-bcmath).
PHP option "always_populate_raw_post_data" must be set to "-1"
PHP gd extension missing (PHP configuration parameter --with-gd).
PHP gd PNG image support missing.
PHP gd JPEG image support missing.
PHP gd FreeType support missing
需要下载文件,并上传到指定的服务器目录中.
修改界面为中文界面
默认登录界面为英文:
修改以下配置,并重启服务即可;
vim /home/www/zabbix/include/locales.inc.php
#'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => false],
'zh_CN' => ['name' => _('Chinese (zh_CN)'), 'display' => true],
接下来的配置就根据需求开发了
在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。
具体操作:(作为参考)
以下操作在Zabbix监控服务端进行
下载sendemail软件
然后安装那两个依赖包,命令是:
yum install perl-Net-SSLeayperl-IO-Socket-SSL -y
解压软件,然后将复制sendemail到/usr/local/bin/目录下,并加上可执行权限,然后修改用户和群组。
[root@mysqla ~]# tar zxfsendEmail-v1.56.tar.gz
[root@mysqla ~]# cdsendEmail-v1.56/
[root@mysqlasendEmail-v1.56]# cp sendEmail /usr/local/bin/sendEmail
[root@mysqlasendEmail-v1.56]# chown zabbix:zabbix /usr/local/bin/sendEmail
[root@mysqlasendEmail-v1.56]# ll /usr/local/bin/sendEmail
-rwxr-xr-x. 1 zabbix zabbix80213 Nov 21 21:26 /usr/local/bin/sendEmail
执行#/usr/local/bin/sendEmail -h查看sendEmail的帮助
#/usr/local/bin/sendEmail -fbpcyh1@126.com -t bpcyh1@126.com -s smtp.126.com -u "hello" -omessage-content-type=html -o message-charset=utf8 -xu bpcyh1@126.com -xp 123abc-m "abcfdd"
命令主要选项说明:
/usr/local/bin/sendEmail #命令主程序
-f from@126.com #发件人邮箱
-t to@126.com #收件人邮箱
-s smtp.126.com #发件人邮箱的smtp服务器
-u "我是邮件主题" #邮件的标题
-o message-content-type=html #邮件内容的格式,html表示它是html格式
-o message-charset=utf8 #邮件内容编码
-xu from@126.com #发件人邮箱的用户名
-xp WEE78@12l$ #发件人邮箱密码
-m "我是邮件内容" #邮件的具体内容
进入/usr/local/zabbix/share/zabbix/alertscripts/目录
然后在这个目录下创建报警脚本sendmail.sh
[root@mysqla alertscripts]#vi mail.sh
下面是脚本内容(涂颜色部分是你的邮箱和密码,-f和-xu参数后面跟邮箱,-xp后面跟授权码)
#!/bin/bash
to=$1
subject=$2
body=$3
/usr/local/bin/sendEmail-o tls=auto -f bpcyh1@126.com -t "$to" -s smtp.126.com -u"$subject" -o message-content-type=html -o message-charset=utf8 -xubpcyh1@126.com -xp 123abc -m "$body"
[root@mysqla alertscripts]#chmod +x mail.sh
执行脚本测试发邮件
[root@mysqla alertscripts]#./mail.sh bpcyh1@126.com test 123
*******************************************************************
Using the defaultof SSL_verify_mode of SSL_VERIFY_NONE for client
is deprecated! Please set SSL_verify_mode toSSL_VERIFY_PEER
together with SSL_ca_file|SSL_ca_path for verification.
If you reallydon't want to verify the certificate and keep the
connection open to Man-In-The-Middle attacks please set
SSL_verify_mode explicitly to SSL_VERIFY_NONE in yourapplication.
*******************************************************************
at /usr/local/bin/sendEmail line 1906.
invalid SSL_version specified at/usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 415
注:进行发送邮件测试时,出现了第一个报错
原因是sendemail软件和perl5里面的ssl版本不兼容导致的,通过修改sendemail里面的内容可以解决这个问题。
解决方法:
在sendemail中1906行的内容,从
if (!IO::Socket::SSL->start_SSL($SERVER, SSL_version => 'SSLv3 TLSv1')) {
修改为
if (! IO::Socket::SSL->start_SSL($SERVER)){
即不指定SSL的版本,让程序来自己选择
不管你使用的是163/126邮箱还是qq邮箱,你都必须开通pop3服务,而且126/qq邮箱还要求使用第三方客户端发送邮件是必须使用授权码登录,使用账号密码验证时,会出现下面图片中的错误。
sendEmail[5102]: ERROR =>ERROR => SMTP-AUTH: Authentication to smtp.126.com:25 failed.
至于邮箱的授权码,自己登录126邮箱去设置就好。
经过上面两个问题的处理后就可以正常发送邮件如下所示显示成功提示
[root@mysqla alertscripts]#./mail.sh bpcyh1@126.com test 123
Nov 21 22:50:47 mysqlasendEmail[5195]: Email was sent successfully!
zabbix web端配置
上面的邮件脚本配置好后,就要在web端添加报警媒介,在web页面的管理,报警媒介类型页面,点击右边的创建媒体类型
进入创建页面,然后输入名称“邮件报警脚本”,类型选择脚本,名称选择mail.sh,点击添加按钮,添加三个脚本参数,分别是{ALERT.SENDTO},{ALERT.SUBJECT},{ALERT.MESAGE},分别对于mail.sh中的to、subject和body。添加完成后点下面的添加按钮,我们的报警媒介就创建完成了
创建好报警媒介后,就需要将报警媒介关联到我们的用户。点击管理,用户,然后选择我们的用户admin也可新建一个用户,点击用户名就进入到用户配置界面。点击报警媒介,然后点添加,选择我们上一步创建的邮件报警脚本,输入收件人,选择报警时间和类型,然后点击添加,就将创建好的报警媒介关联到我们的用户上面了。
现在需要做的是,创建一个触发动作,即系统出现故障时,触发这个动作,然后给我们的邮箱发送报警邮件。点击配置,选择动作,然后点击右边的创建动作。
在动作这一页名称中写入我们定义的动作名以及触发条件
设置“操作”
步骤是1-3,也即是从1开始到3结束。一旦故障发生,就是执行Email.sh脚本发生报警邮件给zabbix用户。
假如故障持续了1个小时,它也只发送3次,第1-3次(即前3次)邮箱发送给zabbix用户,时间间隔为0秒。
如果改成1-0,0是表示不限制.无限发送
设置“恢复操作”
添加好以后就可以看到我们添加的动作名,以及该动作已启用的状态
报警测试
将192.16831.250服务器的zabbix_agent进程关闭。
发现可以正常收到故障报警邮件
最后,点击”报表“->”动作日志“,可以看到触发动作的次数(右边还看查看到邮件发送状态“已发送”)