CHI TIẾT BÀI VIẾT
Prometheus và Grafana - Phần 1. Cài đặt Prometheus và Grafana trên CentOS
Phần 1. Cài đăt Prometheus & Grafana trên CentOS
Phần 2. Cấu hình Prometheus & Grafana giám sát Windows Server
---------------------------------------------------------------------------------------------------
PHẦN 1. CÀI ĐẶT PROMETHEUS & GRAFANA TRÊN CENTOS
1. Cấu hình chung cho hệ thống trước khi bạn cài đặt Prometheus.
1.1. Chuẩn bị một máy CentOS 7 có hai card mạng:
+NAT (DHCP)
+Lớp mạng 192.168.100.0 (đặt ip là 192.168.100.11)
1.2. Update linux,syn NTP linux,disable selinux
yum update –y
ntpdate 1.ro.pool.ntp.org
vim /etc/sysconfig/selinux
Change "SELINUX=enforcing” to "SELINUX=disabled”.
Lưu lại và reboot lại Centos.
1.3. Tải SSH secure để có thể copy câu lệnh vô CentOS
1.4. Cài iptables trên Centos 7
-Xóa firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl mask –now firewalld
-Cài đặt iptables
yum install iptables-services –y
systemctl start iptables
systemctl enable iptables
-Mở các port sau
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 3000 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 9090 -j ACCEPT
2. Cài đặt Prometheus bằng Dorker
2.1. Cài đặt Dorker
-Cài đặt các gói cần thiết
yum install -y yum-utils device-mapper-persistent-data lvm2
-Cấu hình docker-ce repo
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
-Cài đặt docker-ce
yum install docker-ce docker-ce-cli containerd.io (nếu hỏi thì cứ nhập y)
systemctl enable docker
systemctl restart docker
-Kiểm tra version
docker version
2.2. Cài đặt Go Lang
-Tải source cài đặt golang về
wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz
-Giải nén
tar -xvzf go1.12.5.linux-amd64.tar.gz
-Start golang
mv go /usr/local
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
-Kiểm tra version và config
go version
go env
- Enable Golang run khi khởi động
vi .bashrc
Copy đoạn config vào cuối file
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
2.3. Cài đặt Prometheus với docker
- Git clone code về sau đó build image(nên dùng cách này vì có thể kiểm soát được code)
git clone https://github.com/prometheus/prometheus
cd prometheus/
+Sử dụng Go Lang để build file config của prometheus (binary)
make build
*Xuất hiện lỗi do thiếu gói yarn🡪cài đặt gói yarn
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
yum install nodejs
curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo rpm --import https://dl.yarnpkg.com/rpm/pubkey.gpg
yum install yarn
yarn --version
Gõ lại: make build
+Lỗi này là do bản golang đã cài không phù hợp🡪xóa golang vừa cài đặt và cài golang 1.13
+Xóa golang cũ
rm -rvf /usr/local/go/
+Cài đặt golang 1.13
wget https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz
tar -xzf go1.13.3.linux-amd64.tar.gz
mv go /usr/local
export GOROOT=/usr/local/go
export GOPATH=$HOME/Projects/Proj1
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
go version
go env
Gõ lại: make build(mất một khoảng thời gian để build file)
+Sau đó sẽ xuất hiện hai file prometheus,promtool
+Sửa lại đường dẫn trong Dockerfile như hình dưới
vi Dockerfile
+ Build Image:
docker image build -t prometheus:latest
*Lỗi không có file npm_licenses.tar.bz2🡪Tạo file npm_licenses.tar.bz2
make npm_licenses
+Gõ lại: docker image build -t prometheus:latest
+ Run Image đã build
docker run --restart=always --mount source=prometheus-data,target=/prometheus --mount source=prometheus-config,target=/etc/prometheus --name prometheus -d -p 9090:9090 prometheus
docker ps
+Truy cập : 192.168.100.11:9090
8. Cài đặt grafana
+Pull image grafana về local
docker pull grafana/grafana
+Run image grafana
docker run --restart=always -d -p 3000:3000 grafana/grafana
+Truy cập : 192.168.100.11:3000(admin/admin)
+Connect Grafana tới prometheus
Sau đó chọn Add data source
TTS - Nguyễn Hữu Hiểu