枫狐狸 发表于 2016-3-30 10:06:29

Centos7.2迷你版 zabbix3.0.1 LNMP安装部署+中文包+配置自动发邮件


zabbix3.0.2安装到oracle11.2.0.4http://www.iyunv.com/thread-221258-1-1.htmlzabbix配置informx监控
http://www.iyunv.com/thread-141275-1-1.html
监控一台主机上多个tomcat实例
http://www.iyunv.com/thread-227674-1-1.html
基于oracle环境的zabbix
http://www.iyunv.com/thread-337453-1-2.html


Centos7.2迷你版 zabbix3.0.1 LNMP安装部署+中文包+配置自动发邮件1. 安装前准备:
1.1 本实例运行环境说明:
操作系统版本:CentOS 7.2迷你版
首先,要先搭建Zabbix运行环境:LAMP(Linux + httpd(apache)+ MySQL + PHP(5.4以上))本实例的数据库、WEB、SERVER都在同一台主机上CentOS 7
httpd Server version: Apache/2.4.6 (CentOS)
Php5.4.16
Mysql Ver 15.1 Distrib 5.5.44-MariaDB, for Linux (x86_64) using readline 5.1

1.2 安装包下载
1.2.1官网安装包更新地址:
http://www.zabbix.com/download.php

1.3 安装依赖包:
yum -y install wget net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 libssh2.x86_64 libssh2-devel.x86_64php-pear php-xmlrpc

1.4 zabbix3.0.1 下载:
cd /home
wget http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.0.1/zabbix-3.0.1.tar.gz

1.5 关闭防火墙:
systemctl stop firewalld.service      #停止firewall
systemctl disable firewalld.service   #禁止firewall开机启动

需要关闭 selinux,一定要关闭这个,开启selinux会引起一连串问题,甚至zabbix的discovery功能也不能正常使用
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
确认是否修改成功
# grep SELINUX /etc/selinux/config
然后重启系统即可
# reboot

1.6 添加zabbix用户:
useradd -d /home/zabbix -s /sbin/nologin zabbix

1.7 安装MySQL:
从最新版本的linux系统开始,默认的是 Mariadb而不是mysql!使用系统自带的repos安装很简单:
# yum install -y mariadb mariadb-server
启动mariadb
# systemctl start mariadb
之前的服务管理命令还可以用
# service mariadb start
设置开机自启动
# systemctl enable mariadb
安全初始化,设置root密码等
# mysql_secure_installation
测试登录
# mysql -uroot -p123456

编辑/etc/my.cnf文件 在下面添加
max_connections=2000
open_files_limit=2048
innodb_file_per_table=1

重启数据库



2. 安装及配置
2.1 源码包编译安装
cd /home
tar xzvf zabbix-3.0.1.tar.gz
cd zabbix-3.0.1
./configure --prefix=/home/zabbix --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make install

2.2 配置zabbix程序目录拥有权
chown -R zabbix:zabbix /home/zabbix
2.3 添加端口
vim /etc/services
zabbix-agent 10050/tcp # Zabbix Agent
zabbix-agent 10050/udp # Zabbix Agent
zabbix-trapper 10051/tcp # Zabbix Trapper
zabbix-trapper 10051/udp # Zabbix Trapper

2.4 建立数据库及结构导入
# mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'XXXXXXXXX';
mysql> quit;

如要让远程访问数据库:
GRANT ALL PRIVILEGES ON *.* TO 'zabbix'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

从 zabbix 源码目录导入sql脚本:mysql -uroot -p123456 zabbix < /home/zabbix-3.0.1/database/mysql/schema.sql
mysql -uroot -p123456 zabbix < /home/zabbix-3.0.1/database/mysql/images.sql
mysql -uroot -p123456 zabbix < /home/zabbix-3.0.1/database/mysql/data.sql


2.5 修改zabbix配置文件
cd /home/zabbix/etc
vi /home/zabbix/etc/zabbix_server.conf
DBName=zabbix #数据库名称
DBUser=zabbix #数据库用户名
DBPassword=123456 #数据库密码
ListenIP=127.0.0.1 #数据库ip地址

