1.1 系統環境及軟件:php
Red Hat Enterprise Linux Server release 6.4 (Santiago)mysql-5.6.34
php-5.6.15.tar.gzhtml
mysql-5.0.41.tar.gzmysql
zabbix-3.0.4.tar.gzlinux
libmcrypt-2.5.8.tar.gzc++
1.2 關閉iptables和SELINUX web
# service iptables stopsql
# chkconfig iptables off數據庫
# setenforce 0apache
# vi /etc/sysconfig/selinuxjson
SELINUX=disabled
zabbix3.0.4對環境的要求 :
MySQL 5.1以上最好是 5.6或者更高的版本
PHP 5.4或者更高的版本
1.3 修改主機名及hosts
hostname zabbix-server.com
vi /etc/hosts#增長以下
192.168.70.161 zabbix-server.com
1.4 LAMP安裝
安裝Apahce, PHP, MySQL以及php鏈接mysql庫組件。
#yum -y install httpd httpd-devel
chkconfig--level 2345 httpd on
servicehttpd start
安裝編譯源碼所需的工具和庫
yuminstall \
make \
gcc \
gcc-c++ \
ncurses-devel\
cmake
新增mysql用戶組:
groupadd mysql
新增mysql用戶:
useradd -g mysql mysql -s/sbin/nologin
chmod 755 /home/mysql/
新建MySQL所須要的目錄
新建mysql安裝目錄:
mkdir -p /usr/local/mysql
新建mysql數據庫數據文件目錄:
mkdir -p /data/mysqldb
編譯安裝:
tar -zxvf mysql-5.0.41.tar.gz
cd mysql-5.0.41
./configure--prefix=/usr/local/mysql
注:從新運行配置,須要刪除CMakeCache.txt文件
rm -f CMakeCache.txt
make
makeinstall
修改mysql安裝目錄
chown-R mysql:mysql /usr/local/mysql
修改mysql數據庫文件目錄
chown -R mysql:mysql/data/mysqldb
初始化配置
進入安裝路徑
# cd /usr/local/mysql
進入安裝路徑,執行初始化配置腳本,建立系統自帶的數據庫和表
# ./bin/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysqldb--user=mysql
注:在啓動MySQL服務時,會按照必定次序搜索my.cnf,先在/etc目錄下找,找不到則會搜索"$basedir/my.cnf"
注意:若在/etc目錄下會存在一個my.cnf,須要將此文件改名爲其餘的名字,如:/etc/my.cnf.bak,不然,該文件會干擾源碼安裝的MySQL的正確配置,形成沒法啓動。
在使用"yumupdate"更新系統後,須要檢查下/etc目錄下是否會多出一個my.cnf,若是多出,將它重命名成別的。不然,MySQL將使用這個配置文件啓動,可能形成沒法正常啓動等問題。
複製mysql服務啓動配置文件
# mv/etc/my.cnf /etc/my.cnf.bak
# cp /root/mysql-5.0.41/support-files/my-huge.cnf/etc/my.cnf
vi /etc/my.cnf#在[client]和[mysqld]下加上以下行(登陸mysql中文不亂嗎):
default-character-set=utf8
啓動MySQL
添加服務,拷貝服務腳本到init.d目錄,並設置開機啓動
# cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
vi/etc/init.d/mysqld#修改以下內容
basedir=/usr/local/mysql
datadir=/data/mysqldb
設置開機啓動
chkconfigmysqld on
servicemysqld start
配置用戶
MySQL啓動成功後,root默認沒有密碼,咱們須要設置root密碼。
設置以前,咱們須要先設置PATH,不然不能直接調用mysql
修改/etc/profile文件,在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
exportPATH
讓配置當即生效
source/etc/profile
修改數據庫的root密碼:
mysql -uroot
mysql> SET PASSWORD = PASSWORD('123abc');
或是
# mysqladmin -uroot -p password 123abc
Enter password: 這裏直接回車
Warning: Using a password on the commandline interface can be insecure.
若要設置root用戶能夠遠程訪問,執行
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.16.%' IDENTIFIEDBY 'password' WITH GRANT OPTION;
root用戶的密碼,能夠和本地不一樣。
配置防火牆
防火牆的3306端口默認沒有開啓,若要遠程訪問,須要開啓這個端口
打開/etc/sysconfig/iptables文件,在「-A INPUT –m state --state NEW –m tcp–p –dport 22 –j ACCEPT」,下添加:
-A INPUT -m state --state NEW -m tcp -p-dport 3306 -j ACCEPT
而後保存,並關閉該文件,在終端內運行下面的命令,刷新防火牆配置:
serviceiptables restart
Yum安裝依賴:
yuminstall -y gcc \
gcc-c++\
autoconf\
libjpeg\
libjpeg-devel\
libpng\
libpng-devel\
freetype\
freetype-devel\
libpng\
libpng-devel\
libxml2\
libxml2-devel\
zlib \
zlib-devel\
glibc \
glibc-devel\
glib2 \
glib2-devel\
bzip2 \
bzip2-devel\
ncurses\
curl \
openssl-devel\
db4-devel\
libXpm-devel\
libX11-devel\
gmp-devel\
readline-devel\
libxslt-devel\
expat-devel\
xmlrpc-c\
libcurl\
libcurl-devel
安裝加密擴展庫,先安裝Libmcrypt
tar-zxvf libmcrypt-2.5.8.tar.gz
cdlibmcrypt-2.5.8
./configure
make
makeinstall
安裝php-5.6.15.tar.gz
[root@localhost ~]# tar -zxvf php-5.6.15.tar.gz
cd php-5.6.15
./configure\
--prefix=/usr/local/php\
--with-config-file-path=/etc\
--with-apxs2=/usr/sbin/apxs\
--with-mysql=/usr/local/mysql\
--with-mysqli=/usr/local/mysql/bin/mysql_config\
--enable-inline-optimization\
--enable-fpm\
--enable-soap\
--with-libxml-dir\
--with-xmlrpc\
--with-openssl\
--with-mcrypt\
--with-mhash\
--with-pcre-regex\
--with-sqlite3\
--with-zlib\
--enable-bcmath\
--with-iconv\
--with-bz2\
--enable-calendar\
--with-curl\
--with-cdb\
--enable-dom\
--enable-exif\
--enable-fileinfo\
--enable-filter\
--with-pcre-dir\
--enable-ftp\
--with-gd\
--with-openssl-dir\
--with-jpeg-dir\
--with-png-dir\
--with-zlib-dir \
--with-freetype-dir\
--enable-gd-native-ttf\
--with-gettext\
--with-gmp\
--with-mhash\
--enable-json\
--enable-mbstring\
--disable-mbregex\
--disable-mbregex-backtrack\
--with-libmbfl\
--with-onig\
--enable-pdo\
--with-pdo-mysql\
--with-zlib-dir\
--with-pdo-sqlite\
--with-readline\
--enable-session\
--enable-shmop\
--enable-simplexml\
--enable-sockets\
--enable-sysvmsg\
--enable-sysvsem\
--enable-sysvshm\
--enable-wddx\
--with-libxml-dir \
--with-xsl\
--enable-zip\
--enable-mysqlnd-compression-support\
--with-pear
其中--with-apxs2是用來生成Apache的PHP模塊libphp5.so的,不須要能夠去掉.
make
make install
php配置
php.ini是php運行核心配置文件
php-fpm.conf是php-fpm進程服務的配置文件
# cd php-5.6.28
# cp php.ini-production /etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default/usr/local/php/etc/php-fpm.conf
# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
# chmod +x /etc/init.d/php-fpm
fpm測試php配置
#/usr/local/php/sbin/php-fpm -t
[14-Oct-201710:13:46] NOTICE: configuration file /usr/local/php/etc/php-fpm.conf test issuccessful
添加到server裏管理啓動:
# chkconfig --add php-fpm
# chkconfig php-fpm on
# service php-fpm start
Starting php-fpm done
netstat–anpt
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 10847/php-fpm
修改PHP默認端口:
vi/usr/local/php/etc/php-fpm.conf
listen = 127.0.0.1:8000
#servicephp-fpm restart
#netstat –anpt
tcp 0 0 127.0.0.1:8000 0.0.0.0:* LISTEN 20527/php-fpm
配置 httpd.conf 讓apache支持PHP
# vi /etc/httpd/conf/httpd.conf
找到 AddType application/x-gzip .gz.tgz 在其下添加以下內
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source.phps
DirectoryIndex index.php index.html //設置首頁默認順序
LoadModulephp5_module /usr/lib64/httpd/modules/libphp5.so 這個模塊會在編譯的自動生成加入進去
vi /var/www/html/test.php
<?php
phpinfo();
?>
http://192.168.70.161/test.php
2.1.1 安裝zabbix所需的組件
yum -y install curllibcurl-devel net-snmp net-snmp-devel perl-DBI libdbi-dbd-mysql mysql-devel gccgcc++ make libxml2 libxml2-devel
2.1.2 建立zabbix用戶組與用戶:
# groupaddzabbix
# useradd -gzabbix -s /sbin/nologin zabbix
#[root@localhost ~]# tar -xzvf zabbix-3.0.4.tar.gz
# cdzabbix-3.0.4
# ./configure--prefix=/usr/local/zabbix-server --enable-server --with-mysql --with-net-snmp --with-libcurl--with-libxml2 --enable-agent --enable-ipv6
注:--enable-server代表安裝server,--enable-agent代表安裝agent
make && make install
2.1.4 建立數據庫和受權用戶
說明:數據文件導入的順序不能變,也能夠在命令行使用mysql命令導入數據文件
[root@localhost zabbix-3.0.4]#service mysqld start
[root@localhost zabbix-3.0.4]# mysql -uroot -p
mysql> createdatabase zabbix character set utf8;
mysql> grantall on zabbix.* to zabbix@'%' identified by '123456';
mysql> flushprivileges;
2.1.5導入數據庫sql腳本:
# cd zabbix-3.0.4
在解壓的zabbix目錄下,將database/mysql目錄下三個sql文件導入到zabbix數據庫裏。(下面用的是zabbix用戶來導入文件,這個用戶在數據庫是默認存在的)
# mysql -uzabbix -p123456 zabbix <database/mysql/schema.sql
# mysql -uzabbix -p123456 zabbix <database/mysql/p_w_picpaths.sql
# mysql -uzabbix -p123456 zabbix < database/mysql/data.sql
2.1.6修改server配置文件並啓動
mkdir -p /var/www/zabbix
cd zabbix-3.0.4
cp -R frontends/php /var/www/zabbix
chmod 777/var/www/zabbix/php/conf
vi/usr/local/zabbix-server/etc/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
DBHost=192.168.70.161
DBName=zabbix
DBUser=zabbix
DBPassword=123456
建立日誌文件存放位置:
mkdir/var/log/zabbix
chown -R zabbix:zabbix /var/log/zabbix
啓動zabbix服務:
ln -s/usr/local/mysql/lib/mysql/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15
/usr/local/zabbix-server/sbin/zabbix_server
2.1.7修改agentd配置文件並啓動
vi/usr/local/zabbix-server/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
EnableRemoteCommands=1
LogRemoteCommands=1
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=192.168.70.161
啓動zabbix服務:
/usr/local/zabbix-server/sbin/zabbix_agentd
2.1.8用server來管理啓動zabbix server服務:
# cdzabbix-3.0.4
# cpmisc/init.d/fedora/core/zabbix_server /etc/init.d/
# chkconfig --addzabbix_server
# chkconfig zabbix_server on
建立軟連接:
ln -s/usr/local/zabbix/sbin/zabbix_server /usr/local/sbin/
啓動服務:
vi /etc/init.d/zabbix_server
BASEDIR=/usr/local/zabbix-server
service zabbix_server start
2.1.9用server來管理啓動zabbix agentd服務:
# cdzabbix-3.0.4
# cpmisc/init.d/fedora/core/zabbix_agentd /etc/init.d/
# chkconfig --addzabbix_agentd
# chkconfig zabbix_agentd on
建立軟連接:
ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/
啓動服務:
vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix-server
service zabbix_agentd start
2.2 agent: (192.168.70.160)客戶端
yum -y install curllibcurl-devel net-snmp net-snmp-devel perl-DBI libdbi-dbd-mysql mysql-devel gccgcc++ make libxml2 libxml2-devel
2.2.2 建立zabbix用戶組與用戶:
# groupadd zabbix
# useradd -g zabbix -s /sbin/nologin zabbix
2.2.3安裝zabbix-3.0.4.tar.gz agentd:
#[root@localhost ~]# tar -xzvf zabbix-3.0.4.tar.gz
# cdzabbix-3.0.4
# ./configure --prefix=/usr/local/zabbix-agent --enable-agent
make && make install
2.2.4修改agentd配置文件並啓動
# vi /usr/local/zabbix-agent/etc/zabbix_agentd.conf
LogFile=/var/log/zabbix/zabbix_agentd.log
EnableRemoteCommands=1
LogRemoteCommands=1
Server=192.168.70.161
ServerActive=192.168.70.161
Hostname=192.168.70.160
2.2.5 用server來管理啓動zabbix服務:
# cd zabbix-3.0.4
# cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
# chkconfig --add zabbix_agentd
# chkconfig zabbix_agentd on
建立軟連接:
# ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/
啓動服務:
vi /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix-agent
service zabbix_agentd start
vi /etc/httpd/conf.d/zabbix.conf
# Zabbix monitoring systemphp web frontend
#Alias/zabbix/usr/share/zabbix
Alias /zabbix/var/www/zabbix/php
<Directory "/var/www/zabbix/php">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
#Require all granted
<IfModule mod_php5.c>
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 always_populate_raw_post_data-1
# php_value date.timezone Europe/Riga
php_value date.timezone Asia/Shanghai
</IfModule>
</Directory>
注:其中php_value date.timezone Asia/Shanghai主要是定義php的時區。
ln -s /usr/local/zabbix-server/sbin/zabbix_server/usr/sbin/zabbix_server
zabbix_server -V
ln -s /usr/local/zabbix-server/sbin/zabbix_agentd /usr/sbin/zabbix_agentd
替換監控圖像上系統默認的字體(默認字體不支持中文,若是不替換,圖像上會顯示亂碼)在Windows系統中的C:\Windows\Fonts目錄中複製出一箇中文字體文件,例如simhei.ttf (黑體 常規)把字體文件simkai.ttf上傳到zabbix站點根目錄下/var/www/zabbix/php/fonts文件夾中,並備份默認的字體文件。
#cd /var/www/zabbix/php/fonts
#mv DejaVuSans.ttf DejaVuSans.ttf.bak
修改simkai.ttf名稱爲DejaVusSans.ttf
#mv simhei.ttf DejaVuSans.ttf
最後重啓apache,zabbix服務,以下:
service httpd restart
servicezabbix_server restart
而後訪問http://192.168.70.161/zabbix/setup.php這個地址,以下進行安裝:
完成後便可登陸:zabbix默認的用戶名和密碼是Admin/zabbix
爲了防止誤操做從新安裝的風險(http://192.168.70.161/zabbix/setup.php)能夠將setup.php重命名以下:
#mv/var/www/zabbix/php/setup.php /var/www/zabbix/php/setup.php.bak
注:若是建立zabbix.conf.php文件這一步有報錯話,能夠手動下載好那個文件在相應目錄建立zabbix.conf.php文件複製裏面的內容便可:
vi /var/www/zabbix/php/conf/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;
$DB['TYPE'] ='MYSQL';
$DB['SERVER'] = '192.168.70.161';
$DB['PORT'] ='3306';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'zabbix';
// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';
$ZBX_SERVER = '192.168.70.161';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = '';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
###################################################
yum install mailx –y
mv /etc/mail.rc/etc/mail.rc.bak
vi /etc/mail.rc
set from="xkeqiang@pbcc.org.cn"
set smtp=11.201.249.14
set amtp-auth-user=xkeqiang
set smtp-auth-password=smgnews
set smtp-auth=login
vi/usr/local/zabbix-server/share/zabbix/alertscripts/mailx.sh
#!/bin/sh
echo "$3">/tmp/1.txt
dos2unix /tmp/1.txt
mail -s "$2"$1</tmp/1.txt
echo"#############################`date`##############################">>/tmp/zabbix-mail.txt
echo "mail to $1">>/tmp/zabbix-mail.txt
echo "$2">>/tmp/zabbix-mail.txt
echo "$3">>/tmp/zabbix-mail.txt
chmod +x/usr/local/zabbix-server/share/zabbix/alertscripts/mailx.sh
######################################
告警信息:
告警主機:{HOSY.NAME}
告警IP:{HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警名稱:{TRIGGER.NAME}
目前狀態:{TRIGGER.STATUS}
告警URL:{TRIGGER.URL}
時間ID:{EVENT.ID}
告警信息: {ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
----------------------------------------------------------------------------------
告警恢復信息:
告警主機:{HOST.NAME}
告警IP :{HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
恢復時間:{EVENT.DATE} {EVENT.RECOVERY.TIME}
告警等級:{TRIGGER.SEVERITY}
告警名稱:{TRIGGER.NAME}
目前狀態:{TRIGGER.STATUS}
告警URL:{TRIGGER.URL}
事件ID :{EVENT.ID}
告警詳細信息以下:
{ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
##################################################
3.2.4版本上
告警主機:{HOST.NAME}
告警IP :{HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警名稱:{TRIGGER.NAME}
目前狀態:{TRIGGER.STATUS}
告警URL:{TRIGGER.URL}
事件ID :{EVENT.ID}
告警詳細信息以下:
{ITEM.NAME1}({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
END!
############################################
mysql> select * from alerts order by clock desc limit 10 \G;
mysql> set names utf8;
mysql> select * fromalerts where message like '%vm.memory%'\G;
mysql> select * fromalerts order by clock desc limit 10 \G; #最近10條告警信息
mysql> select from_unixtime(clock) from alerts order by clock desc limit 10 \G