1、簡介php
Alexei Vladishev 建立了 Zabbix 項目html
Zabbix 是一個企業級的、開源的、分佈式的監控套件;前端
2、zabbix 進程構成java
默認 zabbix 包含5個進程:mysql
zabbix_agentd:客戶端守護進程,收集客戶端數據,例如 cpu 負載、內存、硬盤使用狀況;linux
zabbix_get:zabbix 工具,單獨使用命令,一般在 server 或者 proxy 端執行,用戶獲取被監控端數據,命令方式獲取客戶端數據,用於排錯;nginx
zabbix_proxy:zabbix 代理守護進程,功能相似 server,惟一不一樣的是它只是一箇中轉站,它須要把收集到的數據提交/被提交到 server 裏;c++
zabbix_server:zabbix 服務端守護進程,其餘的進程的數據都最終提交到 server,備註:數據都不是主動提交給 zabbix_server,大都是 server 主動去取數據;sql
zabbix_sender:zabbix 工具,用於發送數據給 server 或 proxy,一般用於耗時比較長的 check,而且與 trapper 配合使用;數據庫
zabbix_java_gateway(需另外安裝):java 網關,相似 agents,只用與 java ,只能主動去獲取數據,而不能被動獲取數據;
3、安裝
時間同步:安裝 Zabbix 服務需確保全部服務器的時間都是正確的,能夠添加 crontab 同步時間:
yum install ntpdate
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
00 00 * * * /usr/sbin/ntpdate us.pool.ntp.org | logger -t NTP
LNMP 環境配置
一、 Nginx 安裝
1)安裝必要軟件
yum install pcre pcre-decel openssl openssl-devel gcc make cmake gcc-c++
2) 編譯安裝 nginx
下載 nginx-1.10.1.tar.gz
tar zxvf nginx-1.10.1.tar.gz && cd nginx-1.10.1
./configure --prefix=/usr/local/nginx-1.10.1 --with-http_ssl_module --with-http_stub_status_module --with-pcre
參數詳細信息參考 README
編譯無報錯:
make && make install
/usr/local/nginx-1.10.1/sbin/nginx
/usr/local/nginx-1.10.1/sbin/nginx -s reload
/usr/local/nginx-1.10.1/sbin/nginx -s stop
二、編譯安裝 php
1)下載
yum install gd-devel libjpeg-devel libpng-devel libxml2-devel bzip2-devel libcurl-devel
tar -zxvf php-5.6.23.tar.gz
cd php-5.6.23
./configure --prefix=/usr/local/php-5.6.23 --with-config-file-path=/usr/local/php-5.6.23/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
zabbix 對於 php參數、php模塊有特殊的要求,編譯 php 時要注意加上;
而且對安裝完成的 php.ini 文件中要特別修改:(zabbix 要求)
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
執行
make && make install
2)配置 php
cp /root/php-5.6.23/php.ini-production /usr/local/php-5.6.23/etc/php.ini
cp /usr/local/php-5.6.23/etc/php-fpm.conf.default /usr/local/php-5.6.23/etc/php-fpm.conf
3)啓動 php
/usr/local/php-5.6.23/sbin/php-fpm
三、安裝 mysql
1)安裝必要組件、下載
yum install autoconf automake imake libxml2-devel expat-devel libaio libaio-devel bzr bison libtool ncurses5-devel
wget -c http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz/from/http://cdn.mysql.com/ -O mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz
tar zxvf mysql-5.6.14-linux-glibc2.5-x86_64.tar.gz –C ../
ln -s mysql-5.6.14-linux-glibc2.5-x86_64 mysql
2)建立 mysql 用戶組和用戶、及數據庫存放目錄
mkdir -p /data/mysq_data
mkdir -p /data/mysql_log
mkdir -p /data/log-bin
groupadd mysql
useradd mysql -g mysql -M -s /sbin/nologin
chown -R mysql.mysql /data/mysql_data /data/mysql_log /data/log-bin
chown -R mysql.mysql /usr/local/mysql-5.6.14-linux-glibc2.5-x86_64
3)配置 my.cnf 根據具體環境配置
############################################################
[mysqld]
# GENERAL #
user = mysql
default-storage-engine = InnoDB
socket = /data/mysql_data/mysql.sock
pid-file = /data/mysql_data/mysql.pid
port = 3306
# MyISAM #
key_buffer_size = 1344M
myisam_recover = FORCE,BACKUP
# SAFETY #
max_allowed_packet = 16M
max_connect_errors = 1000000
skip_name_resolve
# DATA STORAGE #
datadir = /data/mysql_data/
long_query_time = 1
# BINARY LOGGING #
log-bin = /data/log-bin/mysql-bin
expire-logs-days = 14
sync-binlog = 1
server-id = 1
max_binlog_size = 500M
# REPLICATION #
relay-log = /data/log-bin/relay-bin
slave-net-timeout = 60
# CACHES AND LIMITS #
tmp_table_size = 32M
max_heap_table_size = 32M
max_connections = 500
thread_cache_size = 50
open_files_limit = 65535
table_definition_cache = 4096
table_open_cache = 4096
# INNODB #
innodb_data_file_path = ibdata1:128M;ibdata2:10M:autoextend
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_lock_wait_timeout = 50
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_thread_concurrency = 8
innodb_buffer_pool_size = 8G
# LOGGING #
log-error = /data/mysql_log/mysql-error.log
log-queries-not-using-indexes = 1
slow-query-log = 1
long_query_time = 1
slow-query-log-file = /data/mysql_log/mysql-slow.log
# FOR SLAVE #
#binlog-format = ROW
#log-slave-updates = true
#gtid-mode = on
#enforce-gtid-consistency = true
#master-info-repository = TABLE
#relay-log-info-repository = TABLE
#sync-master-info = 1
#slave-parallel-workers = 2
#binlog-checksum = CRC32
#master-verify-checksum = 1
#slave-sql-verify-checksum = 1
#binlog-rows-query-log_events = 1
#report-port = 3306
#report-host = 10.1.1.10
############################################################
my.cnf 文件 使用需加上參數 --defaults-file=/etc/my.cnf
my.cnf 文件影響 mysql 啓動,其中參數配置過大,可能會由於 mysqld 進程啓動佔用內存過大而被系統強制 kill 掉;
4)系統服務初始化
cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql
basedir=/usr/local/mysql
datadir=/data/mysql_data
chmod 755 /etc/init.d/mysql
chkconfig -add mysql
chkconfig --level 345 msql on
5)初始化數據庫
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf
6)啓動數據庫
service mysql start
7)修改root密碼
/usr/local/mysql/bin/mysql -p -u root -S /tmp/mysql.sock
Mysql> delete from mysql.user where user='';
Mysql> update mysql.user set password=PASSWORD('xxxxxxxx') where user='root';
Mysql> flush privileges;
四、安裝 zabbix 服務
1)下載安裝 zabbix
http://www.zabbix.com/download.php 下載須要的版本
tar -xzvf zabbix-3.0.3.tar.gz
cd zabbix-3.0.3
./configure --prefix=/usr/local/zabbix-3.0.3 --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2
PS:錯誤可參考 http://os.51cto.com/art/201104/252989.htm
make && make install
zabbix server 通常充當兩個角色,server、agent(須要監控本身),因此添加了 --enabe-agent
2)建立用戶
在 root 環境下運行 zabbix,zabbix 將會主動嘗試以 zabbix 身份來運行;
groupadd zabbix
useradd -g zabbix zabbix
3)初始化數據庫
zabbix server 與 proxy 須要數據庫,agent 不須要,proxy 只須要導入 schema.sql 一個文件便可,server 則需導入三個;
mysql -u root -p123456
mysql> create database zabbix default charset utf8; -----防止中文亂碼出現
mysql> quit;
mysql -u root -p 123456 zabbix < database/mysql/scherm.sql
server :
mysql -u root -p 123456 zabbix < database/mysql/images.sql
mysql -u root -p 123456 zabbix < database/mysql/data.sql
4) 配置 zabbix
mkdir /etc/zabbix
cp conf/zabbix_server.conf /etc/zabbix/
vim /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=root
DBPassword=123456
DBPort=3306
5)啓動 zabbix server
/usr/local/zabbix-3.0.3/sbin/zabbix_server -c /etc/zabbix/zabbix_server.conf
default port:10051
五、客戶端安裝配置
http://www.zabbix.com/download.php
tar -zxvf zabbix-3.0.3.tar.gz
cd zabbix-3.0.3
./configure --prefix=/usr/local/zabbix-3.0.3/ --enable-agent
make && make install
1)客戶端配置
vim /usr/local/zabbix-3.0.3/etc/zabbix_agentd.conf
Server=127.0.0.1
ServerActive=127.0.0.1
Hostname=Zabbix server
其中 server 和 serveractive 都指向 zabbixserver 的 ip,不一樣的是,前者是被動後者是主動,server 配置是用來容許 127.0.0.1 這個 ip 來我這獲取數據,而 serverActive 則是客戶端主動提交數據給它,主機安裝客戶端需添加 zabbix 用戶;
2)客戶端啓動
/usr/local/zabbix-3.0.3/zabbix_agentd
default prot: 10050
六、zabbix 管理網站配置
1)拷貝前端文件
mkdir /data/logs/nginx
mkdir /data/site/zabbix
cp -rp /root/zabbix-3.0.3/frontends/php/* /data/site/zabbix
2)配置虛擬主機
vim /usr/local/nginx-1.10.0/conf/nginx.conf
############################################################
server {
listen 80;
server_name *IP*;
access_log /data/logs/nginx/zabbix.access.log main;
index index.html index.php index.html;
root /data/site;
location /
{
try_files $uri $uri/ /index.php?$args;
}
location ~ ^(.+\.php)(.*)$
{
fastcgi_split_path_info ^(.+\.php)(.*)$;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
##############################################################
七、在線配置 zabbix
後臺nignx、php、zabbix_server 服務都開啓
瀏覽器打開 http://IP/zabbix
按步驟配置完成,zabbix server details 裏面 name 能夠不填默認便可;
Install 步驟中需下載 zabbix.conf.php 至 /data/site/zabbix/conf 下
八、登陸 zabbix
默認 User:Admin /zabbix
九、zabbix 升級
關閉 zabbix server ,防止有新的數據提交到數據庫,直接關閉數據庫效果也是同樣的;
備份配置文件(/etc/zabbix)、php 網站源碼、zabbix 二進制文件(整個目錄備份便可);
從新下載新版本,而後 configue ---> make && make install
十、zabbix 中文亂碼處理
上傳 simkai.ttf 到服務器的 /data/site/zabbix/fonts/ 下
修改 zabbix php 配置文件
cd /data/site/zabbix/include/
sed -i 's/DejaVuSans/simkai/g' ./defines.inc.php
十一、zabbix 數據庫遷移
zabbix 將從 agent 處獲取的數據寫入數據庫中,數據庫空間可能不足,須要遷移,全量導出數據庫,遷移至新庫,刪除 /data/site/zabbix/conf 下的 zabbix.conf.php 文件,url :http://IP/zabbix/setup.php 從新設置;