Zabbix4.0(一) 安裝,web漢化

Zabbix監控的搭建理論:
持多種方式數據採集:簡單監控、Agent監控、snmp接口監控、JMX接口監控
告警配置web化:郵件、微信、釘釘、短信
Zabbix和Grafana的結合方便監控數據的可視化
Zabbix Server會去採集監控數據,採集的監控數據會寫入到SQL數據庫
Zabbix的WEB後端採用php語言開發,所有配置信息、用戶認證信息等會寫入SQL數據庫
企業級Zabbix的搭建依賴的環境:主流採用LNMP環境(Centos7+Nginx+Mysql+Php)\
支持分佈式監控(當面多成百上千的服務器的時候就需要分佈式監控,類似樹型結構 一臺server 服務器 ,下面是proxy代理,proxy代理下面連接成敗上千臺服務器)

服務器名 IP地址 角色
master1 192.168.0.100 接受server
agent1 192.168.0.101 監控agent
agent2 192.168.0.102 監控agent

master 跟其他兩臺互信(只是爲方便操作),並關閉防護牆和selinux

setenforce 0
systemctl disable firewalld
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.0.101
ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.0.102

LNMP平臺搭建

nginx:
yum install -y wget gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
cd /usr/local/src
yum install lrzsz -y
wget 'http://nginx.org/download/nginx-1.14.2.tar.gz'
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
./configure --prefix=/usr/local/nginx
make && make install
環境變量:export PATH=$PATH:/usr/local/nginx/sbin/
##使用systemctl管理Nginx,/usr/lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
[Install]
WantedBy=multi-user.target

PHP編譯安裝:

yum -y install epel-release
yum -y install gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel libxml2 libxml2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel libmcrypt libmcrypt-devel
cd /usr/local/src/
wget 'http://hk1.php.net/distributions/php-5.6.40.tar.gz'
tar -zxf php-5.6.40.tar.gz
cd php-5.6.40
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-ctype --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fpm
make && make install
cp php.ini-production /usr/local/php/etc/php.ini
環境變量:export PATH=$PATH:/usr/local/php/sbin/:/usr/local/php/bin/
檢查配置文件:php-fpm -t
使用默認配置文件:mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
啓動:php-fpm
使用systemctl管理php-fpm,/usr/lib/systemd/system/php-fpm.service
[Unit]
Description=php-fpm
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/php/sbin/php-fpm
[Install]
WantedBy=multi-user.target

修改nginx 配置

location / {
            root   html;
            index  index.html index.htm index.php;
        }
location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  ## 注意這地方的配置 如果沒修改正確 可能會報 file not found 
            include        fastcgi_params;
        }

mysql編譯安裝

yum install -y gcc gcc-c++ make tar openssl openssl-devel cmake ncurses ncurses-devel
useradd -s /sbin/nologin mysql
cd /usr/local/src
wget 'https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.46.tar.gz'
tar -zxvf mysql-5.6.46.tar.gz
cd mysql-5.6.46
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=all -DWITH_DEBUG=0 -DWITH_SSL=yes -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1
make && make install
cp support-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
export PATH=$PATH:/usr/local/mysql/bin/   ##mysql環境變量配置
##更新mysql配置/etc/my.cnf
[mysqld]
bind-address=0.0.0.0
port=3306
datadir=/data/mysql
user=mysql   ##啓動用戶
skip-name-resolve  ##禁用解析 只能使用IP
long_query_time=2  ##執行查詢超過2秒記錄
slow_query_log_file=/data/mysql/mysql-slow.log  ## 慢查詢日誌的記錄位置
expire_logs_days=2   ##bin-log日誌記錄時間超過2天會被刪除
innodb-file-per-table=1  ## 每個表都是一個獨立的文件
innodb_flush_log_at_trx_commit = 2 ##當設置爲0,該模式速度最快,但不安全,mysqld進程的崩潰會導致上一秒鐘所有事務數據的丟失。
#當設置爲1,該模式是最安全的,但也是最慢的一種方式。在mysqld 服務崩潰或者服務器主機crash的情況下,binary log 只有可能丟失最多一個語句或者一個事務。。
#當設置爲2,該模式速度較快,也比0安全,只有在操作系統崩潰或者系統斷電的情況下,上一秒鐘所有事務數據纔可能丟失。
log_warnings = 1
max_allowed_packet      = 512M
connect_timeout = 60
net_read_timeout = 120

[mysqld_safe]
log-error=/data/mysql/mysqld.log
pid-file=/data/mysql/mysqld.pid

##mysql數據庫初始化
mkdir -pv /data/mysql
chown -R mysql:mysql  /usr/loca*/mysql /dat**/mysql  ## *l **a 顯示問題作替換
yum install -y perl-Module-Install
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql  --datadir=/data/mysql/
#使用systemctl管理mysqld,/usr/lib/systemd/system/mysqld.service
[Unit]
Description=mysqld
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysqld start
[Install]
WantedBy=multi-user.target