2.6 添加zabbix服务启动及开机启动
2.6.1 从源码目录复制启动脚本到/etc/init.d/
cp /home/zabbix-3.0.1/misc/init.d/fedora/core5/zabbix_server /etc/init.d/
cp /home/zabbix-3.0.1/misc/init.d/fedora/core5/zabbix_agentd /etc/init.d/
ln -s /home/zabbix/etc /etc/zabbix

sed -i "s/\# CacheSize=8M/CacheSize=4G/g" /etc/zabbix/zabbix_server.conf

2.6.2 设置运行权限
chmod 700 /etc/init.d/zabbix_*

2.6.3 修改启动脚本程序目录正确路径
vim/etc/init.d/zabbix_server
修改:
ZABBIX_BIN="/usr/local/sbin/zabbix_server"
为:
ZABBIX_BIN="/home/zabbix/sbin/zabbix_server"
vim/etc/init.d/zabbix_agentd
修改:
ZABBIX_BIN="/usr/local/sbin/zabbix_agentd"
为:
ZABBIX_BIN="/home/zabbix/sbin/zabbix_agentd"

2.6.4 启动服务并设置开机启动
systemctl start zabbix_server
systemctl start zabbix_agentd
systemctl enable zabbix_server
systemctl enable zabbix_agentd

