# 安裝說明
采用zabbix與Grafana項結合的部署方式,由zabbix agent提供數據采集,Grafana進行前端數據展示,適用與日常運維和信息采集。
# 一、基礎環境
操作系統:CentOS7.1 1503 關閉防火墻和Selinux,內部自帶CentOS7.1 yum源,系統外加一塊硬盤作為數據盤(300G)。
| 序號 | 軟件名稱 | 軟件版本 |
| --- | --- | --- |
| 1 | Zabbix server/agent | 3.2.4 |
| 2 | Mariadb | 5.5 |
| 3 | Grafana | 3.2.1|
| 4 | httpd |2.46 |
在root目錄下創建zabbix_install目錄,目錄下包含zabbix_package.tar.gz文件,該文件包含Zabbix安裝的所需要的所有rpm包,安裝腳本也在該目錄下。
[相關資源鏈接~請點擊這里](https://pan.baidu.com/s/1vgKXcjSbKeups62vsOYfOQ)
# 二、Zabbix安裝
這里采用腳本自動安裝
```
[root@host zabbix_install]# pwd
/root/zabbix_install
[root@host zabbix_install]# ls
zabbix_install.sh zabbix_package.tar.gz
[root@host zabbix_install]# chmod +x zabbix_install.sh
[root@host zabbix_install]# sh zabbix_install.sh
```
腳本內容:
```
#!/bin/bash
Timestamp=`date "+%Y-%m-%d %H:%M:%S"`
echo -e "$Timestamp 安裝開始 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp 安裝開始 \033[0m"
lsblk|grep -E sd'[b-z]' >/dev/null 2>&1
status=`echo $?`
if [ $status -eq 0 ]
then
echo -e "$Timestamp 磁盤檢測完成 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp 磁盤檢測完成 \033[0m"
else
echo -e "$Timestamp 數據盤不存在,請檢查磁盤 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;31m$Timestamp 數據盤不存在,請檢查磁盤 \033[0m" && exit
fi
#初始化環境
echo -e "$Timestamp 關閉防火墻" >> /root/zabbix_install/zabbix_install.log
systemctl stop firewalld >> /root/zabbix_install/zabbix_install.log 2>&1
echo -e "$Timestamp 禁用防火墻開機啟動" >> /root/zabbix_install/zabbix_install.log
systemctl disable firewalld >> /root/zabbix_install/zabbix_install.log 2>&1
echo -e "$Timestamp 禁用selinux" >> /root/zabbix_install/zabbix_install.log
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0 >> /root/zabbix_install/zabbix_install.log 2>&1
echo -e "$Timestamp 檢查防火墻狀態" >> /root/zabbix_install/zabbix_install.log
systemctl status firewalld >> /root/zabbix_install/zabbix_install.log 2>&1
status=`echo $?`
if [ $status -gt 0 ]
then
echo -e "$Timestamp 環境初始化完成 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp 環境初始化完成 \033[0m"
else
echo -e "$Timestamp 防火墻關閉失敗,請手動關閉 " >> /root/zabbix_install/zabbix_install.log
echo echo -e "\033[1;31m$Timestamp 防火墻關閉失敗,請手動關閉 \033[0m" && exit
fi
#初始化磁盤
if [ ! -d /data ];then
mkdir /data
fi
echo -e "$Timestamp 創建數據盤分區 " >> /root/zabbix_install/zabbix_install.log
parted -s /dev/sdb mklabel msdos > /dev/null 2>&1
parted -s /dev/sdb mkpart primary 0% 100% > /dev/null 2>&1
echo -e "$Timestamp 格式化數據盤 " >> /root/zabbix_install/zabbix_install.log
mkfs.ext4 /dev/sdb1 > /dev/null 2>&1
echo -e "$Timestamp 掛載數據盤 " >> /root/zabbix_install/zabbix_install.log
if ! grep data /etc/fstab >/dev/null 2>&1
then
echo "/dev/vdb1 /data ext4 defaults 0 0" >> /etc/fstab
fi
mount -a
chmod 777 /data
#配置本地yum環境
echo -e "$Timestamp 解壓zabbix安裝包 " >> /root/zabbix_install/zabbix_install.log
tar -xvf ./zabbix_package.tar.gz -C /root/ >/dev/null 2>&1
echo -e "$Timestamp 創建zabbix yum源 " >> /root/zabbix_install/zabbix_install.log
if [ ! -d /etc/yum.repos.d/bak ];then
mkdir /etc/yum.repos.d/bak
fi
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
touch /etc/yum.repos.d/zabbix.repo
cat >> /etc/yum.repos.d/zabbix.repo << EOF
[zabbix]
name=zabbix
baseurl=file:///root/zabbix_package
gpgcheck=0
enabled=1
EOF
yum clean all >/dev/null 2>&1
if [ -e /etc/yum.repos.d/zabbix.repo ]
then
echo -e "$Timestamp 本地yum配置完成 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp 本地yum配置完成 \033[0m"
else
echo -e "$Timestamp 本地yum配置失敗,請手動配置 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;31m$Timestamp本地yum配置失敗,請手動配置 \033[0m" && exit
fi
#安裝服務
echo -e "$Timestamp 安裝服務 " >> /root/zabbix_install/zabbix_install.log
cd /root/zabbix_package/
echo -e "$Timestamp 安裝Perl環境 " >> /root/zabbix_install/zabbix_install.log
yum install perl* -y >> /root/zabbix_install/zabbix_install.log 2>&1
echo -e "$Timestamp 更新mariadb-libs庫 " >> /root/zabbix_install/zabbix_install.log
yum update mariadb-libs -y >> /root/zabbix_install/zabbix_install.log
echo -e "$Timestamp 安裝Zabbix服務 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp zabbix服務安裝中 \033[0m"
yum install zabbix* -y >> /root/zabbix_install/zabbix_install.log 2>&1
echo -e "$Timestamp 安裝grafana服務 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp grafana服務安裝中 \033[0m"
yum install grafana -y >> /root/zabbix_install/zabbix_install.log
echo -e "$Timestamp 安裝MariaDB數據庫 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp 數據庫服務安裝中 \033[0m"
yum install mariadb mariadb-server -y >> /root/zabbix_install/zabbix_install.log
rpm -Uvh --force gnutls-3.1.18-8.el7.x86_64.rpm > /dev/null 2>&1
cd ..
echo -e "$Timestamp 修改MariaDB配置文件 " >> /root/zabbix_install/zabbix_install.log
TOTAL_MEM=`free -m|grep Mem|awk '{print $2}'`
DB_MEM=$(($TOTAL_MEM/2))
cat > /etc/my.cnf << EOF
[mysqld]
symbolic-links=0
datadir=/data/mysql
innodb_file_per_table=1
innodb_buffer_pool_size=${DB_MEM}M
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit =0
innodb_open_files=65535
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-external-locking
lower_case_table_names = 1
skip-name-resolve
key_buffer_size = M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
bulk_insert_buffer_size = 64M
query_cache_size= 16M
thread_cache_size = 8
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
# include all files from the config directory
#
!includedir /etc/my.cnf.d
EOF
echo -e "$Timestamp 啟動MariaDB服務 " >> /root/zabbix_install/zabbix_install.log
systemctl enable mariadb >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl start mariadb >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl status mariadb >> /root/zabbix_install/zabbix_install.log 2>&1
status=`echo $?`
if [ $status -eq 0 ]
then
echo -e "$Timestamp 數據庫服務啟動成功 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp 數據庫服務啟動成功 \033[0m"
else
echo -e "$Timestamp mariadb安裝失敗,請檢查配置文件 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;31m$Timestamp mariadb安裝失敗,請檢查配置文件 \033[0m" && exit
fi
#初始化數據庫
echo -e "$Timestamp 數據庫初始化 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp 數據庫初始化中 \033[0m"
mysql -e 'drop database if exists zabbix'
mysql -e 'create database zabbix character set utf8 collate utf8_bin;'
mysql -e "grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';"
zcat /usr/share/doc/zabbix-server-mysql-3.2.*/create.sql.gz | mysql -uzabbix -pzabbix zabbix
echo -e "$Timestamp 修改Zabbix配置文件 " >> /root/zabbix_install/zabbix_install.log
cat > /etc/zabbix/zabbix_server.conf << EOF
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=100
PidFile=/var/run/zabbix/zabbix_server.pid
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
StartPingers=5
StartDiscoverers=5
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
CacheSize=512M
HistoryCacheSize=1G
TrendCacheSize=256M
ValueCacheSize=512M
Timeout=20
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000
EOF
echo -e "$Timestamp 啟動Zabbix服務 " >> /root/zabbix_install/zabbix_install.log
systemctl restart zabbix-server >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl enable zabbix-server >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl status zabbix-server >> /root/zabbix_install/zabbix_install.log 2>&1
status=`echo $?`
if [ $status -eq 0 ]
then
echo -e "$Timestamp zabbix-server啟動成功 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp zabbix-server啟動成功 \033[0m"
else
echo -e "$Timestamp zabbix-server安裝失敗,請檢查配置文件 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;31 $Timestamp mzabbix-server安裝失敗,請檢查配置文件 \033[0m" && exit
fi
echo -e "$Timestamp http參數優化 " >> /root/zabbix_install/zabbix_install.log
cat > /etc/httpd/conf.d/zabbix.conf << EOF
# Zabbix monitoring system php web frontend
Alias /zabbix /usr/share/zabbix
<Directory "/usr/share/zabbix">
Options FollowSymLinks
AllowOverride None
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 Asia/Shanghai
</IfModule>
</Directory>
<Directory "/usr/share/zabbix/conf">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/app">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/include">
Require all denied
</Directory>
<Directory "/usr/share/zabbix/local">
Require all denied
</Directory>
EOF
echo -e "$Timestamp 重啟http服務 " >> /root/zabbix_install/zabbix_install.log
systemctl start httpd >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl enable httpd >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl status httpd >> /root/zabbix_install/zabbix_install.log 2>&1
status=`echo $?`
if [ $status -eq 0 ]
then
echo -e "$Timestamp httpd啟動成功 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp httpd啟動成功 \033[0m"
else
echo -e "$Timestamp httpd安裝失敗,請檢查配置文件 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;31m$Timestamp httpd安裝失敗,請檢查配置文件 \033[0m" && exit
fi
#install grafana
echo -e "$Timestamp 配置grafana服務 " >> /root/zabbix_install/zabbix_install.log
echo -e "$Timestamp 安裝grafana zabbix插件 " >> /root/zabbix_install/zabbix_install.log
if [ ! -d /var/lib/grafana/plugins ];then
mkdir /var/lib/grafana/plugins
chown grafana:grafana /var/lib/grafana/plugins
fi
echo -e "\033[1;32m$Timestamp 安裝grafana插件 \033[0m"
echo -e "$Timestamp 解壓grafana zabbix插件 " >> /root/zabbix_install/zabbix_install.log
tar -xvf /root/zabbix_package/alexanderzobnin-grafana-zabbix-v3.4.0-0-g14a7fd4.tar.gz -C /var/lib/grafana/plugins/ > /dev/null 2>&1
echo -e "$Timestamp 重啟grafana服務 " >> /root/zabbix_install/zabbix_install.log
systemctl daemon-reload >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl enable grafana-server >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl restart grafana-server >> /root/zabbix_install/zabbix_install.log 2>&1
systemctl status grafana-server >> /root/zabbix_install/zabbix_install.log 2>&1
status=`echo $?`
if [ $status -eq 0 ]
then
echo -e "$Timestamp grafana-server啟動成功 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp grafana-server啟動成功 \033[0m"
else
echo -e "$Timestamp grafana-server安裝失敗,請檢查配置文件 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;31m$Timestamp grafana-server安裝失敗,請檢查配置文件 \033[0m" && exit
fi
if [ -d /var/lib/grafana/plugins/alexanderzobnin-grafana-zabbix-v3.4.0-0-g14a7fd4 ]
then
echo -e "$Timestamp grafana-zabbix插件安裝成功 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp grafana-zabbix插件安裝成功 \033[0m"
else
echo -e "$Timestamp grafana-zabbix插件安裝失敗,請檢查配置文件 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;31m$Timestamp grafana-zabbix插件安裝失敗,請檢查配置文件 \033[0m" && exit
fi
ip=`ip -o -f inet addr |grep -E eno'[0-9]' |awk '{print $4}'|awk -F '/' '{print $1}'`
echo -e "$Timestamp 所有服務安裝成功 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m$Timestamp 所有服務安裝成功 \033[0m"
echo -e "$Timestamp 請在瀏覽器輸入:$ip/zabbix 登錄zabbix管理頁面 " >> /root/zabbix_install/zabbix_install.log
echo -e "\033[1;32m請在瀏覽器輸入:http://$ip/zabbix 登錄zabbix管理頁面 \033[0m"
````
# 三、檢查服務
```
[root@host zabbix_install]# netstat -ntlp |grep -E "3306|80|3000"
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 29621/mysqld
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 25051/nginx: master
tcp6 0 0 :::80 :::* LISTEN 1236/httpd
tcp6 0 0 :::3000 :::* LISTEN 29810/grafana-serve
```
若安裝失敗請查看zabbix_install.log日志并修改shell腳本后再執行腳本,或手動安裝。。。
# 四、Zabbix服務初始化
## (1)基礎設置
打開瀏覽器,訪問http://x.x.x.x/zabbix (x.x.x.x為服務器IP),點擊“Next step”

Check項均為OK時,點擊“Next step”

輸入密碼“zabbix”,點擊“Next step”。

設置完成后跳轉至登陸頁面,登陸賬戶為:Admin,密碼為:zabbix

點擊右上角圖標,進行中文設置:


登陸前端展示Grafana,瀏覽器訪問http://x.x.x.x:3000/login

激活Zabbix-grafana插件


添加zabbix作為數據源,
數據源名稱:zabbix-server
勾選Default
Type:選擇zabbix
url輸入:http://127.0.0.1/zabbix/api_jsonrpc.php
Username:Admin
Password:zabbix



## (2)導入模板
點擊“configuration”下的“template”選項,將默認的模板全部刪除。


點擊import導入模板,將安裝包內mytest_template.xml進行導入。
模板下載地址[~請點擊這里~](https://pan.baidu.com/s/18Z43YhqJAxpSpQAvx5QiVA)

## (3)控制節點自動注冊
點擊“Configuration”下的“Actions”選項,點擊右上角進行動作創建。

配置Linux節點自動注冊
名稱填寫:Linux-agent
選擇新觸發條件為“Auto registration”
填寫值:Linux-agent

添加自動注冊動作。
選擇操作類型:“Add host”。

點擊“Add”。

添加主機添加群組動作。
選擇操作類型:“Add to host group”。
點擊選擇“Linux-agent”組。
點擊“Add”。

添加與模板關聯
選擇操作類型:“Link to template”。
點擊選擇,”Linux-agent”模板。

點擊“Add”

已同樣的方法配置Windows節點自動注冊,完成后如下圖所示

- 獻給我的朋友們
- 一、個人對學習的看法
- 二、運維技能圖譜
- 三、運維常用技能
- 3.1 Vim(最好用的編輯器)
- 3.2 Nginx & Tengine(Web服務)
- 1. Nginx介紹和部署
- 2. Nginx配置解析
- 3. Nginx常用模塊
- 4. Nginx 的session 一致性問題
- 3.3 Tomcat(Web中間件)
- 3.4 Keepalived(負載均衡高可用)
- 3.5 Memcache(分布式緩存)
- 3.6 Zookeeper(分布式協調系統)
- 3.7 KVM(開源虛擬化)
- 1. 虛擬化介紹
- 2. KVM基礎
- 3. 設置VNC和時間同步
- 4. kvm虛擬機快照備份
- 5. kvm虛擬機在線擴展磁盤
- 6. kvm虛擬機靜態遷移
- 7. kvm虛擬機動態遷移
- 8. kvm虛擬機存儲池配置
- 9. cpu添加虛擬化功能
- 3.8 GitLab(版本控制)
- 3.8.1 GitLab安裝與漢化
- 3.9 Jenkins(運維自動化)
- 3.10 WAF(Web防火墻)
- 3.10.1初探WAF
- 四、常用數據庫
- 4.1 MySQL(關系型數據庫)
- 1. MySQL源碼安裝
- 4.2 Mongodb(適用與大數據分析的數據庫)
- 4.3 Redis(非關系數據庫)
- 五、自動化運維工具
- 5.1 Cobbler(系統自動化部署)
- 5.2 Ansible(自動化部署)
- 5.3 Puppet(自動化部署)
- 5.4 SaltStack(自動化運維)
- 六、存儲
- 6.1 GFS(文件型存儲)
- 6.2 Ceph(后端存儲)
- 七、運維監控工具
- 7.1 對監控的理解
- 7.2 Zabbix(運維監控)
- 7.2.1 Zabbix簡介
- 7.2.2 Zabbix服務部署
- 1. Zabbix服務端部署
- 2. Zabbix客服端部署
- 3. 配置前端展示
- 4. zabbix告警配置
- 7.2.3 Zabbix監控服務
- 1. 監控網絡設備
- 2. 自定義Nginx監控
- 7.3 云鏡(安全監控)
- 7.4 ELK(日志收集展示)
- 八、運維云平臺
- 8.1 OpenStack(開源云操作系統)
- 8.1.1 OpenStack簡介
- 8.1.2 實驗架構設計
- 8.1.3 集群環境準備
- 8.1.4 controller節點部署
- 1. 安裝Mariadb Galera Cluster集群
- 2. 安裝RabbitMQ Cluster集群
- 3. 安裝Pacemaker
- 4. 安裝HAProxy
- 5. 安裝配置Keystone
- 6. 安裝配置glance
- 1. 制作鏡像模板
- 7. 安裝配置nova
- 8. 安裝配置neutron
- 1. 配置虛擬機網絡
- 9. 安裝Dashboard
- 10. 安裝配置cinder
- 8.1.5 compute節點部署
- 1. 安裝相關軟件包
- 2. 安裝Neutron
- 3. 配置cinder
- 4. 創建第一個虛擬機
- 8.1.6 OpenStack報錯處理
- 1. cinder僵尸卷刪除
- 8.1.7 快速孵化虛擬機方案
- 8.1.8 Kolla容器化部署OpenStack
- 1. 單點部署
- 2. 多節點部署
- 8.2 Tstack(騰訊云平臺)
- 8.3 K8s(微服務容器化)
- 九、運維編程技能
- 9.1 Shell(運維必會語言)
- 9.2 Python(萬能的膠水語言)
- 十、Devops運維
- 10.1 理念
- 10.2 Devops實戰