systemctl start msyqld 
##啓動後不需要密碼
mysql -uroot -h 127.0.0.1 -A   ##-A  當我們打開數據庫,即use dbname時,要預讀數據庫信息,當使用-A參數時,就不預讀數據庫信息。加快登陸速度
##增加密碼,安全登陸
mysqladmin -h 127.0.0.1 -u root password 'zabbixpwd'
mysql -h 127.0.0.1 -uroot -pzabbixpwd -A

GRANT ALL PRIVILEGES ON . TO 'root'@'192.168.0.%' IDENTIFIED BY 'zabbixpwd' WITH GRANT OPTION;
flush privileges;
網絡登陸測試:mysql -h 192.168.237.49 -uroot -pzabbixpwd -A
LNMP 驗證環境
vim /usr/local/nginx/html/test.php
<?php
$link = mysqli_connect('127.0.0.1', 'root', 'zabbixpwd');
if (!$link) {
die('Could not connect: ' . mysqli_error());
}
echo 'Connected successfully';
mysqli_close($link);
?>

Zabbix4.0tls 編譯安裝

yum install -y libevent-devel wget tar gcc gcc-c++ make net-snmp-devel libxml2-devel libcurl-devel
useradd -s /sbin/nologin zabbix
cd /usr/local/src/
wget 'https://nchc.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/4.0.3/zabbix-4.0.3.tar.gz'
tar -zxvf zabbix-4.0.3.tar.gz
cd zabbix-4.0.3
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2
make  && make install
##zabbix啓動步驟:
#zabbix server的啓動
#需要到mysql裏做數據庫初始化
#配置zabbix server,最主要是配置連接mysql的用戶名和密碼
#啓動zabbix server
##環境變量修改
export PATH=$PATH:/usr/local/zabbix/sbin/:/usr/local/zabbix/bin/
##zabbix mysql初始化

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@'127.0.0.1' identified by 'zabbixpwd';
flush privileges;
set names utf8;
use zabbix;
source /usr/local/src/zabbix-4.0.3/database/mysql/schema.sql;
source /usr/local/src/zabbix-4.0.3/database/mysql/data.sql;
source /usr/local/src/zabbix-4.0.3/database/mysql/images.sql;

##修改zabbix server 配置
vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/zabbix_server.log
DBHost=127.0.0.1
DBName=zabbix    
DBUser=zabbix
DBPassword=zabbixpwd
DBPort=3306
Timeout=30
AlertScriptsPath=/usr/local/zabbix/alertscripts   ##郵件告警 微信告警等腳本存放位置
ExternalScripts=/usr/local/zabbix/externalscripts
LogSlowQueries=3000            ##慢查詢時間
####
chown zabbix:zabbix -R /usr/local/zabbix/ ##由於zabbix啓動用戶是zabbix 所有需要修改zabbix相關文件夾的用戶權限
zabbix_server ##啓動 默認監聽10051端口
##Zabbix Web的安裝
mkdir /usr/local/nginx/html/zabbix
cp -a /usr/local/src/zabbix-4.0.3/frontends/php/* /usr/local/nginx/html/zabbix/  ##放在NGINXweb目錄
#訪問
http://192.168.0.100/zabbix/
##修改php.ini相關配置通過安裝檢查
post_max_size = 32M
max_execution_time = 350
max_input_time = 350
date.timezone = Asia/Shanghai
always_populate_raw_post_data = -1
##生成相關配置文件 下載並編輯
vim /usr/local/nginx/html/zabbix/conf/zabbix.conf.php
##點擊FISH 注意這個時候 還是會報錯 不用管 直接http://192.168.0.100/zabbix/ 登陸
systemctl restart php-fpm  ##修改完畢啓動
##登陸修改相關設置
#1 關閉zabbix server 監控
![](https://s1.51cto.com/images/blog/201912/06/ea6f500a3c7f10382dd6112a4bfd4ba1.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#2 禁用guest用戶 在zabbix 中控制用戶相關權限只能去修改所屬組的權限
![](https://s1.51cto.com/images/blog/201912/06/fb9d01d7ad9366837879d85465325c5f.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
#3 修改管理員密碼,管理員默認密碼 Admin zabbix 
![](https://s1.51cto.com/images/blog/201912/06/705d6d5932f091b45de174407a19fb6c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
![](https://s1.51cto.com/images/blog/201912/06/cdb8844419a5e73880702d5eff0e0892.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

zabbix web界面漢化
#1 首先在admin用戶管理界面 將語言設置爲中文,由於字符的問題部分顯示會出先亂碼
#2 解決web界面亂碼

#下載微軟雅黑字體
https://raw.githubusercontent.com/chenqing/ng-mini/master/font/msyh.ttf  ## 注意 已經要以ttf 格式結尾 win10自帶的ttc文件用不了
###上傳路徑
/nginx/html/zabbix/assets/fonts or /web/zabbix/fonts 
##字符文件路徑根據/usr/local/nginx/html/zabbix/include/defines.inc.php 文件裏define('ZBX_FONTPATH',                          realpath('assets/fonts'))  文件顯示去找
vim /usr/local/nginx/html/zabbix/include/defines.inc.php 
##查找 DejaVuSans 修改爲msyh 總計替換2個
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章