3. zabbix web 管理界面配置
3.1 部署web 目录
3.1.1从解压目录拷贝web代码
cp -rf /home/zabbix-3.0.1/frontends/php/* /var/www/html/
            代码目录                  zabbix web 项目目录
cp /var/www/html/conf/zabbix.conf.php.example /var/www/html/conf/zabbix.conf.php
修改zabbix.conf.php文件内容
---------------------------->>
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE']   = 'MYSQL';
$DB['SERVER']   = 'localhost';
$DB['PORT']   = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER']   = 'zabbix';
$DB['PASSWORD'] = 'XXXXXXXX';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = '';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
?>
---------------------------->>
3.1.2 启用zabbix的中文
# vi /var/www/html/include/locales.inc.php
在第55行开启zh_CN语言显示
'zh_CN' => ['name' => _('Chinese (zh_CN)'),    'display' => false],
修改为
'zh_CN' => ['name' => _('Chinese (zh_CN)'),    'display' => true],

3.2 php配置
3.2.1修改php/etc/php-fpm.d/www.conf.default或/etc/php.ini,下面值是最低要求(非php7的按3.2.2修改):
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
# php_value date.timezone Europe/Riga

3.2.2修改php.ini
sed -i "s@;date.timezone =@date.timezone = Asia/Shanghai@g" /etc/php.ini
sed -i "s@max_execution_time = 30@max_execution_time = 300@g" /etc/php.ini
sed -i "s@post_max_size = 8M@post_max_size = 32M@g" /etc/php.ini
sed -i "s@max_input_time = 60@max_input_time = 300@g" /etc/php.ini
sed -i "s@memory_limit = 128M@memory_limit = 128M@g" /etc/php.ini
sed -i "s@;mbstring.func_overload = 0@ambstring.func_overload = 2@g" /etc/php.ini
sed -i "s@upload_max_filesize = 2M@upload_max_filesize = 16M@g" /etc/php.ini

4. 启动httpd服务
4.1 配置httpd的主目录
修改/etc/httpd/conf/httpd.conf文件
DocumentRoot "/var/www/html"

4.2 开启httpd服务关设置为开机启动
systemctl start httpd
systemctl enable httpd

5. web界面配置
打开nginx 配置的域名链接http://服务器IP/setup.php,按如下配置:


输入要连接的数据库地址及zabbix数据库名:

可默认,下一步:


显示确认信息,下一步:


提示安装成功:

输入默认用户:Admin,密码:zabbi,点击”Sign in”登录,进入zabbix 界面:

登录后页面




设置中文后,查看图形有乱码,文字变成了方块
Win+R打开运行,输入fonts,回车进入Windows字体目录,找到微软雅黑-常规字体,复制出来将文件名修改为msyh.ttf,注意后缀ttf。
将msyh.ttf上传到服务器zabbix字体目录中:/var/www/html/fonts/修改配置文件
查看字体配置# grep FONT_NAME /var/www/html/include/defines.inc.php-n
45:define('ZBX_GRAPH_FONT_NAME',      'graphfont'); // font file name
93:define('ZBX_FONT_NAME', 'graphfont');            
确认字体名称是否可以替换
# grep graphfont /var/www/html/include/defines.inc.php-n
45:define('ZBX_GRAPH_FONT_NAME',      'graphfont'); // font file name
93:define('ZBX_FONT_NAME', 'graphfont');            
执行快捷替换
# sed -i "s/graphfont/msyh/g" /var/www/html/include/defines.inc.php
确认是否替换成功# grep FONT_NAME /var/www/html/include/defines.inc.php-n
45:define('ZBX_GRAPH_FONT_NAME',      'msyh'); // font file name
93:define('ZBX_FONT_NAME', 'msyh');

字体配置修改成功后,刷新图形界面即可看到图形字体显示正常了。

中文包
附上一下改过的界面中文文件,覆盖/var/www/html/locale/zh_CN/LC_MESSAGES目录同名文件重启httpd服务即可


配置自动邮件
安装mailx
yum -y install mailx dos2unix.x86_64

# which mailx
/usr/bin/mailx

邮件发送配置
vi /etc/mail.rc
在最后加上
set from=XXXX@com.cn                     #邮箱地址
set smtp=xxx.xxx.xxx.xxx                  #邮件服务器IP
set smtp-auth-user=xxxxxx                  #邮箱帐号
set smtp-auth-password=xxxxxx          #邮箱密码
set smtp-auth=login


发送邮件脚本Sendmail.sh
################
#!/bin/bash
file=/home/zabbix/bin/zabbix_mail.txt
echo "$3" > $file
/usr/bin/dos2unix$file
/usr/bin/mail -s "$2" $1 < $file

################


测试一下
echo "this is test!">test.txt
mail -s "test"xxxxx@163.com.cn < test.txt


配置zabbix自动邮件报警
vi /etc/zabbix/zabbix_server.conf

这里指定为AlertScriptsPath=/home/zabbix/bin

重启zabbix_server服务
#systemctl restart zabbix_server

添加用户,此处以test为例

添加报警方式及报警内容(邮箱地址)




添加自动邮件脚本参考官方说明:
https://www.zabbix.com/documentation/3.0/manual/config/notifications/media/script?s[]=script&s[]=parameters






这里使用中文报警内容

名称:test
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1} 发生: {TRIGGER.NAME}故障!


默认信息:
告警主机:{HOSTNAME1} {HOST.NAME}
告警时间:{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} {HOST.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}


设置报警条件

设置操作行为



完成成配置,启用


报警效果,鼠标指到主界面的动作下面的数字上即可看到邮件发送情况


DTitRAGmNt 发表于 2016-3-30 10:10:00

图片上传的有问题。

runtime 发表于 2016-4-2 01:40:19

谢谢

natsumi 发表于 2016-4-12 11:45:59

不错的教程 谢谢楼主分享。

18210010528 发表于 2016-5-3 12:15:43

写的不错,找了很多资料,都没有找到zabbix 3.0 关于邮件报警设置参数的这方面方法,很感激!加好友,如何?

18210010528 发表于 2016-5-3 12:15:53

写的不错,找了很多资料,都没有找到zabbix 3.0 关于邮件报警设置参数的这方面方法,很感激!加好友,如何?

枫狐狸 发表于 2016-5-3 12:40:37

18210010528 发表于 2016-5-3 12:15
写的不错,找了很多资料,都没有找到zabbix 3.0 关于邮件报警设置参数的这方面方法,很感激!加好友,如何 ...

基本上都是官网上找的,中文方面的说明很少,很多人的文档都缺东西。

建意安装3.0.2版本,中文支持比3.0.1好太多了,不用去下汉化包了。

18210010528 发表于 2016-5-4 08:50:36

好的,多谢!你现在对数据库都是监控什么了,有其它数据库如oracle\ mysql\ hadoop ,加你好友如何。我的QQ 1991055546

枫狐狸 发表于 2016-5-4 08:57:28

18210010528 发表于 2016-5-4 08:50
好的,多谢!你现在对数据库都是监控什么了,有其它数据库如oracle\ mysql\ hadoop ,加你好友如何。我的QQ...

主要是oracle和informix,oracle和mysql都是论坛里找的,informix是自己写的,我有发过帖子的(http://www.iyunv.com/thread-141275-1-1.html)

18210010528 发表于 2016-5-4 08:58:54

好的!也这么早!

xin1986xin 发表于 2016-5-9 10:04:27

zabbix 启动失败

xin1986xin 发表于 2016-5-9 10:04:33

zabbix 启动失败   # /etc/init.d/zabbix_server start Starting zabbix_server (via systemctl):Job for zabbix_server.service failed because a configured resource limit was exceeded. See "systemctl status zabbix_server.service" and "journalctl -xe" for details.                                                            [失败]

枫狐狸 发表于 2016-5-16 16:01:48

xin1986xin 发表于 2016-5-9 10:04
zabbix 启动失败   # /etc/init.d/zabbix_server start Starting zabbix_server (via sys ...

把debug改成5再启动,看下日志里怎么说的

Dream漂移 发表于 2016-6-12 15:48:50

好的!也这么早!

gx528 发表于 2016-6-14 21:00:18

求指点
自动邮件报警 发送不成功



枫狐狸 发表于 2016-6-15 09:34:34

gx528 发表于 2016-6-14 21:00
求指点
自动邮件报警 发送不成功

检查zabbix_server.conf文件,是否定议了脚本位置,你这个提示明显是找不到文件

### Option: AlertScriptsPath
#        Full path to location of custom alert scripts.
#        Default depends on compilation options.
#
# Mandatory: no
# Default:
#说明:监控报警脚本路径,非研发人员不建议修改此参数值
# AlertScriptsPath=${datadir}/zabbix/alertscripts

AlertScriptsPath=/home/zabbix/bin


gx528 发表于 2016-6-15 10:17:24

枫狐狸 发表于 2016-6-15 09:34
检查zabbix_server.conf文件,是否定议了脚本位置,你这个提示明显是找不到文件

### Option: AlertScrip ...



这里已经改了的
昨晚我已经把Sendmail.sh 这个脚本放到 /home/zabbix/bin 也不行
Sendmail.sh内容就是你上面给的那个
file:///C:\Users\Summer\AppData\Roaming\Tencent\Users\1958886868\QQ\WinTemp\RichOle\%{F5Z}JLU4}()]O6~$RVCGG.png




枫狐狸 发表于 2016-6-15 16:54:46

gx528 发表于 2016-6-15 10:17
这里已经改了的
昨晚我已经把Sendmail.sh 这个脚本放到 /home/zabbix/bin 也不行
Sendmail.sh内容就 ...

Sendmail.sh的权限是否正确,

另外,单独执行一下手工发送邮件,试试你的邮件设置是否正确
mail -s "test"xxxxx@com.cn

gx528 发表于 2016-6-15 20:57:46

枫狐狸 发表于 2016-6-15 16:54
Sendmail.sh的权限是否正确,

另外,单独执行一下手工发送邮件,试试你的邮件设置是否正确


单独 发送测试OK的!


能加你QQ学习下么。

枫狐狸 发表于 2016-6-17 09:59:44

gx528 发表于 2016-6-15 20:57
单独 发送测试OK的!




在Sendmail.sh里指定一下$1,$2,$3,写点内容到 file.txt , 然后全路径执行一下看看是否成功。

Sendmail的界面里那个传送的参数是否有写?
页: [1] 2 3 4
查看完整版本: Centos7.2迷你版 zabbix3.0.1 LNMP安装部署+中文包+配置自动发邮件