Biểu đồ trên Shinken qua Graphite
Biểu đồ là một cách thuận tiện để xem sự phát triển của các chỉ số của máy chủ. Khi chúng ta nghĩ về đồ thị trong thế giới linux, chúng ta thường nghĩ đến Munin. Giải pháp rất mạnh mẽ mà tôi sử dụng trong một số trường hợp. Tuy nhiên, sau này có tác nhân riêng của nó, người sẽ thẩm vấn máy mục tiêu để lấy dữ liệu được diễn giải dưới dạng biểu đồ sau đó. Khi bạn đã có một máy chủ giám sát như Shinken, nó giống như thực hiện công việc hai lần. Để khắc phục điều này, chúng tôi sẽ thiết lập một máy chủ Graphite.
Chương trình được tạo thành ba phần.
- Thì thầm, một công cụ cơ sở dữ liệu
- Carbon, máy chủ lắng nghe đảm nhiệm việc chèn dữ liệu vào cơ sở dữ liệu
- than chì, giao diện web trong python Django
Lắp đặt Graphite
Cài đặt phụ thuộc
1
|
apt–get install python–cairo python–django–tagging python–twisted python–memcache fontconfig
|
1
2
|
pip install django
pip install zope.interface
|
Bạn cũng cần một máy chủ web, với thư viện cho phép bạn tải một chương trình Django.
1
|
apt–get install apache2 libapache2–mod–wsgi
|
Cài đặt graphit
1
2
3
4
|
pip install https://github.com/graphite–project/ceres/tarball/master
pip install whisper
pip install carbon
pip install graphite–web
|
Thiết lập cấu hình mặc định
1
2
3
|
cd /opt/graphite/conf
cp carbon.conf.example carbon.conf
cp storage–schemas.conf.example storage–schemas.conf
|
Thiết lập vHost apache
1
2
3
4
5
6
7
8
9
10
11
|
cd /opt/graphite
cp –a examples/example–graphite–vhost.conf /etc/apache2/sites–available/graphite
cp /opt/graphite/conf/graphite.wsgi.example /opt/graphite/conf/graphite.wsgi
sed –i s%« @DJANGO_ROOT@/contrib/admin/media/ »%« /usr/share/pyshared/django/contrib/admin/media/ »% /etc/apache2/sites–available/graphite
sed –i ‘s%WSGISocketPrefix run/wsgi/%WSGISocketPrefix /var/run/apache2/wsgi%’ /etc/apache2/sites–available/graphite
a2ensite graphite
|
Cảnh báo, nếu bạn đang sử dụng bản phân phối gần đây hơn với phiên bản Apache lớn hơn 2.4, bạn phải sửa đổi vHost như sau
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<Directory /opt/graphite/conf/>
#Order deny,allow
#Allow from all
Options All
AllowOverride All
Require all granted
</Directory>
<Directory /opt/graphite/webapp>
Options All
AllowOverride All
Require all granted
</Directory>
|
Chúng tôi kích hoạt vHost
1
|
service apache2 reload
|
Tạo cơ sở dữ liệu
1
2
3
|
cd /opt/graphite/webapp/graphite
python manage.py syncdb
chown –R www–data:www–data /opt/graphite/storage/
|
Chúng tôi khởi chạy máy chủ Carbon
1
2
|
cd /opt/graphite/
./bin/carbon–cache.py start
|
Gửi dữ liệu thử nghiệm
1
|
echo « carbon.installation.test $RANDOM `date +%s` » | nc –w 1 localhost 2003
|
Ở giai đoạn này, chúng tôi có chức năng Graphite, nếu bạn truy cập địa chỉ máy chủ của mình trong HTTP, bạn sẽ thấy dữ liệu thử nghiệm của mình xuất hiện trên giao diện web.
Giao lộ tại Shinken
Chúng tôi cài đặt mô-đun Graphite từ kho Shinken
1
2
3
|
su shinken
shinken install ui–graphite
shinken install graphite
|
Chúng tôi thêm mô-đun graphite-ui vào WebUI trong /etc/shinken/modules/webui.cfg
1
|
modules auth–cfg–password,SQLitedb,ui–graphite
|
Chúng tôi thêm mô-đun graphite vào nhà môi giới theo /etc/shinken/brokers/broker-master.cfg
1
|
modules webui,graphite
|
Chúng tôi định cấu hình mô-đun graphite trong /etc/shinken/modules/graphite.cfg
1
2
3
4
5
6
|
define module {
module_name graphite
module_type graphite_perfdata
host localhost
port 2003
}
|
Chúng tôi định cấu hình quyền truy cập vào webui graphite theo /etc/shinken/modules/ui-graphite.cfg
1
2
3
4
5
6
|
define module {
module_name ui–graphite
module_type graphite–webui
uri http://172.16.10.6 ; ip de votre serveur graphite
templates_path /var/lib/shinken/share/templates/graphite/
}
|
Hãy cẩn thận không đặt dấu gạch chéo ở cuối URL, nếu không các liên kết sẽ không hoạt động.
Và cuối cùng, chúng tôi khởi chạy lại Shinken để tính đến tất cả những điều này.
1
|
/etc/init.d/shinken restart
|
Bây giờ bạn sẽ thấy đồ thị của mình trong tab cùng tên trên giao diện web Shinken
Trên giao diện web Graphite, các máy chủ của bạn cũng sẽ xuất hiện.
Tab "4 giờ" có thể không hoạt động. Điều này là do múi giờ không giống nhau trên hai thành phần.
Để điều chỉnh múi giờ shinken, hãy truy cập tệp /etc/shinken/shinken.cfg
1
|
use_timezone=Europe/Paris
|
Và đối với graphite, bạn phải kích hoạt tệp cấu hình bằng cách sao chép ví dụ
1
2
|
cd /opt/graphite/webapp/graphite
cp local_settings.py.example local_settings.py
|
Và bỏ ghi chú dòng tương ứng với giá trị múi giờ
1
|
TIME_ZONE = ‘Europe/Paris’
|