注意:安裝zabbix要求仍是比較多的php
硬件方面:以監控主機臺數而定。html
軟件方面:源碼安裝,lamp/lnmp的版本要求,php的擴展包等。前端
https://www.zabbix.com zabbix的官方網站。java
部署nginxmysql
[root@localhost opt]# yum install gcc openssl openssl-devel pcre pcre-devel -y #安裝依賴 [root@localhost opt]# rz -y #rz上傳軟件包 [root@localhost opt]# ls nginx-1.12.2.tar.gz [root@localhost opt]# useradd -r -s /sbin/nologin nginx #建立nginx用戶 [root@localhost opt]# tar xf nginx-1.12.2.tar.gz && cd nginx-1.12.2 #解壓,進入目錄 [root@localhost nginx-1.12.2]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module #編譯 [root@localhost nginx-1.12.2]# make && make install #安裝 [root@localhost nginx-1.12.2]# /usr/local/nginx/sbin/nginx #直接啓動nginx [root@localhost nginx-1.12.2]# ps -ef |grep nginx #可查看nginx是否啓動
部署phplinux
[root@localhost nginx-1.12.2]# yum install -y gcc gcc-c++ make gd-devel libxml2-devel \ > libcurl-devel libjpeg-devel libpng-devel openssl-devel \ > libxslt-devel #安裝依賴 [root@localhost opt]# rz -y #上傳軟件包,亦可直接wget [root@localhost opt]# ls php-5.6.36.tar.gz ****************************************************************************************** [root@localhost opt]# wget http://docs.php.net/distributions/php-5.6.36.tar.gz [root@localhost opt]# tar xf php-5.6.36.tar.gz #解壓 [root@localhost opt]# cd php-5.6.36/ #進入安裝目錄 [root@localhost php-5.6.36]# ./configure --prefix=/usr/local/php \ > --with-config-file-path=/usr/local/php/etc \ > --enable-fpm --enable-opcache \ > --with-mysql --with-mysqli \ > --enable-session --with-zlib --with-curl --with-gd \ > --with-jpeg-dir --with-png-dir --with-freetype-dir \ > --enable-mbstring --enable-xmlwriter --enable-xmlreader \ > --enable-xml --enable-sockets --enable-bcmath --with-gettext #編譯 [root@localhost php-5.6.36]# make -j 8 && make install #安裝 [root@localhost php-5.6.36]# cp php.ini-production /usr/local/php/etc/php.ini #拷貝模塊文件 [root@localhost php-5.6.36]# cp sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf [root@localhost php-5.6.36]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@localhost php-5.6.36]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/ [root@localhost php-5.6.36]# chmod +x /etc/init.d/php-fpm #啓動文件權限 [root@localhost php-5.6.36]# /etc/init.d/php-fpm start #啓動php
部署mysqlios
[root@localhost php-5.6.36]# yum install cmake make gcc-c++ cmake bison-devel ncurses-devel perl-Module-Install.noarch -y #安裝依賴 [root@localhost opt]# wget http://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.27.tar.gz #下載mysql軟件包 [root@localhost opt]# groupadd mysql #建立mysql組 [root@localhost opt]# useradd mysql -s /sbin/nologin -M -g mysql #建立mysql用戶 [root@localhost opt]# mkdir -p /data/mysql && mkdir -p /usr/local/mysql #建立存儲數據目錄 [root@localhost opt]# tar xf mysql-5.6.27.tar.gz #解壓mysql軟件包 [root@localhost opt]# cd mysql-5.6.27/ #進入mysql目錄 [root@localhost mysql-5.6.27]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci #編譯 [root@localhost mysql-5.6.27]# make -j 8 && make install #安裝 [root@localhost mysql-5.6.27]# cp support-files/my-default.cnf /etc/my.cnf #配置文件 [root@localhost mysql-5.6.27]# vim /etc/my.cnf ##修改配置文件 ##在[mysqld]中增長一行 datadir=/data/mysql log_bin=mysql-bin [root@localhost mysql-5.6.27]# cp -rf support-files/mysql.server /etc/init.d/mysql [root@localhost mysql-5.6.27]# chown -R mysql.mysql /data/mysql [root@localhost mysql-5.6.27]# chown -R mysql.mysql /usr/local/mysql [root@localhost mysql-5.6.27]# chmod +x /etc/init.d/mysql [root@localhost mysql-5.6.27]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql --user=mysql #初始化 [root@localhost mysql-5.6.27]# ln -s /usr/local/mysql/bin/mysql /usr/bin #mysql命令連接 [root@localhost mysql-5.6.27]# /etc/init.d/mysql start #啓動mysql [root@localhost mysql-5.6.27]# mysql -uroot -p #登錄mysql mysql> use mysql; mysql> UPDATE user SET Password=PASSWORD('123456.') where USER='root'; #修改密碼 mysql> FLUSH PRIVILEGES; [root@localhost mysql-5.6.27]# mysql -uroot -pMa123456. #用新密碼登錄 mysql> create database zabbix; #建立zabbix數據庫 mysql> grant all on zabbix.* to 'zabbix'@'localhost' identified by '123456.'; #受權用戶 mysql> quit #退出 ######################################################################################## 如下爲導入zabbix數據,schema.sql,images.sql,data.sql文件在zabbix-4.0.0/database/mysql目錄 ######################################################################################## [root@localhost mysql]# mysql -uzabbix -p123456. zabbix < schema.sql [root@localhost mysql]# mysql -uzabbix -p123456. zabbix < images.sql [root@localhost mysql]# mysql -uzabbix -p123456. zabbix < data.sql
部署zabbix_servernginx
[root@localhost opt]# yum install libxml2-devel libcurl-devel libevent-devel net-snmp-devel mysql-community-devel -y [root@localhost opt]# tar xf zabbix-4.0.0.tar.gz && cd zabbix-4.0.0/ #解壓並進入 [root@localhost zabbix-4.0.0]# groupadd zabbix [root@localhost zabbix-4.0.0]# useradd -g zabbix zabbix -s /sbin/nologin ./configure --prefix=/usr/local/zabbix --enable-server --enable-proxy --enable-agent --with-mysql=/usr/local/mysql/bin/mysql_config --with-net-snmp --with-libcurl --with-libxml2 [root@localhost zabbix-4.0.0]# make && make install [root@localhost zabbix-4.0.0]# ls /usr/local/zabbix/ #zabbix目錄路徑 bin etc lib sbin share [root@localhost zabbix-4.0.0]# vim /usr/local/zabbix/etc/zabbix_server.conf #配置文件 DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=Ma123456. [root@localhost bin]# vi /usr/lib/systemd/system/zabbix_server.service #配置systemd文件 [Unit] Description=Zabbix Server After=syslog.target After=network.target [Service] Environment="CONFFILE=/usr/local/zabbix/etc/zabbix_server.conf" EnvironmentFile=-/etc/sysconfig/zabbix-server Type=forking Restart=on-failure PIDFile=/tmp/zabbix_server.pid KillMode=control-group ExecStart=/usr/local/zabbix/sbin/zabbix_server -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s TimeoutSec=0 [Install] WantedBy=multi-user.target [root@localhost bin]# systemctl start zabbix_server.service #直接啓動zabbix [root@localhost bin]# ps -ef |grep zabbix #查看zabbix進程 [root@localhost bin]# /usr/local/zabbix/sbin/zabbix_agentd #啓動zabbix_agent [root@localhost bin]# ps -ef |grep zabbix_agent #查看agent進程
部署web界面安裝c++
[root@localhost zabbix-4.0.0]# cp -rf /opt/zabbix-4.0.0/frontends/php/* /usr/local/nginx/html/ #把zabxix的前端頁面拷貝到nginx的發佈目錄 [root@localhost zabbix-4.0.0]# vim /usr/local/php/etc/php.ini #修改php配置文件 max_execution_time = 300 post_max_size = 16M max_input_time = 300 always_populate_raw_post_data = -1 date.timezone = Asia/Shanghai mysqli.default_socket = /var/lib/mysql/mysql.sock [root@localhost zabbix-4.0.0]# /etc/init.d/php-fpm restart #重啓php-fpm [root@localhost zabbix-4.0.0]# vim /usr/local/nginx/conf/nginx.conf #nginx整合php server { listen 80; server_name localhost; access_log logs/zabbix.access.log main; location / { root html; index index.php index.html index.htm; } location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } [root@localhost zabbix-4.0.0]# /usr/local/nginx/sbin/nginx -t #檢查nginx配置文件 [root@localhost zabbix-4.0.0]# /usr/local/nginx/sbin/nginx -s reload #從新加載nginx配置文件 #################################################################################### 至此,zabbix已經安裝完成,直接IP便可訪問。 安裝步驟: 1.配置DB, 2.配置zabbix用戶 3.下載文件,直接寫入/usr/local/nginx/html/conf/zabbix.conf.php文件 <?php // Zabbix GUI configuration file. global $DB; $DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '3306'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'zabbix'; $DB['PASSWORD'] = 'Ma123456.'; // 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; 4.直接登錄,(默認用戶Admin,密碼zabbix) 5.修改頁面爲中文 點擊右上角用戶--Language--chinese(zh_CN)--update便可
====yum安裝mysql==== [root@localhost ~]# yum -y install yum-utils #安裝插件 [root@localhost ~]# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm #安裝mysql源 [root@localhost ~]# yum-config-manager --disable mysql80-community #安裝mysql180 [root@localhost ~]# yum-config-manager --enable mysql57-community #安裝mysql157 [root@localhost ~]# yum install mysql-community-server #下載mysql [root@localhost ~]# yum install mysql-community-server -y #安裝mysql-server [root@localhost ~]# systemctl start mysqld #啓動mysql [root@localhost ~]# systemctl status mysqld #查看mysql狀態 [root@localhost ~]# grep 'temporary password' /var/log/mysqld.log #查看mysql隨機密碼 [root@localhost ~]# mysql -uroot -pXp.8nzZVFzri #登錄mysql mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Ma123456.'; #從新設置mysql密碼 [root@localhost etc]# cp my.cnf my.cnf.bak #備份一下mysql配置文件 [root@localhost etc]# vim /etc/my.cnf #從新設置mysql配置文件 [mysql] socket = /tmp/mysql.sock #socker路徑 [mysqld] user = mysql #用戶 port = 3306 #端口 datadir = /var/lib/mysql #數據目錄 socket = /tmp/mysql.sock #socker路徑 bind-address = 0.0.0.0 #監聽地址 pid-file = /var/run/mysqld/mysqld.pid #pid文件路徑 character-set-server = utf8 #字符集UTF8 collation-server = utf8_general_ci log-error = /var/log/mysqld.log #error日誌 #####mysql基本調優#### max_connections = 10240 #最大用戶鏈接數 open_files_limit = 65535 #打開文件數 innodb_buffer_pool_size = 3G #緩存池大小 innodb_flush_log_at_trx_commit = 2 #每一次事務提交是否寫入硬盤 innodb_log_file_size = 256M #mysql事務日誌文件大小 [root@localhost etc]# systemctl restart mysqld #重啓mysql ====yum安裝zabbix==== [root@localhost ~]# rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm #安裝zabbix源 [root@localhost ~]# yum install zabbix-server-mysql zabbix-web-mysql -y #安裝zabbix [root@localhost ~]# mysql -uroot -pMa123456. ##進入mysql mysql> create database zabbix; ##建立zabbix數據庫 mysql> grant all on zabbix.* to 'zabbix'@'localhost' identified by 'Ma123456.'; ##受權zabbix用戶訪問 [root@localhost ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.7/ ##進入到mysql文檔目錄 [root@localhost zabbix-server-mysql-4.0.7]# zcat create.sql.gz | mysql -uroot -pMa123456. zabbix ###導入到zabbix庫裏面 [root@localhost ~]# vim /etc/zabbix/zabbix_server.conf #修改zabbix配置 DBPassword=Ma123456. #配置mysql密碼地址用戶 [root@localhost ~]# systemctl start zabbix-server #啓動zabbix ====修改apache==== [root@localhost ~]# vim /etc/httpd/conf.d/zabbix.conf #修改apache配置文件 php_value date.timezone Asia/Shanghai #修改時區爲上海 [root@localhost ~]# systemctl start httpd #啓動apache ----------------------------------------------------------------------------------------- ###直接訪問ip/zabbix便可 例如:192.168.1.100/zabbix(圖形安裝這裏不作教程) 初次登錄能夠修改界面爲中文,很簡單,直接點擊右上角用戶--Language--chinese(zh_CN)--update便可
使用內置 MySQL 數據庫、Zabbix server、基於 Nginx Web 服務器的 Zabbix Web 界面和 Zabbix Java gateway 來運行 Zabbix 應用。web
[root@localhost ~]# docker run --name zabbix-appliance -t \ -p 10051:10051 \ -p 80:80 \ -d zabbix/zabbix-appliance:latest
直接經過IP訪問,(默認用戶Admin,密碼zabbix)
修改頁面爲中文
點擊右上角用戶--Language--chinese(zh_CN)--update便可
zabbix術語 | 註解 |
---|---|
主機(host) | 被監控主機 |
主機組 (host group) | 被監控主機羣組 |
監控項 (item) | agent端的某個被監控值 |
觸發器 (trigger) | 與被監控對比及判斷的值 |
動做 (action) | 對觸發器響應須要作相應的措施 |
媒介 (media) | 動做的方式 |
rpm -ivh http://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm 個別主機須要添加zabbix的yum網絡源,雲主機不須要。 [root@localhost ~]# yum install zabbix-agent -y #直接yum安裝agent [root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf #agent配置文件 PidFile=/var/run/zabbix/zabbix_agentd.pid #pid文件地址 LogFile=/var/log/zabbix/zabbix_agentd.log #log文件的地址 Server=192.168.8.19 #zabbix_server的IP地址 ListenIP=192.168.8.22 #zabbix_agent的監聽地址 ServerActive=192.168.8.19 #agent主動彙報的一個地址(通常改成server的IP地址) Hostname=192.168.8.22 #agent的用戶名(通常可修改成IP) Include=/etc/zabbix/zabbix_agentd.d/*.conf #引入有效配置文件 # UnsafeUserParameters=0 #自定義key [root@localhost ~]# systemctl start zabbix-agent #啓動zabbix_agent [root@localhost ~]# ps -ef |grep zabbix_agent #查看zabbix_agent ############################################################################################# 可直接在zabbix-server端測試是否能鏈接zabbix-agent,以下: [root@localhost ~]# /usr/local/zabbix/bin/zabbix_get --help #查看zabbix_get命令 /usr/local/zabbix/bin/zabbix_get -s 192.168.8.22 -p 10050 -k "system.cpu.load[all,avg1]" /usr/local/zabbix/bin/zabbix_get -s 192.168.8.22 -p 10050 -k "system.hostname" 若有回值,則表明正在監聽中
防火牆及selinux是須要關閉的。
建立主機羣組
建立主機
添加主機
添加監控項
添加圖形
查看圖形
=======觸發器這裏不作圖解
https://www.zabbix.com/documentation/4.0/zh/manual/config/items/userparameters
官方文檔解析
key:一個用戶參數包含一個key,在添加監控項引用,且它是惟一的。
command:你須要執行的用戶參數(此參數是有agent代理執行的命令,最多能夠返回512KB數據
在zabbix_agent端操做: [root@localhost ~]# vim /etc/zabbix/zabbix_agentd.conf UserParameter=user-num,cat /etc/passwd |wc -l [root@localhost ~]# systemctl restart zabbix-agent 在zabbix_server端測試: [root@localhost ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.8.22 -p 10050 -k "user-num" 29 有回值,則表明key是有效的。則可直接去zabbix-web上配置。
配置zabbix-web
1.添加監控項
2.添加圖形
3.添加觸發器
4.最終圖形
測試:
可經過建立用戶超過觸發器可告警
[root@localhost ~]# useradd ma #建立用戶,使總用戶達到觸發器值30 [root@localhost ~]# wc -l /etc/passwd |awk '{print $1}' 30
5.觸發圖形
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.2.4-1.x86_64.rpm [root@localhost ~]#yum localinstall grafana-5.2.4-1.x86_64.rpm [root@localhost ~]# systemctl start grafana-server [root@localhost ~]# ps -ef |grep grafana [root@localhost ~]# netstat -plnt |grep 3000 直接訪問IP:3000便可訪問 默認帳號密碼都是admin直接登錄
grafana-cli plugins install alexanderzobnin-zabbix-app #安裝zabbix插件 [root@localhost ~]# systemctl restart grafana-server #重啓Grafana
啓用zabbix
選擇zabbix數據源
配置zabbix數據源
配置數據源選項,要注意Url部分,若是你的Zabbix訪問路徑爲http://192.168.1.1
,那麼Url就填寫http://192.168.1.1/api_jsonrpc.php
;Zabbbix API details
部分就填寫Zabbix的帳號密碼。
添加zabbix數據源基礎儀表步驟:
Configuration --Data Sources --zabbix --Dashboards --Import